DIY Microcontroller Projects for Hobbyists
The ultimate project-based guide to building real-world embedded applications in C and C++ programming
Miguel Angel Garcia-Ruiz
Pedro Cesar Santana Mancilla
BIRMINGHAMMUMBAI
DIY Microcontroller Projects for Hobbyists
Copyright 2021 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author(s), nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Group Product Manager: Richa Tripathi
Publishing Product Manager: Shweta Bairoliya
Senior Editor: Storm Mann
Content Development Editor: Kinnari Chohan
Technical Editor: Karan Solanki
Copy Editor: Safis Editing
Project Coordinator: Deeksha Thakkar
Proofreader: Safis Editing
Indexer: Tejal Daruwale Soni
Production Designer: Nilesh Mohite
First published: June 2021
Production reference: 1290621
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-80056-413-8
www.packt.com
To my parents, Rosa and Miguel, for giving me the love to learn new things. To my wife, Selene, and my son, Miguel, for their support, love, and inspiration.
Miguel Garcia-Ruiz
To my son, Max, for his love and inspiration, and for making my life memorable by calling me daddy. To my wife, Abi, for her love, inspiration, and unconditional support. To my mom, Lety, and my brother, Jess, for their love and always being there.
Pedro Cesar Santana Mancilla
Contributors
About the authors
Miguel Angel Garcia-Ruiz is an Associate Professor of Computer Science at the School of Computer Science and Technology, Algoma University, Canada. He has taught microcontroller programming and interfacing, human-computer interaction, and interaction design courses. Miguel has a PhD in Computer Science and Artificial Intelligence from Sussex University, England. He has published articles on tinkering with technology applying microcontroller boards. Miguel has conducted research projects funded by Canada's Northern Ontario Heritage Fund (NOHFC), Algoma University, and the Mexican Ministry of Education.
I want to thank the friends and family, who have been close to me and supported me, especially my wife and my son.
Pedro Cesar Santana Mancilla is a research professor at the School of Telematics at the University of Colima in Mexico. His research interests focus on human-computer interaction, ICT for elderly people, Internet of Things, and machine learning. He is currently serving as president of the Mexican Association on Human-Computer Interaction (AMexIHC). He is a Senior Member of the IEEE, and ACM and serves as Chair of the Mexican ACM SIGCHI Chapter (CHI-Mexico). Pedro is a member of the Mexican Academy of Computing (AMexComp) and the Mexican Society of Computer Science (SMCC).
I want to thank my family and friends, who have always supported me. A special thank you to my wife and son for all their support and patience during the long process of writing this book. Thanks also to Prof. Fermn Estrada for his help in resolving my doubts.
About the reviewers
Darshan Jivrajani is an electronics and communication engineer. He has more than 4 years of experience as an embedded system engineer. In his career, he has completed and has been a part of many projects, including smart switches, smart parking systems, indoor navigation, small computers, TV lifting, and many more. He is familiar with ESP32/8266, PIC, Cypress, NXP, Atmel AVR, Stm32, Raspberry Pi, Beaglebone Black, NRF, BLE4.0/5.0/5.1 microcontroller families. On another side of programming, he is comfortable with embedded C/C++, Python, Node.js, and various communication protocols, such as TCP/IP, UDP, Socket, MQTT, CoAP, I2C, UART, USART, I2S, WiFi, Bluetooth, Zigbee, GPS/GSM, Nb-IoT, Lora, Z-wave, and more.
Paras Balasara is an embedded hardware engineer who creates and brings life to hardware that interacts with sensors through a power supply.