Develop your own custom home automation devices
Espressif's ESP8266 and ESP32 microcontrollers have brought DIY home automation to the masses. However, not everyone is fluent in programming these microcontrollers with Espressif's C/C++ SDK, the Arduino core, or MicroPython. This is where ESPHome comes into its own: with this project, you don’t program your microcontroller but configure it.
This book demonstrates how to create your own home automation devices with ESPHome on an ESP32 microcontroller board. You’ll learn how to combine all kinds of electronic components and automate complex behaviours. Your devices can work completely autonomously, and connect over Wi-Fi to your home automation gateways such as Home Assistant or MQTT broker.
By the end of this book, you will be able to create your own custom home automation devices the way you want. Thanks to ESPHome and the ESP32, this is within everyone’s grasp.
Set up an ESPHome development environment and create maintainable configurations
Use buttons and LEDs
Sound a buzzer and play melodies
Read measurements from various types of sensors
Communicate over a short distance with NFC, infrared light, and Bluetooth Low Energy
Show information on various types of displays
Downloads
Software
The LILYGO T-Display-S3 Long is a versatile development board powered by the ESP32-S3R8 dual-core LX7 microprocessor. It features a 3.4-inch capacitive touch TFT LCD with a resolution of 180x640 pixels, providing a responsive interface for various applications.
This board is ideal for developers seeking a compact yet powerful solution for projects requiring touch input and wireless communication. Its compatibility with popular programming environments ensures a smooth development experience.
Specifications
MCU
ESP32-S3R8 Dual-core LX7 microprocessor
Wireless Connectivity
Wi-Fi 802.11, BLE 5 + BT Mesh
Programming Platform
Arduino IDE, VS Code
Flash
16 MB
PSRAM
8 MB
Bat voltage detection
IO02
Onboard functions
Boot + Reset Button, Battery Switch
Display
3.4" Capacitive Touch TFT LCD
Color depth
565, 666
Resolution
180 x 640 (RGB)
Working power supply
3.3 V
Interface
QSPI
Included
1x T-Display S3 Long
1x Power cable
2x STEMMA QT/Qwiic interface cable (P352)
1x Female pin (double row)
Downloads
GitHub
Learn the basics of designing and making things with Inventables' software (Easel) and 3D carving machines (X-Carve and Carvey)
This book was written for people who have never carved before. It teaches the basics of designing and making things with Inventables' software (Easel) and 3D carving machines (X-Carve and Carvey). It showcases five step-by-step projects you can build yourself as a beginner, including an inspiration tile, kitchen cutting board, custom block stamp, fidget spinner, and balsa wood glider. The book also features a gallery of aspirational projects, like an electric guitar and a box joint toolbox, to show what else is possible through 3D carving. The design files and instructions for these more complex projects can be found on the Inventables website.
Projects Included
Participate in the world's largest mosaic tile wall
Build a glider to your own specifications
Create your own inlay cutting boards
Carve a fidget spinner toy
Craft wooden 3D stamps you can use to create your own greeting cards
This bundle contains:
Book: Get Started with the NXP FRDM-MCXN947 Development Board (normal price: €40)
NXP FRDM-MCXN947 Development Board (normal price: €30)
Book: Get Started with the NXP FRDM-MCXN947 Development Board
Develop projects on connectivity, graphics, machine learning, motor control, and sensors
This book is about the use of the FRDM-MCXN947 Development Board, developed by NXP Semiconductors. It integrates the dual Arm Cortex-M33, operating at up to 150 MHz. Ideal for Industrial, IoT, and machine learning applications. It features Hi-Speed USB, CAN 2.0, I³C and 10/100 Ethernet. The board includes an on-board MCU-Link debugger, FlexI/O for LCD control, and dual-bank flash for read-while-write operations, supporting large external serial memory configurations.
One of the important features of the development board is that it features an integrated eIQ Neutron Neural Processing Unit (NPU), thus enabling users to develop AI-based projects. The development board also supports Arduino Uno form factor header pins, making it compatible with many Arduino shields, mikroBUS connector for MikroElektronika Click Boards, and Pmod connector.
One of the nice things of the FRDM-MCXN947 development board is that it includes several on-board debug probes, allowing programmers to debug their programs by communicating directly with the MCU. With the help of the debugger, programmers can single-step through a program, insert breakpoints, view and modify variables and so on.
Many working and tested projects have been developed in the book using the popular MCUXpresso IDE and the SDK with various sensors and actuators. Use of the popular CMSIS-DSP library is also explained with several commonly used matrix operations.
The projects provided in the book can be used without any modifications in many applications. Alternatively, readers can base their projects on those given in the book during the development of their own projects.
NXP FRDM-MCXN947 Development Board
The FRDM-MCXN947 is a compact and versatile development board designed for rapid prototyping with MCX N94 and N54 microcontrollers. It features industry-standard headers for easy access to the MCU's I/Os, integrated open-standard serial interfaces, external flash memory, and an onboard MCU-Link debugger.
Specifications
Microcontroller
MCX-N947 Dual Arm Cortex-M33 cores @ 150 MHz each with optimized performance efficiency, up to 2 MB dual-bank flash with optional full ECC RAM, External flash
Accelerators: Neural Processing Unit, PowerQuad, Smart DMA, etc.
Memory Expansion
*DNP Micro SD card socket
Connectivity
Ethernet Phy and connector
HS USB-C connectors
SPI/I²C/UART connector (PMOD/mikroBUS, DNP)
WiFi connector (PMOD/mikroBUS, DNP)
CAN-FD transceiver
Debug
On-board MCU-Link debugger with CMSIS-DAP
JTAG/SWD connector
Sensor
P3T1755 I³C/I²C Temp Sensor, Touch Pad
Expansion Options
Arduino Header (with FRDM expansion rows)
FRDM Header
FlexIO/LCD Header
SmartDMA/Camera Header
Pmod *DNP
mikroBUS
User Interface
RGB user LED, plus Reset, ISP, Wakeup buttons
Included
1x FRDM-MCXN947 Development Board
1x USB-C Cable
1x Quick Start Guide
Downloads
Datasheet
Block diagram
This DIY Color Display Kit is a fun and educational project for makers of all ages. It is a great way to learn about electronics, programming, and improve your soldering skills.
Microcontroller
As this kit ships with the ePulse Feather ESP32 development board, the kit thereby inherits all the great features of said devkit.
Display
The large 3.5" 320x480 color display also sports a high-precision capacitive touch interface. Contrary to resistive touch interfaces that often work best when using a stylus this auto-calibrated module offers a smartphone-like user experience.
Connector PCB
The connectors for the display are already pre-assembled on the connector PCB, as those require a more experienced hand at the soldering iron. Hence, for the inexperienced solderer this offers the best of both worlds. Also, you may choose to not add the on-off switch or the Grove connector; both are optional.
The connector PCB offers extendability in two ways: the broken out pins of the microcontroller and the connector for the Grove system.
Specifications
Microcontroller
ESP32
Module
ePulse Feather
Display Resolution
320 x 480
Display Driver
ILI9488
Touch Display
Capacitive
Included
1x ePulse Feather, low-power ESP32 development board
1x 3.5" 320x480 Color Display (ILI9488, TFT) with capacitive touch Interface (FT6236) Color Kit Grande Connector Board
1x Custom connector PCB to connect the ESP32 and the display Header Pins
1x Set of special pin headers (to be soldered to connector PCB Color Kit Power Switch)
1x On-off switch (to be optionally soldered to connector PCB SMD Grove Connector)
1x Grove connector (to be optionally soldered to connector PCB Color Kit Grande Foam Stickers)
4x Double-sided foam adhesive to secured display to PCB
Downloads
Schematics
Documentation
Projects Using Arduino IDE and the LVGL Graphics Library
The ESP32 is probably one of the most popular microcontrollers used by many people, including students, hobbyists, and professional engineers. Its low cost, coupled with rich features makes it a popular device to use in many projects. Recently, a board called the ESP32 Cheap Yellow Display (CYD for short) is available from its manufacturers. The board includes a standard ESP32 microcontroller together with a 320x240 pixel TFT display. Additionally, the board provides several connectors for interfaces such as GPIO, serial port (TX/RX), power and Ground. The inclusion of a TFT display is a real advantage as it enables users to design complex graphics-based projects without resorting to an external LCD or graphics displays.
The book describes the basic hardware of the ESP32 CYD board and provides details of its on-board connectors. Many basic, simple, and intermediate-level projects are given in the book based on the ESP32 CYD, using the highly popular Arduino IDE 2.0 integrated development environment. The use of both the basic graphics functions and the use of the popular LVGL graphics library are discussed in the book and projects are given that use both types of approaches.
All the projects given in the book have been tested and are working. The block diagram, circuit diagram, and the complete program listings and program descriptions of all the projects are given with explanations. Readers can use the LVGL graphics library to design highly popular eye-catching full-color graphics projects using widgets such as buttons, labels, calendars, keypads, keyboards, message boxes, spinboxes, sliders, charts, tables, menus, bars, switches, drop-down lists, animations, and many more widgets.
The Internet of Things is rapidly gaining interest, and that has fueled the development of the Edison. A tiny computer, the size of a postage stamp, with a lot of power and built-in wireless communication capabilities.
In this eBook we will help you get up-to-speed with the Edison, by installing the software both on the Edison as well as on your Windows PC. We will use the Edison Arduino break-out board because it is easy to work with. We will discuss Linux, Arduino C++ and Python, and show examples of how the Edison can interface with other hardware. We will use Wi-Fi and Bluetooth to set up wireless connections, and show you a trick to program sketches over Wi-Fi.
Once you have completed this book your Edison will be up and running with the latest software version, and you will have sufficient knowledge of both hardware and software to start making your own applications. You will even be able to program the Edison over USB and wireless both in Arduino C++ and Python.
This is not a projects eBook, but a toolbox that will allow you to explore the wonderful world of the Intel Edison!
Projects Using Arduino IDE and the LVGL Graphics Library
The ESP32 is probably one of the most popular microcontrollers used by many people, including students, hobbyists, and professional engineers. Its low cost, coupled with rich features makes it a popular device to use in many projects. Recently, a board called the ESP32 Cheap Yellow Display (CYD for short) is available from its manufacturers. The board includes a standard ESP32 microcontroller together with a 320x240 pixel TFT display. Additionally, the board provides several connectors for interfaces such as GPIO, serial port (TX/RX), power and Ground. The inclusion of a TFT display is a real advantage as it enables users to design complex graphics-based projects without resorting to an external LCD or graphics displays.
The book describes the basic hardware of the ESP32 CYD board and provides details of its on-board connectors. Many basic, simple, and intermediate-level projects are given in the book based on the ESP32 CYD, using the highly popular Arduino IDE 2.0 integrated development environment. The use of both the basic graphics functions and the use of the popular LVGL graphics library are discussed in the book and projects are given that use both types of approaches.
All the projects given in the book have been tested and are working. The block diagram, circuit diagram, and the complete program listings and program descriptions of all the projects are given with explanations. Readers can use the LVGL graphics library to design highly popular eye-catching full-color graphics projects using widgets such as buttons, labels, calendars, keypads, keyboards, message boxes, spinboxes, sliders, charts, tables, menus, bars, switches, drop-down lists, animations, and many more widgets.
Mastering the Language and the Development Platform
Many people would like to learn Java but getting started is not easy since programming with Java requires at least two things: mastering the programming language and the development environment. With the help of many examples, this book shows how the language is structured. In addition, it employs the Eclipse development environment as an example of a powerful tool to teach developing Java programs.
In Basics, the first part of the book, you acquire your Java and Eclipse basic knowledge. This part lays the programming foundations, gives you an overview of Java technology, and shows you what is special about object-oriented programming.
In the second part called Java Language, everything revolves around the subtleties of the Java language and this is where the first small Java applications are created, aided by a fine blend of the knowledge part and practical exercises.
Java Technology is both the name and the focus of the third part which also introduces you to the rules to observe when programming, what class libraries are and what advantages they have. In addition, you will learn how to test programs, what algorithms are, and how to program them.
The fourth part, Java Projects, enables you to apply all the previous elements in an application with a graphical user interface. The project shows how to develop a larger application piece by piece with the Eclipse development environment. The Appendix concludes with a section on frequent errors that can occur when working with Eclipse, and a Glossary.
Whether you are an electronics enthusiast or engineering professional, this book provides the reader with an introduction to the use of the CadSoft’s EAGLE PCB design software package.
EAGLE is a user-friendly, powerful and affordable software package for the efficient design of printed circuit boards. It offers the same power and functionality to all users, at a smaller cost than its competitors. A free version of EAGLE is available to enthusiasts for their own use.
EAGLE can be used on the main computing platforms including: Microsoft Windows (XP, Vista or Windows 7); Linux (based on kernel 2.6 or above) and Apple Mac OS X (Version 10.6 or higher). Any hardware that supports these software platforms will run the EAGLE application.
The book is intended for anyone who wants an introduction to the capabilities of EAGLE. The reader may be a novice at PCB design or a professional wanting to learn about EAGLE, with the intention of migrating from another CAD package.
This book will quickly allow you to:
obtain an overview of the main modules of EAGLE: the schematic editor; layout editor and autorouter in one single interface;
learn to use some of the basic commands in the schematic and layout editor modules of EAGLE;
apply your knowledge of EAGLE commands to a small project;
learn more about some of the advanced concepts of EAGLE and its capabilities;
understand how EAGLE relates to the stages of PCB manufacture;
create a complete project, from design through to PCB fabrication. The project discussed in the book is a popular, proven design from the engineering team at Elektor.
After reading this book while practicing some of the examples, and completing the projects, the reader should feel confident about taking on more challenging endeavors.
The Arduino Nano ESP32 (with and without headers) is a Nano form factor board based on the ESP32-S3 (embedded in the NORA-W106-10B from u-blox). This is the first Arduino board to be based fully on an ESP32, and features Wi-Fi, Bluetooth LE, debugging via native USB in the Arduino IDE as well as low power. The Nano ESP32 is compatible with the Arduino IoT Cloud, and has support for MicroPython. It is an ideal board for getting started with IoT development. Features
Tiny footprint: Designed with the well-known Nano form factor in mind, this board's compact size makes it perfect for embedding in standalone projects.
Wi-Fi and Bluetooth: Harness the power of the ESP32-S3 microcontroller, well-known in the IoT realm, with full Arduino support for wireless and Bluetooth connectivity.
Arduino and MicroPython support: Seamlessly switch between Arduino and MicroPython programming with a few simple steps.
Arduino IoT Cloud compatible: Quickly and easily create IoT projects with just a few lines of code. The setup takes care of security, allowing you to monitor and control your project from anywhere using the Arduino IoT Cloud app.
HID support: Simulate human interface devices, such as keyboards or mice, over USB, opening up new possibilities for interacting with your computer. Specifications Microcontroller u-blox NORA-W106 (ESP32-S3) USB connector USB-C Pins Built-in LED pins 13 Built-in RGB LED pins 14-16 Digital I/O pins 14 Analog input pins 8 PWM pins 5 External interrupts All digital pins Connectivity Wi-Fi u-blox NORA-W106 (ESP32-S3) Bluetooth u-blox NORA-W106 (ESP32-S3) Communication UART 2x I²C 1x, A4 (SDA), A5 (SCL) SPI D11 (COPI), D12 (CIPO), D13 (SCK). Use any GPIO for Chip Select (CS) Power I/O Voltage 3.3 V Input voltage (nominal) 6-21 V Source Current per I/O pin 40 mA Sink Current per I/O pin 28 mA Clock speed Processor Up to 240 MHz Memory ROM 384 kB SRAM 512 kB External Flash 128 Mbit (16 MB) Dimensions 18 x 45 mm Downloads Datasheet Schematics
In Get Started with MicroPython on Raspberry Pi Pico, you will learn how to use the beginner-friendly language MicroPython to write programs and connect up hardware to make your Raspberry Pi Pico interact with the world around it. Using these skills, you can create your own electro‑mechanical projects, whether for fun or to make your life easier.
Microcontrollers, like RP2040 at the heart of Raspberry Pi Pico, are computers stripped back to their bare essentials. You don’t use monitors or keyboards, but program them to take their input from, and send their output to the input/output pins.
Using these programmable connections, you can light lights, make noises, send text to screens, and much more. In Get Started with MicroPython on Raspberry Pi Pico, you will learn how to use the beginner-friendly language MicroPython to write programs and connect up hardware to make your Raspberry Pi Pico interact with the world around it. Using these skills, you can create your own electro‑mechanical projects, whether for fun or to make your life easier.
The robotic future is here – you just have to build it yourself. We’ll show you how.
About the authors
Gareth Halfacree is a freelance technology journalist, writer, and former system administrator in the education sector. With a passion for open-source software and hardware, he was an early adopter of the Raspberry Pi platform and has written several publications on its capabilities and flexibility.
Ben Everard is a geek who has stumbled into a career that lets him play with new hardware. As the editor of HackSpace magazine, he spends more time than he really should experimenting with the latest (and not-solatest) DIY tech.