Book Image

Creative DIY Microcontroller Projects with TinyGo and WebAssembly

By : Tobias Theel
Book Image

Creative DIY Microcontroller Projects with TinyGo and WebAssembly

By: Tobias Theel

Overview of this book

While often considered a fast and compact programming language, Go usually creates large executables that are difficult to run on low-memory or low-powered devices such as microcontrollers or IoT. TinyGo is a new compiler that allows developers to compile their programs for such low-powered devices. As TinyGo supports all the standard features of the Go programming language, you won't have to tweak the code to fit on the microcontroller. This book is a hands-on guide packed full of interesting DIY projects that will show you how to build embedded applications. You will learn how to program sensors and work with microcontrollers such as Arduino UNO and Arduino Nano IoT 33. The chapters that follow will show you how to develop multiple real-world embedded projects using a variety of popular devices such as LEDs, 7-segment displays, and timers. Next, you will progress to build interactive prototypes such as a traffic lights system, touchless hand wash timer, and more. As you advance, you'll create an IoT prototype of a weather alert system and display those alerts on the TinyGo WASM dashboard. Finally, you will build a home automation project that displays stats on the TinyGo WASM dashboard. By the end of this microcontroller book, you will be equipped with the skills you need to build real-world embedded projects using the power of TinyGo.
Table of Contents (13 chapters)
10
Afterword

What this book covers

Chapter 1, Getting Started with TinyGo, sees you set up TinyGo and compile your first program!

Chapter 2, Building a Traffic Lights Control System, has you build a traffic lights control system, including pedestrian lights and a button; you will learn how to make use of Goroutines in TinyGo.

Chapter 3, Building a Safety Lock Using a Keypad, looks at making use of a 4x4 keypad and a servomotor to build a lock that opens when the correct passcode has been entered.

Chapter 4, Building a Plant Watering System, explains how to use different types of sensors to build an automatic plant watering system, so you do not have to water your plants manually anymore!

Chapter 5, Building a Touchless Handwash Timer, explores using a four-digit, seven-segment display and an ultrasonic distance sensor to recognize the movement of a nearby object to start a timer that will tell us when we have washed our hands for long enough.

Chapter 6, Building Displays for Communication Using I2C and SPI Interfaces, explains the concepts of Inter-Integrated Circuit (I2C) and Serial Peripheral Interface (SPI) by having you use displays that communicate using I2C and SPI buses. By the end of the chapter, you will know how to use different types of displays in TinyGo.

Chapter 7, Displaying Weather Alerts on the TinyGo Wasm Dashboard, is where you will build and serve a Wasm application that displays sensor data sent from an Arduino Nano 33 IoT over Wi-Fi.

Chapter 8, Automating and Monitoring Your Home through a TinyGo Wasm Dashboard, explains how to control and monitor devices in your home using a Wasm dashboard.

Chapter 9, Appendix–"Go"ing Ahead, covers some concepts that did not find their way into the previous chapters.