Book Image

Hands-On Internet of Things with MQTT

By : Tim Pulver
Book Image

Hands-On Internet of Things with MQTT

By: Tim Pulver

Overview of this book

MQ Telemetry Transport (MQTT) is a lightweight messaging protocol for smart devices that can be used to build exciting, highly scalable Internet of Things (IoT) projects. This book will get you started with a quick introduction to the concepts of IoT and MQTT and explain how the latter can help you build your own internet-connected prototypes. As you advance, you’ll gain insights into how microcontrollers communicate, and you'll get to grips with the different messaging protocols and techniques involved. Once you are well-versed with the essential concepts, you’ll be able to put what you’ve learned into practice by building three projects from scratch, including an automatic pet food dispenser and a smart e-ink to-do display. You’ll also discover how to present your own prototypes professionally. In addition to this, you'll learn how to use technologies from third-party web service providers, along with other rapid prototyping technologies, such as laser cutting, 3D printing, and PCB production. By the end of this book, you’ll have gained hands-on experience in using MQTT to build your own IoT prototypes.
Table of Contents (16 chapters)
Title Page

Optimizing the dispenser code

Now, let's get back to coding. You probably tried out how the dispenser works with real material in it, controlled by sending commands as 1 and 0 over the Serial Monitor. Sending two commands to manually open and close the opening is not super useful.

Let's modify our code so that the servo automatically goes back to the closed position after x milliseconds. If you use a very fine material (such as sugar), this might be something like 150 milliseconds. For grainier material (dry cat food, for example), something in the seconds might be good. Remember, we always need to specify the time in milliseconds, so 2 seconds would be 2,000 milliseconds.

Save the existing sketch as a copy with the name ch5_02_servo_serial_auto_close.

To automatically close the cap shortly after it is opened, we need to add a few new variables. Follow these steps...