These days the web is full of titles somehow related to IoT. I saw a bunch of presentations in this topic advertising Arduino, Netduino and RaspberryPi. Of course it’s nice that hardware manufacturers creates platform that’s easy to program for regular developers, but often it is a marketing trap for geeks or developers. Why? Because inspired by such presentations they buy Raspberry Pi for 30$ + Raspberry compatible LCD for another 35$, copmatible camera for 30$, WiFi module for extra 5$ and of course a cover for another few bucks. With such a heavy load of hardware they set up a flashing LED circuit and then install XBMC to have a media center connected to TV (based on a surver in local community). But guys, this is not Internet of Things. It’s really a waste of time as every modern TV is “smart” enough without XBMC. You can also program a flashing LED with ATmega for less than 1$. I understand that the idea behind raspberry is to spark off creativity but sometimes I feel it kills it, because many people don’t want to order some platform for tens of dollars just to experiment and just resign going there this way.
The same time I’d like to give you a hint with much simpler and cheaper solution. What if I told you that you could have a platform that is programmable in .NET (without Mono), with built-in WiFi module, bluetooth, quite fast CPU and a lot of memory for less than 30$? Can you guess what’s it? What if I add 3G Internet module, built-in touch screen and a camera? Starting from 25$ you can buy used Lumia 710. Is it good for IoT? Sure! It has a bunch of sensors like camera, microphone, light sensor, accelerometer, orientation sensor, GPS and can have many more (look at Windows.Devices.Sensors namespace). Maybe there is no general purpose Input/Output but on the other hand you have a headphone port that you can use easily to support digital/analogous input/output (I’ve already done such thing a few years ago).
It’s not just a theoretical trolling. A few weeks back I built a garage camera that sends the camera input to Azure webservice. Raspberry would lose here as there is no WiFi there. It gives me preview of what’s going on in my garage, record faces of bad guys that would like to steal my bike, tells me if the gate is closed (black preview means “closed”) and can send notifications if the gate is opened for too long. And it all in just a few lines of code (one *.cs file as it was too short to split it).
I don’t write it all to convince you that Arduino, Netduino or Raspberry are bad in general (actually I had one as well) but you can create something cool without it or with things you already have. For me it was Lumia with broken screen in a drawer. Buying geek devices and posting them on social network doesn’t make you inventor, it’s your ideas. The real pleasure lies in recycling old hardware and this way creating IoT.