Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sglvladi/meshquitto
A simple Arduino project, which aims to provide a gateway between a mesh network of ESP8266's and a remote MQTT broker.
https://github.com/sglvladi/meshquitto
arduino esp8266-arduino gateway mesh mqtt
Last synced: 14 days ago
JSON representation
A simple Arduino project, which aims to provide a gateway between a mesh network of ESP8266's and a remote MQTT broker.
- Host: GitHub
- URL: https://github.com/sglvladi/meshquitto
- Owner: sglvladi
- License: mit
- Created: 2017-03-06T21:46:19.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-08-11T22:38:00.000Z (about 4 years ago)
- Last Synced: 2024-10-03T12:35:23.063Z (about 1 month ago)
- Topics: arduino, esp8266-arduino, gateway, mesh, mqtt
- Language: C++
- Homepage: https://github.com/sglvladi/meshquitto
- Size: 529 KB
- Stars: 40
- Watchers: 7
- Forks: 16
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# meshquitto
A simple Arduino project, which aims to provide a gateway between a mesh network of ESP8266's and a remote MQTT broker.## How it works
* The mesh network is created by making use of the amazing painlessMesh library (see [here](https://gitlab.com/BlackEdder/painlessMesh/wikis/home)).
* The **Meshquitto gateway** is composed of 2 ESP8266 devices (tested on D1-mini).
* The first of the two devices (**_MQTT gateway_**) connects to an available WiFi network and consequently establishes a connection to a MQTT broker. Any messages received from the MQTT broker are forwarded to the Mesh gateway and vice versa.
* The second (**_Mesh gateway_**) connects to the mesh network. Any messages received from the MQTT gateway are forwarded to the Mesh network and vice versa.
* Since Software serial does not provide parity check functionality, CRC16 (see [here](https://github.com/vinmenn/Crc16) for library) is used to detect transmission errors. (**NOTE**: Retransmition is not currently implemented, thus corrupted messages are simply dropped).
* The topic structure of messages is shown in the image above:
* \ form the first (few) subtopic(s) of the MQTT topic, which are used solely for subscription and publishing identification of the gateway with the MQTT broker.
* Each of the mesh nodes (including the Mesh gateway) then are abstracted from the \ and simply "publish" and "subscribe" to the \.
* Removal and concatenation of the \ is handled by the MQTT gateway.
* AES encryption (see relevant library [here](https://github.com/sglvladi/AES)) has been imported in order to add an extra security layer to messages passed between nodes in the mesh.