Arduino is an open-source electronics platform based on easy-to-use hardware and software. It's intended for anyone making interactive projects. We love Arduino devices because they are cheap, very reliable and easy to configure to do very powerful things using the Arduino Integrated Development Environment (IDE). They are also easy to interface to our Home Control System and use the same events protocol and APIs. It makes it very quick and easy to prototype advanced smart home features and devices.
We use Arduino processors as part of our distributed Home Control System, with each one acting as a slave processor. Because Arduino processors are programmed via a USB interface and cannot be hacked to run code remotely, they are also very secure.
In simple applications the Arduino Uno is a very cost effective solution. It can be used with many sensors or used to control devices and appliances. The main challenge we have found with this processor is its limited memory.
The main advantage of the Mega 2560 is that it has much more memory for code and data storage. This basically means it can be used to do more powerful things. It also has many more digital I/O and analogue input pins.
The Mega 2560 Pro is relatively new and is a much more compact for of the Mega 2560. The board is just 54mm × 38mm.
We have an ongoing evaluation of the Mega 2560 Pro on our Dream Green House website.
Both the Uno and Mega 2560 do not come with an IP network interface. Both require an Ethernet shield (a piggy-back board) to accept a standard RJ45 connector so that they can be connected to a switch or router. Some software libraries are also required to enable it to work. Adding an Ethernet shield also places limitations on some pins on the processor as they are used to interface to the shield. The shield also has support for a micro-SD card.
There are a number low power Arduino boards that use Wi-Fi for their network connectivity.
There is an excellent Integrated Development Environment (IDE) which is free and used to write software and upload it to the boards. There are thousands of hardware and software examples freely available on the web, to help get anyone started with programming.
We have developed our our library of code to simplify the encrypted communications used by our contextual smart home and have a library of code for the huge range of sensors used in our home. There are many simple software algorithms that can be used to perform sensor data validation and provide rate limiting.
Arduino interrupts are useful for making things happen automatically in microcontroller programs and can help solve timing problems. Good tasks for using an interrupt may include reading a rotary encoder, monitoring sensors or monitoring user input.
We typically deliver a 12V dc power supply to our Arduino devices because this can then be used to power 12V devices connected to it. 12V dc is a bit too high a voltage to feed directly into an Uno or Mega 2560 though, so we use a local dc-dc convertor to provide a regulated 8.5V dc and this has the added benefit of handling any voltage drops in longer cable runs.
Arduino don't natively support Power over Ethernt (PoE) but you can use a PoE splitter to derive a local 12V dc power supply over an Ethernet cable.
We have many example projects based upon Arduino processors on our Dream Green House website.
We have connected numerous Dallas DS1820 temperature sensors to our contextual smart home. They are our temperature sensors of choice because they are cheap, accurate and very reliable. Simple software algorithms allow us to get very timely data with low latency, enabling them to be used for HVAC applications and also for early detection of fires.