Creative DIY Microcontroller Projects with TinyGo and WebAssembly
A practical guide to building embedded applications for low-powered devices, IoT, and home automation
https://www.amazon.com/Creative-Microcontroller-Projects-TinyGo-WebAssembly/dp/1800560206/
Published: May 14, 2021, 322 pages
By Tobias Theel, Lead Software Engineer with ClariLab
Caveat: Teny Thomas (Marketing Coordinator at PacktPublishing) graciously provided me with an eBook copy to review.
My Amazon Review Headline: Crisp, Concise, Well-Written - Focused on Building Practical Hands-on Skill and Knowledge
Things I Liked About This Book:
- There is no fluff in this book – the writing is crisp, clear,
concise, and packed with interesting hands-on exercises. For a technologist who
wishes to begin their exploration of micro-controller programming - it is highly entertaining - and informative. Highly recommended.
- This book was a fun read. Although it focuses on hardware aspects that are outside of my normal day-to-day professional work – it opened new doors for me to new insights and knowledge that expands my breadth of awareness – which I can integrate and use to elevate my understanding of many other practical problems in both my professional and personal domains of interest.
- The accompanying github and Code In Action YouTube videos.
- The book is focused on immediately developing knowledge and skills.
- The project/coding examples are interesting – and extensible to other types of projects.
- The example of writing a driver for a servomotor.
- Controlling devices.
- Writing a library for a sensor, and reading data from a sensor.
- The environment/tooling setup instructions in the first chapter covered several different scenarios.
- The discussions of the differences/benefits between different Arduino device specs.
- Understanding the purpose and use/fit of the SPI and I2C interfaces.
- The building of the reader’s knowledge to tackle a practical and interesting Internet of Things (IoT) type project – that also incorporates Wi-Fi and an MQTT broker to demonstrate pub/sub event handling.
- The writer gently takes the reader by the hand – and guides them step-by-step. Even a hobbyist/neophyte programmer should be able to enjoy working through the well-written instructions for the projects.
- The inclusion of the Questions section at the end of each chapter – providing further stimulus for the reader to develop further confidence in the knowledge they have just gained.
- The author has managed to maintain a keen balance of information imparted, pace of interesting hands-on exercises – without becoming mired in minutiae. Yet, there are subtle but important points that the author calls out – so that the neophyte is well advised to consider additional concerns that are beyond the scope of the book (e.g., security, encrypted communications, authentication).
- I am keenly interested in practical applications of both Go and Wasm. Learning more about TinyGo was also of interest. The book is written for Go 1.15 and newer releases.
- I have a number of personal automation projects I would like to develop (many related to my 1963 35 ft. Pearson Alberg sailboat) – but my knowledge of microcontrollers is very limited. This book provides many practical examples that I feel will give me the practical hands-on foundations from which to explore further on my own.
Chapters:
1 – Getting Started with TinyGo
2 – Building a Traffic Lights Control System
3 – Building a Safety Lock Using a Keypad
4 – Building a Plant Watering System
5 – Building a Touchless Handwash Timer
6 – Building Displays for Communication using I2C and SPI Interfaces
7 – Displaying Weather Alerts on the TinyGo Wasm Dashboard
8 – Automating and Monitoring Your Home Through the TinyGo Wasm Dashboard
Additional Notes
Source code for the book’s project:
- https://github.com/PacktPublishing/Creative-DIY-Microcontroller-Projects-with-TinyGo-and-WebAssembly
YouTube: Code in Action
TinyGo
- https://tinygo.org/
- https://play.tinygo.org/
- https://github.com/tinygo-org/tinygo
- https://github.com/tinygo-org/drivers
- https://github.com/tinygo-org/tinygo/releases
- https://tinygo.org/docs/
- https://tinygo.org/docs/reference/
Errata reported to Packt:
- Page-5, this link is not found: