After a quick tour of the Raspberry Pi ecosystem, Visual Studio Code (VS Code) and how it can be used to develop remotely, is introduced. The first IoT program anyone writes is "blinky" to flash an LED and this book is no exception, but it might not be quite what you expect. Instead of using a GPIO line it uses the Linux LED driver - no hardware and no fuss. The GPIO isn't left out, however, as the next three chapters focus on its use via the new GPIO character driver, which replaces the old and very common sysfs GPIO driver. This is the way to do modern GPIO. A key component in any look at Linux and its relationship to hardware is the relatively new Device Tree. While most accounts of this resource are aimed at device driver writers, this one is aimed at device driver users and to this end we look at the DHT22 temperature and humidity driver. After a brief detour into some basic electronics, we look at Pulse Width Modulation supported via a driver rather than needing to be implemented using the GPIO. From here we tackle the two standard buses, I2C and SPI, first going through the basics and then looking at the two attempts to impose a higher organization, the hardware monitoring system, Hwmon, and Industrial I/O, IIO. The third standard bus, although generally not supported in hardware is the 1-Wire bus. This is covered in detail and even includes an introduction to using Netlink, which uses the sockets API to send messages to and from the kernel to access the driver. The final chapter takes things to the next level and considers creating your own custom overlays by writing fragments to the device tree.
Harry Fairhead has worked with microprocessors, and electronics in general, for many years and is an enthusiastic proponent of the IoT. He is the author of Raspberry Pi IoT in C, which has recently been republished in its second edition, updated for Raspberry Pi 4 and co-author of Raspberry Pi IoT in Python Using GPIO Zero. His other recent books include Micro: bit IoT in C, Fundamental C: Getting Closer To The Machine and Applying C For The IoT With Linux.
Share This Book: