Cayenne is an online IoT dashboard that takes most of the complication out of creating hardware-oriented programing. Originally it worked with just the Raspberry Pi. Now it is available for the Arduino as well.
Cayenne is a drag-and-drop programming system for the IoT that really does make it much easier. It not only makes it possible to build programs using drag-and-drop, it standardizes the connection of devices such as sensors and motors and makes sure that drivers are in place. In this sense it makes the programming and the hardware much easier.
To prove the point HexCorp did a benchmark survey:
"We compared the amount of time it took for two teams to build the same simple IoT project with and without Cayenne using an Arduino Uno, a temperature sensor, and an LED light bulb. Our tests indicate that the team utilizing Cayenne was 6X faster in developing their IoT project and eliminated at least 27 manual steps compared to the team building with the standard method.”
All you have to do is install the Cayenne agent using the web site. The Arduino needs to have an Internet connection - after all this is the Internet of Things - and this means either an Ethernet or WiFi shield. You also need the Arduino IDE setup on a PC or Mac connected to the Arduino by USB, but this is fairly standard. All of the standard Arduino models are supported, including the more recent ones such as the Yun.
Once the Cayenne agent is installed you can interact with it via the mobile app or the website. Using the dashboard you can monitor and configure the device, but more importantly you can install sensors.
Of course, you have to wire up the sensors - there is no way that software can avoid this particular task, but the website has a lot of very clear diagrams showing you how to do it. Equally obviously, you can't use a sensor that Cayenne doesn't support, but the range of sensors that are supported should be enough for most projects. You can also get direct access to GPIO lines.
To make the interaction with the dashboard work you have to run a suitable sketch, i.e. an Arduino program that handles the communication between the sensor and the dashboard. In most cases this is just a matter of selecting one of the example scripts, but there is nothing stopping you from going further and writing or customizing your own.
With a sensor installed the dashboard will show you the current reading - temperature if it's a temperature sensor. This is nice, but for a real IoT app you need to connect the sensor to something that will do something when a reading gets to a threshold of some sort. In Cayenne you can add any of a range of actuators as output devices. These include relays, motors, ADCs and so on.
To make things automatic you can define triggers, which are if..then rules that can take the state of sensor as the if part and the state of an actuator as the then part. You can do things like turn something off when the temperature reaches a threshold and you can send notifications to the outside world using sms messages or email.
As well as triggers you can also set up repeating events at a given day and time. So you could ensure that the lights were all off at midnight each day, say.
Cayenne has all of the standard sensors and actuators that turn up in projects and you can get them going in no time at all, mostly by just dragging-and-dropping. If you want to, you can use a mixture of Arduino and Raspberry Pi hardware in the same project. This makes it possible to use a mix of hardware in say a home automation project and have a sensor on one trigger a control device on another.
While Cayenne is a cloud-based IoT solution, unlike the other cloud services it doesn't just offer you the back end but also handles the difficult part of actual micro-controller hardware and software. With the addition of the Arduino family to the Cayenne system it should be possible to find a device that is just right for the job.