Kirjailija
Harry Fairhead
Kirjat ja teokset yhdessä paikassa: 27 kirjaa, julkaisuja vuosilta 2016-2026, suosituimpien joukossa Programming The ESP32 RISC In C Using The Espressif IDF. Vertaile teosten hintoja ja tarkista saatavuus suomalaisista kirjakaupoista.
27 kirjaa
Kirjojen julkaisuhaarukka 2016-2026.
Programming the Raspberry Pi Pico/W in MicroPython, Third Edition
Mike James; Harry Fairhead
I/O Press
2025
pokkari
The Espressif ESP32 is a remarkable device. It is low cost but with many different subsystems that make it more powerful than you might think. You can use it for simple applications because it is cheap, but you can also use it for more sophisticated applications because it is capable.C is the ideal choice of language to program the ESP32, ensuring that your programs are fast and efficient, and here it is used with the customized ESP version of the Arduino library and its associated IDE which makes the device as easy to use as possible. The Arduino library runs on top of the official Espressif ESP32 IoT Development Framework as a simplifying layer and you can always drop down a level and make use of its additional features when required.The purpose of this book is to reveal what you can do with the ESP32's GPIO lines together with widely used sensors, servos and motors and ADCs. After covering the GPIO, outputs and inputs, events and interrupts, it gives you hands-on experience of PWM (Pulse Width Modulation), the SPI bus, the I2C bus and the 1-Wire bus, the UARTs and, of course, WiFi. To round out, it covers direct access to the hardware, adding an SD Card reader, sleep states to save power, the RTC, RMT and touch sensors. It also devotes a chapter to FreeRTOS which takes us into the realm of asynchronous processing.This is not a projects book, although there isn't much left for you to do to round out the embryonic projects that are used as examples. Instead it is about understanding concepts and the acquisition of skills. The hope is that by the end of the book you will know how to tackle your own projects and get them safely to completion without wasting time in trial and error.Harry Fairhead is the author of Programming the ESP32 in C Using the Espressif IDF and co-author of Programming the ESP32 in MicroPython. C is his programming language of choice and he is the author of Fundamental C: Getting Closer To The Machine and Applying C For The IoT With Linux. His other books on programming single-board computers include Programming the Raspberry Pi Pico/W in C; Raspberry Pi IoT In C; Raspberry Pi IoT in C With Linux Drivers and Micro: bit IoT in C.
The Espressif ESP32 is a remarkable device. It is low cost but with many different subsystems that make it more powerful than you might think. You can use it for simple applications because it is cheap, but you can also use it for more sophisticated applications because it is capable. C is the ideal choice of language to program the ESP32, ensuring that your programs are fast and efficient, and here it is used with the Espressif IoT Development Framework, ESP-IDF and VS Code, a combination which makes it simple to get started and provides a wealth of functions not found elsewhere. The purpose of this book is to reveal what you can do with the ESP32's GPIO lines together with widely used sensors, servos and motors and ADCs. After covering the GPIO, outputs and inputs, events and interrupts, it gives you hands-on experience of PWM (Pulse Width Modulation), PWM for Motor control, the SPI bus, the I2C bus and the 1-Wire bus, the UARTs and of course WiFi. To round out, it covers direct access to the hardware, adding an SD Card reader, sleep states to save power, the RTC, RMT and touch sensors. It also devotes a chapter to FreeRTOS which takes us into the realm of asynchronous processing. This is not a projects book, although there isn't much left for you to do to round out the embryonic projects that are used as examples. Instead it is about understanding concepts and the acquisition of skills. The hope is that by the end of the book you will know how to tackle your own projects and get them safely to completion without wasting time in trial and error. Harry Fairhead is the co-author of Programming the ESP32 in MicroPython, but C is his programming language of choice and electronics is his forte. He is the author of Fundamental C: Getting Closer To The Machine and Applying C For The IoT With Linux. His other books on programming single-board computers include Programming the Raspberry Pi Pico/W in C; Raspberry Pi IoT In C; Raspberry Pi IoT in C With Linux Drivers and Micro: bit IoT in C.
Raspberry Pi IoT In Python Using GPIO Zero, 2nd Edition
Mike James; Harry Fairhead
I/O Press
2024
pokkari
Raspberry Pi IoT In Python Using Linux Drivers, 2nd Edition
Mike James; Harry Fairhead
I/O Press
2024
pokkari
The Raspberry Pi makes an ideal match for the Internet of Things. To put it to good use in IoT you need two areas of expertise, electronics and programming, and this presents a barrier to getting started. However, there is an overlooked route that can provide a shortcut. Pi OS, the Raspberry Pi's operating system, is Linux- based and Linux drivers are available for many off-the-shelf IoT devices. Using Linux drivers saves the effort of implementing low-level code and has the advantage of working the same on all versions of the Pi, including the recently launched Pi 5 which isn't hardware compatible with earlier versions. This Second Edition has been updated to cover the Pi 5 and also the Pi Zero 2W, which is an ideal candidate for use in IoT projects. It has also been updated to use the latest versions of Pi OS, Bullseye and Bookworm. Throughout this book you will find a practical approach to understanding electronic circuits and datasheets and translating this to code, specifically using Python and VS Code. 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 driver, it uses the Linux LED driver. The GPIO isn't left out, however, as the next three chapters focus on its use via the GPIO character driver, which replaces the old, but 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 several devices, including the DHT22 temperature and humidity sensor. After a brief detour into some basic electronics, we see how Pulse Width Modulation is supported via a driver. 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 1-Wire bus is also covered in detail. 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's other books include Applying C For The IoT With Linux; Programming the Raspberry Pi Pico/W, 2nd Ed, Raspberry Pi IoT in C, 3rd Ed, Raspberry Pi IoT in C Using Linux Drivers, 2nd Ed, Programming the Raspberry Pi Pico/W, 2nd Ed and Programming the ESP32 in MicroPython. Mike James is the author of the Programmer's Python: Something Completely Different series of books and several other programming and computer science titles in the I Programmer Library.
Reviews of the previous edition: "A complete explanation that makes it straightforward to interface I/O options to the Pi. Good examples are easy to follow and well explained - starting with "Hello World" and then walks through the various interface options available with GPIO. I highly recommend this to anyone using the Pi for any embedded system application requiring various types of interfaces.""This is the book to read to get deep into Raspberry IoT. Programming examples are provided. Great book " The Raspberry Pi makes an ideal match for the Internet of Things. But to put it to good use in IoT you need two areas of expertise, electronics and programming and, because of the way hardware and software engineering tend to occupy separate niches, you may need help with combining the two which is the role of this book.This 3rd Edition was prompted by the arrival of the Pi 5. Unfortunately, as the Pi 5 uses the new RP1 chip to implement its peripherals, it is incompatible with all of the IoT libraries that work directly with the hardware. As a result it is excluded from much of this book. A whole chapter is, however, devoted to getting started with an IoT project with the Pi 5 and it is also covered in chapters on the Linux GPIO driver and on the use of the Pi's serial ports and in a chapter, which describes how to access the Pi 5's registers directly.What is more important than the Pi 5 from the point of view of IoT is the Pi Zero 2W, which is a much faster, quad-core, version of the Pi Zero W making it an excellent choice for IoT projects. It is covered for the first time in this edition. Another reason for a new edition is to update its programs to the new versions of Pi OS, Bookworm and Bullseye. Finally, a major change is that VS Code is now the book's IDE of choice and to make it easy to use as a remote development environment with all versions of Pi from Pi Zero to Pi 5, a set of custom VS Code tasks are supplied, which are downloadable as well as included in the book.The main idea in this book is to work directly with the hardware using the Raspberry Pi's GPIO (General Purpose Input Output) to connect with off-the-shelf sensors. After reading it you will be in a better position to tackle interfacing anything-with-anything without the need for custom drivers and prebuilt hardware modules. Harry Fairhead has worked with microprocessors and electronics for many years and is an enthusiastic proponent of the IoT. C is his programming language of choice and he has written several books on programming the Raspberry Pi and other devices in an IOT context, including Raspberry Pi IoT in C With Linux Drivers, Second Edition, Programming the ESP32 in MicroPython and Fundamental C: Getting Closer To The Machine. Currently, his most popular title is Programming the Raspberry Pi Pico/W in C.
The ESP32 is a remarkable device. It is low cost but with many different subsystems that make it more powerful than you might think. You can use it for simple applications because it is cheap, but you can also use it for more sophisticated applications because it is capable. MicroPython is a good choice of language to program the Pico. Although it is a slower language than C, most of the time this doesn't matter and it is much easier to use. As a high-level language, MicroPython is based on Python 3 and is fully object-oriented. In general, you can take an existing Python 3 program and simply run it under MicroPython. If there are any changes to make, they are generally minor.Another good thing about MicroPython on the ESP32 is that it is very easy to get started. After a simple installation procedure you have a working MicroPython machine which you can program almost at once using the Thonny IDE or PyCharm which has more extensive syntax checking and input prompting.The purpose of the book is to reveal what you can do with the ESP's GPIO lines together with widely used sensors, servos and motors and ADCs. After covering the GPIO, outputs and inputs, events and interrupts, it gives you hands-on experience of PWM (Pulse Width Modulation), the SPI bus, the I2C bus and the 1-Wire bus. We also cover direct access to the hardware, adding an SD Card reader, sleep states to save power, the RTC, RMT and touch sensors, not to mention how to use WiFi.The ESP32 has so many resources that a comprehensive account would fill a book twice this size. In order to make things fit in the space available we have concentrated on things that are accessible from MicroPython and that are basic to getting started. We have avoided "advanced" topics which generally lead the beginner into deep water far too quickly. However, we do cover of use of uasyncio, and asynchronous programming, in general as they are essential to networking. Jointly authored by Harry Fairhead and Mike James, this book combines Harry's expertise in electronics and the IoT with Mike's knowledge of Python. Their previous books include Programming the Raspberry Pi Pico/W in MicroPython, Raspberry Pi IoT In Python, Raspberry Pi IoT In Python Using Linux Drivers while Harry Fairhead is the author of the C language counterparts. His other books include Fundamental C: Getting Closer To The Machine, Applying C For The IoT With Linux, and Micro: bit IoT in C. Mike James is the author of the Programmer's Python: Something Completely Different series of books and several other programming and computer science titles in the I Programmer Library.
Adding WiFi to the Raspberry Pi Pico turns this low-cost, small form factor device into a true IoT device. The extra capabilities added to the Pico W open up loads of opportunities, but only if you are prepared to do battle with the two libraries that provide networking and security - lwIP and mbedtls respectively. The problem with these large libraries of code is that they are poorly documented and don't refer directly to the Pico W and its SDK. This book sets out to remedy this by providing a guide to these libraries along with examples of what you can do with them. Having introduced the Pico WiFi Stack and basic network connections, we look at how to use TCP to create the all-important Protocol Control Block and then tackle implementing an HTTP client. As well as covering the basic mechanics of using lwIP, we also concentrate on how to organize the use of an asynchronous library based on callbacks. The problem of IoT security is unique because IoT devices can be physically accessed by an attacker and hence any secrets embedded in their code have to be considered almost as public knowledge. Even so it is worth implementing encryption and this is achieved using mbedtls to create an HTTPS client. If you can ensure the physical security of the IoT device, then running it as a server is possible and this is covered in both HTTP and HTTPS modes, complete with certificates. We cover the basics of cryptography, including the problem of generating random numbers, what an encryption suite is and the various modes of AES encryption.The later chapters are devoted to specific protocols, making use of both lwIP and mbedtls. We look at UDP; SNTP to set the Pico W's real time clock; SMTP to allow email notifications and MQTT. Harry Fairhead is also the author of Programming The Raspberry Pi Pico/W In C; Raspberry Pi IoT in C, Raspberry Pi IoT In C Using Linux Drivers, Applying C For The IoT With Linux, Fundamental C: Getting Closer To The Machine and Micro: bit IoT in C. Mike James is the author of Programming the Raspberry Pi Pico/W in MicroPython; Raspberry Pi IoT In Python Using GPIO Zero; and the Programmer's Python: Something Completely Different series of books and several other programming and computer science titles in the I Programmer Library.
Reviews of the first edition: "One of the best programming books on microcontroller programming I have, and I have many""Often, these sort of books are just a rehash of the manufacturer documentation. This was written in a very clear style by someone who has actually used the Pico and encountered some of the traps and pitfalls. I would highly recommend this to anyone contemplating writing applications for the Pico in C/C++.""As opposed to other books on the subject, this one goes deeply enough so that you can cover most aspects of what is discussed.""This book will be a true time saver however, and the task learning C for programming the Raspberry Pi Pico will seem a little less intimidating"The Raspberry Pi Pico is a remarkable microcontroller. It has a power and sophistication that would have been unthinkable just a short time ago. For the sort of jobs it is ideal for, it has plenty of processing power and enough memory to make tasks that would have once required careful planning, relatively easy. Instead of struggling with the machine, you can now focus on getting a good implementation of your algorithms. To enjoy all of its power and sophistication there is no better language than C. It wastes none of the power and it gives you what you need to get at the new features. However, getting started with the Pico with C is no easy feat, which is what motivated this book. Programming the Raspberry Pi Pico in C uses the highly popular VS Code as its development environment and shows how to use a Raspberry Pi or a desktop PC running Windows as your development machine. The purpose of the book is to reveal what you can do with the Pico's GPIO lines together with widely used sensors, servos and motors and ADCs. After covering the GPIO, outputs and inputs, events and interrupts, it gives you hands-on experience of PWM (Pulse Width Modulation), the SPI bus, the I2C bus and the 1-Wire bus. One of the key advantages of the Pico is its PIO (Programmable I/O) and while this is an advanced feature it is introduced in this book. The original Pico lacked WiFi connectivity, a limitation overcome by the recent launch of the Pico W. You can think of as the Pico W as a superset of the original - everything you can do with an original Pico you can do with a Pico W, but not vice versa. A brand new chapter is dedicated to how to make use of the additional features of the Pico W including how to create a web client and a web server and any differences between the two versions are clearly indicated throughout the book. Harry Fairhead has a hardware background and, having worked with microprocessors and electronics in general, for many years, he is an enthusiastic proponent of the IoT and embedded computing. He is the author of two books intended for C programmers, Fundamental C: Getting Closer To The Machine and Applying C For the IoT With Linux and four books on the using the Raspberry Pi in an IoT context, two using C and two using Python. He is now working on a Python version of this book for the Pico and on Master the Raspberry Pi Pico, which goes deeper into the PIO, the second core, using TLS/HTTPS and FreeRTOS, which is the next book you should read if you want to take Pico programming to the next level.
There is a new edition of this book.The Raspberry Pi makes an ideal match for the Internet of Things. To put it to good use in IoT you need two areas of expertise, electronics and programming, and this presents a barrier to getting started. However, there is an overlooked route that can provide a shortcut. Pi OS, the Raspberry Pi's operating system, is Linux- based and Linux drivers are available for many off-the-shelf IoT devices. These provide a very easy-to-use, high-level, way of working. The problem that this book solves is that there is very little documentation to help you get started.Throughout this book you will find a practical approach to understanding electronic circuits and datasheets and translating this to code, specifically using Python. Python is an excellent language for learning about the IoT or physical computing. It might not be as fast as C, but it is much easier to use for complex data processing. The emphasis in this book is on understanding how things work so that you can apply your new knowledge to your own projects. You can use any Python development system that you know, but the programs in the book have been developed using Visual Studio Code and its remote development facilities.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 several devices, including the DHT22 temperature and humidity sensor. After a brief detour into some basic electronics, we see how Pulse Width Modulation is supported via a driver. 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.This is the second title jointly authored by Harry Fairhead and Mike James and can be seen as the alternative approach to that outlined in Raspberry Pi IoT In Python Using GPIO Zero. For both books, Harry brings his expertise in electronics and the IoT and Mike contributes the Python code.Harry Fairhead is the author of other IoT-related titles including Raspberry Pi IoT in C, Second Edition; Micro: bit IoT in C, Second Edition; Applying C For The IoT With Linux and Fundamental C: Getting Closer To The Machine.Mike James is the author of Programmer's Python: Everything is an Object and other programming and computer science titles in the I Programmer Library.
Amazon Reviews Of The First Edition: "If you are serious about using the micro: bit to it's fullest potential, you need this book.""Best Micro: bit book for C developers""This is a great book for low-level (think hardware register level) developers using BBC Micro: bit computers. I really thank the author. Harry Fairhead, for writing on this subject since it is so poorly documented." The BBC micro: bit is capable of taking on a variety of roles including that of a powerful IoT device. In order to gain full access to its features and to external devices, however, you need to use C which delivers the speed which is crucial when you are writing programs to communicate with the outside world.The new V2 version of the micro: bit is fully covered in Micro: bit IoT in C, Second Edition, which now uses the highly popular VS Code for offline development. It covers how to get started the easy way by providing downloadable templates for both V1 and V2 of the micro: bit.Having started with the traditional "Blinky" program, the equivalent of "Hello World" for hardware, we are ready to discover how to control the micro: bit's I/O lines, exploring the basis of using the GPIO. For speed, however, we need to work directly with the raw hardware and also master memory mapping, pulse width modulation and other more sophisticated bus types. From here we can start connecting sensors using first the I2C bus, then by implementing a custom protocol for a one-wire bus, and eventually adding eight channels of 12-bit A-to-D with the SPI bus, which involves overcoming some subtle difficulties. We then look at serial connections, one of the oldest ways of connecting devices, but still very useful. The micro: bit lacks WiFi connectivity but using a low-cost device we enable a connection to the Internet via its serial port which allows it to become a server. Next we look at the micro: bit's LED display. This may only be 5x5, but it is very versatile, especially when you use pulse width modulation to vary the brightness level, something we demonstrate in a classic game, written of course in C. The book rounds out with a new chapter on the micro: bit's radio and the V2's sound capabilities.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 of Raspberry Pi IoT In C With Linux Drivers. He has also co-authored Python versions of these books - Raspberry Pi IoT in Python Using GPIO Zero and Raspberry Pi IoT In Python With Linux Drivers. His own language of choice is C and he has also written Fundamental C: Getting Closer To The Machine and Applying C For The IoT With Linux.
There is a new edition of this book.The Raspberry Pi makes an ideal match for the Internet of Things. To put it to good use in IoT you need two areas of expertise, electronics and programming and this presents a barrier to getting started. However, there is an overlooked route that can provide a shortcut. Pi OS, the Raspberry Pi's operating system is Linux based and Linux drivers are available for many off-the-shelf IoT devices. These provide a very easy-to-use, high-level way of working. The problem that this book solves is that there is very little documentation to help you get started. In it Harry Fairhead explains the principles so that you can tackle new devices and he also guides you through of using external hardware via standard Linux drivers. Throughout this book you will find a practical approach to understanding electronic circuits and datasheets and translating this to code, specifically using the C programming language. The main reason for choosing C is speed, a crucial factor when you are writing programs to communicate with the outside world and if you are familiar with another programming language, C shouldn't be hard to pick up.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.