IoT

First encounter with the arduino nano

My search for the cheapest controller for IoT sensor data collection led me to investigate the Arduino family. Since I came from a Microsoft background, I had investigated the Raspberry Pi and Intel Galileo, both tipped to run the new version of Windows. You can run Linux on each of these right now which gives a powerful platform to build on. However my focus remained cost effective and reliable sensor data collection – a problem that I think plague these early years of IoT. I might not have my economics right but I just don’t see a 60$ controller as part of a sensor collection solution.

Some googling got me to the Arduino Nano V3.0.

The story behind the arduino is quite interesting. I left the embedded system space a decade ago and while the end result of making gyzmos had always appealed to me, the process was a tedious and frustrating. These guys from the Makers movement have simplified embedded programming so much that you need not be an engineer, or even a very good programmer to get your arduinos running.

The nano plugs into the USB port of a laptop and (unlike the Raspberry or the Galelio) can be powered by it. It has 14 digital GPIO pins and 8 analog input pins which are great for interfacing with sensors. I tried connecting it with a motion sensor module and a current/power measurement module and was able to do both in a few hours (with no prior experience in the sensors or Arduino. Incase you are wondering, the project here was to turn the lights of an entire floor off when no one is there. You can get canned solutions for this with regards to lights but not fans, ACs, laptops etc. Also, the whole solution here costs around 9$ for every 10 odd sensors. The coolest thing though is that it costs less than 6$ and is roughly 2 inches x 0.5 inches – which means you can plug this in pretty much anywhere. The board is designed to be breadboard friendly and even has an LED pre-fixed to the GPIO pin 13 for convenience sake. I tell you, these guys have thought of everything!

Programming is done via the Arduino IDE which is fully integrated with the devices. All you need to do to burn your code is to press the upload button and the rest gets done seamlessly. The programming language looks like a derivative of C or Java and is quite easy to learn. It comes stacked with samples and sniplets for the most common tasks. The place to start is the arduino site at http://arduino.cc/.

The drawbacks I could see this with were:

  1. There no build in means of communication. I would have liked to see a version with built-in WiFi. The raspberry is more powereful in that sense where almost all means of communication (Wifi, Bluetooth etc. can be plugged attached via USB). Arduinos have a class of boards with Wifi on them but the cost them becomes comparable to the Raspberry.
  2. The memory on these is tiny. 32 KB flash. Especially when you compare it to the raspberry which requires a 8GB memory card just to get going.

My conclusion was that this is a nifty little board for sensor collection type scenarios. Definitely worth the 6$ and a day well spent.

Author

Muhammad Omer

Muhammad Omer is the founding partner at Allied Consultants. Areas of interest for him are entreprenuership in organizations, IT Management, Integration and Business Intelligence.

Comments (2)

  1. Israr Khan
    March 4, 2015

    Arduino boards are for proto-typing and hobbyists mainly. There are various types of shields available at additional cost. If you want to go in mass production you can bring the cost down by designing a custom board.

    Raspberry and Galileo, on other hand, and already mass-produced, and even if you go for a custom board, chances are unlikely that you will produce in volume greater than galileo or raspberry pi. So your custom board will have a higher BOM as compared to these off-the-shelf solutions.

    1) Boot time. Arduino will be instant-on.
    2) Power requirements. you may drive arduino via AAA cells.
    3) Storage requirements. You must use an SD card with rBP and Galileo. Arduino, you can use SD card, but you dont have to.
    4) rBP and Galileo are more compex systems, with lots of failure points. In case of Arduino , you own most of the system.

    If application requirements are complex. you need web server, or need to talk to web services, and need to run several tasks in parallel, need high throughput interfaces (USB, HDMI etc), production volume is low (a few hundred) then choose rBP. otherwise go for Ardiuno with custom board. There are many other things too but this is just summary.

  2. Sharjeel Sohaib
    March 6, 2015

    You are right Israr in saying that Arduino boards can best serve for proto-typing; and maybe to rekindle the urge to take on electronics projects.

Comments are closed.