Hands-On Embedded Programming with C++17
上QQ阅读APP看书,第一时间看更新

Example – club room monitoring

In this section, we will be looking at a practical implementation of an SBC-based solution that performs the following functionality for a club room:

  • Monitors the status of the club door's lock
  • Monitors the club status switch
  • Sends status change notifications over MQTT
  • Provides a REST API for the current club status
  • Controls status lights
  • Controls the power in the club room

The basic use case here is that we have a club room for which we want to be able to monitor the status of its lock, and have a switch inside the club to regulate whether the non-permanent power outlets in the club are powered on or not. Turning the club status switch to on would provide power to those outlets. We also want to send out a notification over MQTT so that other devices in the club room or elsewhere can update their status.

MQTT is a simple, binary publish/subscribe protocol on top of TCP/IP. It offers a lightweight communication protocol, suitable for resource-restricted applications such as sensor networks. Each MQTT client communicates with a central server: the MQTT broker.