/EdgeMessageBus

Docker images for armhf and x86_64 that create an MQTT Message Bus for passing JSON messages. Included are sample Weather and Display services, as well as a Node-RED dashboard service.

Primary LanguagePythonApache License 2.0Apache-2.0

Edge Message Bus

TL;DR

This is a multi-architecture approach to defining and using a specific format of JSON messages to publish information in a decoupled, many-to-many topology. The goal is to send specific information without knowing in advance who will consume it, or for what purpose it will be used.

It is comprised of:

  • an MQTT service, powered by Mosquitto
  • a Weather service, powered by The Weather Company
  • an LED display service, using the WeatherHAT by Cyntech
  • a dashboard service for visualization and control, using Node-RED

Architecture

The message bus is powered by Mosquitto.

The JSON schema is my own, loosely based on previous work done for The Weather Company, an IBM Business.

The architectures supported include ARMv6 and AMD64, but may be easily ported to others.

Parts

Configure I2C

From this page.

Edit config.txt to uncomment i2c line, save, reboot.

sudo vi /boot/config.txt

Uncomment line that contains dtparam=i2c_arm=on and save.

sudo reboot

Installation

To install, follow the directions in the INSTALL.md file.

Credits

Display Dockerfile contents adapted from Cyntech guide instructions.

Weather API code adapted from the original work of krook in the weather-api-python repo, as well as substantial refactoring by vabarbosa in his fork. It would not be possible without their contributions.