A Project-Based Introduction to Microcontrollers and Drone Control
A Practical Introduction to Embedded Systems with the ESP32
This book is intended for readers who are new to embedded systems and looking for a structured, example-driven way to begin. If you’ve explored general-purpose electronics or Arduino-based resources but found them too broad or lacking in practical application, this guide offers a more focused alternative.
With a small, affordable set of components – such as LEDs, sensors, an OLED screen and a motion sensor – you’ll build and work with the same hardware setup throughout the book. This allows you to focus on learning and experimenting without constant reconfiguration.
Topics include:
Understanding and programming the ESP32 microcontroller
Using the Arduino IDE to write and deploy code
Exploring cyber-physical systems, culminating in basic drone control
No prior experience with Arduino or embedded development is required. Each section includes hands-on examples and mini-projects designed to reinforce core concepts and encourage deeper exploration. By the end, you’ll be equipped not only to reproduce the book’s examples, but also to extend them toward your own ideas and applications.
Whether your interest is in learning embedded programming, building interactive systems, or exploring educational drone control, this book provides a clear and practical path to getting started.
The XIAO ESP32-C3 board combines the ultra-compact form factor of the XIAO series with the full capabilities of the ESP32-C3 chip, including integrated Wi-Fi and Bluetooth 5.0. This book is a comprehensive, hands-on guide to getting the most out of this powerful yet affordable development board.
The author takes readers from the fundamentals to advanced projects. Starting with LED blinking and dimming, the book progresses to ADC and PWM for precise sensor interfacing and PWM-controlled lighting effects before moving on to building practical, real-world applications, including:
A Wi-Fi weather station with an OLED display and real-time online weather data
An ultrasonic parking assistant with audible feedback
A refrigerator monitoring probe with climate sensing and Deep Sleep for years of battery operation
A retro Pong game controlled by a touch-free sensor
A microphone-based party app that responds to claps
And much more: lighting control, reaction-time measurement, mains frequency analysis, soil moisture sensing, ambient LED lighting, and 7-segment displays
De Elektor Audio DSP FX Processor combineert een ESP32-microcontroller en een ADAU1701 Audio DSP van Analog Devices. Naast een door de gebruiker programmeerbare DSP-kern heeft de ADAU1701 hoogwaardige analoog-naar-digitaal en digitaal-naar-analoog converters ingebouwd en is hij voorzien van een I²S-poort. Dit maakt hem geschikt als hoogwaardige audio-interface voor de ESP32.
Programma's voor de ESP32 kunnen worden gemaakt met Arduino, Platform IO, CMake of door de Espressif IDF op een andere manier te gebruiken. Programma's voor de ADAU7101 audio DSP's worden gemaakt met de gratis visuele programmeertool SigmaStudio door voorgedefinieerde algoritmablokken op een canvas te slepen.
Toepassingen
Bluetooth/Wi-Fi audio sink (bijv. luidspreker) & bron
Gitaareffectpedaal (stompbox)
Muzieksynthesizer
Geluids-/functiegenerator
Programmeerbaar cross-overfilter voor luidsprekers
Geavanceerde audio-effectprocessor (reverb, chorus, pitch shifting, enz.)
Audioapparaat met internetverbinding
DSP-experimentplatform
Draadloze MIDI
MIDI naar CV-converter
en nog veel meer...
Specificaties
ADAU1701 28-/56-bit, 50-MIPS digitale audioprocessor die bemonsteringsfrequenties tot 192 kHz ondersteunt
ESP32 32-bit dual-core microcontroller met Wi-Fi 802.11b/g/n en Bluetooth 4.2 BR/EDR en BLE
2x 24-bit audio-ingangen (2 V RMS, 20 kΩ)
4x 24-bit audio-uitgangen (0,9 V RMS, 600 Ω)
4x Regelpotentiometer
MIDI in- en uitgang
I²C-uitbreidingspoort
Multi-mode werking
Voeding: 5 V DC USB of 7,5-12 V DC (cilinderaansluiting, middelste pin is GND)
Stroomverbruik (gemiddeld): 200 mA
Inbegrepen
1x ESP32 Audio DSP FX Processor board (gemonteerd)
1x ESP32-PICO-KIT
2x Truien
2x 18-pins headers (female)
4x 10 KB potentiometers
Downloads
Documentation
GitHub
59 Experiments with Arduino IDE and Python
The main aim of this book is to teach the Arduino IDE and MicroPython programming languages in ESP32 based projects, using the highly popular ESP32 DevKitC development board. Many simple, basic, and intermediate level projects are provided in the book using the Arduino IDE with ESP32 DevKitC. All projects have been tested and work. Block diagrams, circuit diagrams, and complete program listings of all projects are given with explanations. In addition, several projects are provided for programming the ESP32 DevKitC using MicroPython. The projects provided in this book are designed to teach the following features of the ESP32 processor:
GPIOs
Touch sensors
External interrupts
Timer interrupts
I²C and I²S
SPI
PWM
ADC
DAC
UART
Hall sensor
Temperature sensor
Infrared controller
Reading and writing to SD card
Reading and writing to flash memory
RTC timer
Chip ID
Security and encryption
Wi-Fi and network programming
Bluetooth BLE programming
Communication mobile devices
Low power design
ESP-IDF programming
The projects have been organized with increasing levels of difficulty. Readers are encouraged to tackle the projects in the order given. A specially prepared hardware kit (SKU 18305) is available from Elektor. With the help of this hardware, it should be easy and fun to build the projects in this book.
Open-Source-Code mit Arduino IDE und PlatformIO
Autonomes Fahren: GPS, Accelerometer, Gyroskop
PS3-Controller
Mikrocontroller wie der Arduino und Einplatinenrechner wie der Raspberry Pi haben sich zu beliebten Komponenten entwickelt. Dritter im Bunde ist der ESP32 der Firma Espressif. Mikrocontroller dieser Baureihe zeichnen sich durch eine Vielzahl implementierter Funktionen aus, die bei einem Arduino konventioneller Prägung mit einem Atmel-AVR-Mikrocontroller erst mit weiterer Hardware möglich sind. Prominentes Beispiel sind hier die WiFi- und Bluetooth-Funktionalitäten. Gegenüber einem Raspberry Pi zeichnen sie sich durch einen deutlich geringeren Preis aus.
Allgemeine Informationen für die Realisierung eines Roboterauto-Projekts mit dem ESP32 sind leicht zu finden. Dabei handelt es sich aber oft nur um Ausführungen zu einem Teilaspekt, ohne inhaltliche oder funktionale Abstimmung. So ist nicht nur die Beschaffung der benötigten Informationen mühselig und zeitaufwändig, sie kann auch außerordentlich fehlerträchtig sein.
Ansatzpunkt dieses Buches ist, diese Lücke zu schließen. Es geht auf verschiedene Möglichkeiten eines Chassis ein, vermittelt nötige Kenntnisse und führt schrittweise von einer einfachen Motorsteuerung zu einem komplexen sensor- und sprachgesteuerten Roboterauto. Hacks rund um GPS und eine PlayStation 3 runden die Sache ab.
Inhalt
Bei der Reihenfolge der Kapitel wurde versucht – beginnend bei der Darstellung von grundlegenden Informationen – über die Lösung einfacher Aufgaben zu etwas anspruchsvolleren Techniken zu führen.
Der Mikrocontroller ESP32
Die Software erstellen
Die Stromversorgung
Rund um die Hardware
Das Chassis
Der Gleichstrommotor
Kabellose Steuerung über WiFi
Mit Sensoren Hindernisse erkennen
Eine eigene Roboterauto-App
Servo und Lichtsensor
GPS
Accelerometer / Gyroskop
PS3-Controller
Roboterauto-App
Hinweis zur Software
Die Dateien haben das Suffix (.cpp). Grund ist die Entwicklung mit PlatformIO. Mit Copy & Paste sollten sie auch in der Arduino-IDE verwendet werden können.
Der ESP8266 von Espressif ist ein Wi-Fi-Mikrochip mit vollem TCP/IP-Stack und Mikrocontroller-Fähigkeit. Es hat mit seinem niedrigen Preis Wellen in der Herstellergemeinschaft geschlagen.
Aber viele Entwickler waren unzufrieden mit dem hohen Stromverbrauch von ESP8266. Der ESP32, ausgestattet mit einem ULP (Ultra Low Power) Coprozessor, bietet eine Lösung.
Dieses E-Book enthält eine Reihe von Projekten mit ESP32 & ESP8266 sowie ein Interview mit dem CEO von Espressif Teo Swee Ann.
Artikel
ESP32 für den Einsatz in Geräten der Industrie 4.0
Scrollende Nachrichtenanzeige, 512 LEDs per WLAN mit ESP-12F ansteuern
Das vernetzte Treibhaus, IoT-Modellprojekt mit MQTT und Node-RED
VFD-Röhren-Uhr mit ESP32, Internet-Zeit auf Vintage-Displays
ESP32 stromsparend, die Programmierung des ULP-Coprozessors
DCF77-Emulator mit ESP8266, DCF durch Internet-Zeit ersetzen
Was steckt hinter dem berühmtem ESP8266?
WLAN-Thermostat, flexible und programmierbare Temperatursteuerung
Timer für den WLAN-Thermostat, sieben Kanäle mit atomarer Genauigkeit
Schweizer Taschenmesser für Mikrocontroller, PlatformIO als universelles Programmier-Tool
ESP32 für Power-User, native Programmierung
Weather-Display, aktuelle Wetterdaten auf einem LC-Display darstellen
GoNotify, ein flexibles IoT-Sensorinterface. Einfach in die Cloud.
Der große Bruder des ESP8266, erste Schritte mit dem ESP32 und der Arduino-IDE
MicroPython, Python für kleine Systeme
RGBDigit Clock, farbenfrohe 7-Segment-Displays zeigen Zeit und Klima
USB-Programmieradapter für die ESP-Module von Espressif
Heizkesselmonitor mit ESP8266, Haustechnik für die Energiewende
WLAN für Mikrocontroller, steuern mit dem ESP8266
Die Rückkehr des WLAN-Controller-Boards, Smartphone steuert IoT-Objekte
WLAN kompakt und autonom, oder: Wie man den ESP8266 auch ohne MCU einsetzen kann
L'ESP8266 d'Espressif est une puce Wi-Fi dotée d'une pile TCP/IP complète et d'une capacité de microcontrôleur. Il a fait des vagues dans la communauté des fabricants grâce à son prix bas.
Mais de nombreux développeurs étaient mécontents de la consommation électrique élevée de l'ESP8266. L'ESP32, équipé d'un coprocesseur ULP (Ultra Low Power), propose un remède à cela.
Cet e-book présente un certain nombre de projets mettant en vedette ESP32 et ESP8266 et démontre leurs performances dans différentes applications.
Des articles
Journal lumineux défiant512 pilotes LED pour Wi-Fi dotés d'un ESP-12F
Regarder avec VFD et ESP32À la précision d'Internet
L'ESP32 est idéal pour la consommationProgrammation du coprocesseur ULP
Adaptateur de programmation USB pour ESP8266Dans la famille Espressif, je voudrais l'ESP-01 et l'ESP-012
Émulateur DCF77 à ESP8266Des ondes radio à l'internet
Thermostat sur le bureau WiFiSurveillance de la température flexible et programmable
Minutes pour le thermostat du bureau WiFiSept canaux de temporisation d'une précision atomique
Coûteau suisse pour microcontrôleursPlatformIO, un outil de programmation universel
Station Météo NucleoInformations mises à jour sur l'affichage sur l'écran LCD
AllerNotifierUne interface flexible pour les captureurs d'IdO
Regarder RGBChiffreAffiche avec 7 segments et couleur
ESP32 pour les utilitaires exigeantsProgrammation avec les outils d'origine
Mutation de l'ESP8266Découvrons l'ESP32 avec l'EDI d'Arduino
MicroPythonLe Python des petits systèmes
MicroPython et PyBoardLa LED qui clignote…Au serveur web qui fait clignoter une LED
Machine de surveillance pour ESP8266Domotique pour la transition énergétique
WLAN compact et autonomeOu comment utiliser la puce ESP8266 sans µC
ESP8266 sur la carte d'entrées/sorties AndroidLancez-vous dans la mise à jour du micrologiciel
WLAN pour microcontrôleursAvec la puce ESP8266
Carte de commande Wi-Fi : le retourRelies des objets à votre ordiphone
Practical Multitasking Fundamentals
Programming embedded systems is difficult because of resource constraints and limited debugging facilities. Why develop your own Real-Time Operating System (RTOS) as well as your application when the proven FreeRTOS software is freely available? Why not start with a validated foundation?
Every software developer knows that you must divide a difficult problem into smaller ones to conquer it. Using separate preemptive tasks and FreeRTOS communication mechanisms, a clean separation of functions is achieved within the entire application. This results in safe and maintainable designs.
Practicing engineers and students alike can use this book and the ESP32 Arduino environment to wade into FreeRTOS concepts at a comfortable pace. The well-organized text enables you to master each concept before starting the next chapter. Practical breadboard experiments and schematics are included to bring the lessons home. Experience is the best teacher.
Each chapter includes exercises to test your knowledge. The coverage of the FreeRTOS Application Programming Interface (API) is complete for the ESP32 Arduino environment. You can apply what you learn to other FreeRTOS environments, including Espressif’s ESP-IDF. The source code is available from GitHub. All of these resources put you in the driver’s seat when it is time to develop your next uber-cool ESP32 project.
What you will learn:
How preemptive scheduling works within FreeRTOS
The Arduino startup “loopTask”
Message queues
FreeRTOS timers and the IDLE task
The semaphore, mutex, and their differences
The mailbox and its application
Real-time task priorities and its effect
Interrupt interaction and use with FreeRTOS
Queue sets
Notifying tasks with events
Event groups
Critical sections
Task local storage
The gatekeeper task
De ESP8266 van Espressif is een Wi-Fi microchip met volledige TCP/IP stack en functionaliteit van een microcontroller. Het heeft indruk gemaakt in de maker community met zijn lage prijs.
Maar veel ontwikkelaars waren ontevreden over het hoge stroomverbruik van de ESP8266. De ESP32, uitgerust met een ULP (Ultra Low Power) coprocessor, biedt hiervoor een oplossing.
Dit e-book bevat een aantal projecten met ESP32 & ESP8266 en een interview met de CEO Teo Swee Ann van Espressif.
Artikelen
Lichtkrant met ESP-12F, 512 LED’s via WiFi aansturen
VFD-klok met ESP32, met nauwkeurige internettijd
Zuinige ESP32, de programmering van de ULP-coprocessor
DCF77-emulator met ESP8266, internettijd vervangt draadloze tijd
WiFi desktop-thermostaat, flexibele en programmeerbare temperatuurregeling
Timers voor de WiFi desktop-thermostaat, zeven kanalen met atoomprecisie
Zwitsers zakmes voor microcontrollers, PlatformIO als universeel programmeertool
ESP8266 USB-programmeer-adapter voor de Espressif-modules ESP-01 en ESP-012
De ESP8266 op het Android I/O-board, zelf nieuwe firmware flashen
Weerdisplay, actuele weersinformatie op een kleuren-LCD
GoNotify, een flexibele IoT sensor-interface. Join the bubble!
CV-monitor met ESP8266, domotica voor de overgang naar duurzame energie
MicroPython en het pyboard, van een knipperende LED naar … een knipperende LED aan een webserver
De grote broer van de ESP8266, de eerste stappen met de ESP32 en de Arduino-IDE
RGBDigit klok, een kleurrijk 7-segment-display voor uw data
WLAN voor microcontrollers, besturen met de ESP8266
De terugkeer van de Wi-Fi-besturingskaart, apparatuur bedienen met uw smartphone
Compact en autonoom WLAN, handig gebruik van de ESP8266 zonder MCU
Practical Multitasking Fundamentals
Programming embedded systems is difficult because of resource constraints and limited debugging facilities. Why develop your own Real-Time Operating System (RTOS) as well as your application when the proven FreeRTOS software is freely available? Why not start with a validated foundation?
Every software developer knows that you must divide a difficult problem into smaller ones to conquer it. Using separate preemptive tasks and FreeRTOS communication mechanisms, a clean separation of functions is achieved within the entire application. This results in safe and maintainable designs.
Practicing engineers and students alike can use this book and the ESP32 Arduino environment to wade into FreeRTOS concepts at a comfortable pace. The well-organized text enables you to master each concept before starting the next chapter. Practical breadboard experiments and schematics are included to bring the lessons home. Experience is the best teacher.
Each chapter includes exercises to test your knowledge. The coverage of the FreeRTOS Application Programming Interface (API) is complete for the ESP32 Arduino environment. You can apply what you learn to other FreeRTOS environments, including Espressif’s ESP-IDF. The source code is available from GitHub. All of these resources put you in the driver’s seat when it is time to develop your next uber-cool ESP32 project.
What you will learn:
How preemptive scheduling works within FreeRTOS
The Arduino startup “loopTask”
Message queues
FreeRTOS timers and the IDLE task
The semaphore, mutex, and their differences
The mailbox and its application
Real-time task priorities and its effect
Interrupt interaction and use with FreeRTOS
Queue sets
Notifying tasks with events
Event groups
Critical sections
Task local storage
The gatekeeper task
The ESP8266 from Espressif is a Wi-Fi microchip with full TCP/IP stack and microcontroller capability. It has made waves in the maker community with its low price.
But many developers were unhappy with ESP8266's high power consumption. The ESP32, equipped with a ULP (Ultra Low Power) coprocessor, offers a remedy for this.
This e-book features a number of projects featuring ESP32 & ESP8266 as well as an interview with the CEO of Espressif Teo Swee Ann.
Articles
ESP32 for Use in Industry 4.0 Equipment
Scrolling Message Display, 512 LEDs controlled over Wi-Fi via an ESP-12F
The Connected Greenhouse IoT demonstration project using MQTT and Node-RED
VFD-tube Clock with ESP32 with an accurate Internet-derived time
ESP32 Low Power
DCF77 Emulator with ESP8266
ESP8266 on the Elektor Android I/O Board
The Reason Behind the Hugely Popular ESP8266?
Wi-Fi Desktop Thermostat
Timers for the Wi-Fi Desktop Thermostat
PlatformIO, the Universal Programming Tool
Weather Display, Visualize current weather data on an LC display
GoNotify, a Flexible IoT Sensor Interface
ESP32 for Power Users
USB Programming Adaptor for ESP8266
Getting started with ESP32 and the Arduino IDE
MicroPython, Python for small systems
RGBDigit Clock
WLAN for Microcontrollers
Return of the Wi-Fi Controller Board
Compact and Self-contained WLAN