The Internet of Things (IoT) is a new concept in intelligent automation and intelligent monitoring using the Internet as the communications medium. The “Things” in IoT usually refer to devices that have unique identifiers and are connected to the Internet to exchange information with each other. Such devices usually have sensors and/or actuators that can be used to collect data about their environments and to monitor and control their environments. The collected data can be processed locally or it can be sent to centralized servers or to the cloud for remote storage and processing. For example, a small device at the size of a matchbox can be used to collect data about the temperature, relative humidity and the atmospheric pressure. This data can be sent and stored in the cloud. Anyone with a mobile device can then access and monitor this data at any time and from anywhere on Earth provided there is Internet connectivity. In addition, users can for example, adjust the central heating remotely using their mobile devices and accessing the cloud.
This book is written for students, for practising engineers and for hobbyists who want to learn more about the building blocks of an IoT system and also learn how to setup an IoT system using these blocks. Chapter 1 is an introduction to the IoT systems. In Chapter 2, the basic concepts and possible IoT architectures are discussed. The important parts of any IoT system are the sensors and actuators and they are described briefly in Chapter 3. The devices in an IoT system usually communicate with each other and the important aspect of IoT communication is covered in Chapter 4. Chapter 5 proceeds with the features of some of the commonly used development kits. One of these, the Clicker 2 for PIC18FJ manufactured by mikroElektronika, can be used as a processor in IoT systems and its features are described in detail in Chapter 6. A popular microcontroller C language, mikroC Pro for PIC gets introduced in Chapter 7. Chapter 8 covers the use of a click board with the Clicker 2 for PIC18FJ development kit. Similarly, the use of a sensor click board is described as a project in Chapter 9, and an actuator board in Chapter 10. Chapters 11 and 12 cover Bluetooth and Wi-Fi technologies in microcontroller based systems, and the remaining chapters of the book demo the creation of a simple Wi-Fi based IoT system with cloud-based data storage.
This book has been written with the assumption that the reader has taken a course on digital logic design and has been exposed to writing programs using at least one high-level programming language. Knowledge of the C programming language will be very useful. Also, familiarity with at least one member of the PIC series of microcontrollers (e.g. PIC16 or PIC18) will be an advantage. The knowledge of assembly language programming is not required because all the projects in the book are based on using the C language. If you are a total beginner in programming you can still access the book, but first you are advised to study introductory books on microcontrollers.