Explore Intel Edison
The Intel® Edison is a remarkable device. It is as small as an embedded processor, but has enough power to allow it to be used as a tiny server. With its built-in support for WiFi, GPIO, I2C and SPI it is a capable IoT device. However, to make use of its unique qualities you have to take a step beyond its simple Arduino emulation and make use of it as itself, in its native mode. This means using the mini-breakout board and dealing with the fact that it is a 1.8V logic device and programming it using C to bring out its full power. Once you know how, this isn’t as difficult as it seems at first. The rewards are well worth the effort.
Explore Intel® Edison starts with setting it up for the mini-breakout board. Then it looks at the advantages of choosing C as the language in which to program it, showing how to set up the Intel® System Studio IoT Edition IDE. Now we are ready to get building circuits and coding. Using the mraa library is the direct way to work with the GPIO lines and we need to master it before looking at ways of making things faster with memory-mapped I/O, achieving realtime facilities with Linux and using pulse width modulation. From here we are able to start connecting sensors - the HTU21D (I2C), DHT11/22 (custom) and the DS18B20 (1-wire). There are problems to overcome along the way – how to convert from 1.8V to work with higher voltages and how to support a 1-wire bus. The final circuit, to add AtoD, uses the SPI bus and implements a software emulation. Finally we look beyond mraa with a Linux-based approach to working with GPIO lines and how to set the GPIO mode.
Harry Fairhead has been working with microprocessors, and electronics in general, for many years. This is his first book since the best selling The 386/486 Personal Computer: A Power User's Guide, published by I/O Press in 1992. Harry is Editor of IoT-Programmer.com and a regular contributor to I-Programmer.info, where he covers all aspects of hardware. His other recent titles are Raspberry Pi IoT in C and Micro:bit IoT in C and he is now working on Electronics for the IoT Programmer.