Hiveeyes One architecture

Components

Radio-to-MQTT gateway

The wide area communication is performed by BERadio and Eclipse Mosquitto, the former reads BEncode data payloads from the radio link adapter JeeLink and forwards it to the latter using MQTT:

Node [AS]    -->    BERadio    -->    Serial [AG] ---> Serial [L]   -->   MQTT [L]
|                      |                           |                             |
|    N sensor nodes    |    1 RFM gateway node     |  1 internet gateway (MQTT)  |
|                      |                           |                             |
|                                                  |                             |
|                  [Arduino]                       |          [Linux]            |
|                                                  |                             |

Legend:

[AS]        Arduino sensor node
[AG]        Arduino gateway node
[L]         Linux Host
BERadio     Bencode over Radio

Todo

GraphViz flow graph

Backend

The storage and visualization is performed by Kotori, InfluxDB and Grafana.

MQTT [L] --------------> MQTT [swarm.hiveeyes.org] --> Kotori DAQ --> InfluxDB --> Grafana
|                    |                                                                   |
|  internet gateway  |                     1 data acquisition platform                   |
|                    |                                                                   |

Todo

GraphViz flow graph

Scenarios

The “swarm” setup

Hiveeyes, a Berlin-based beekeeper collective, is hosting the backend on swarm.hiveeyes.org. This is conceived as an open platform, we’re ready to accept feature requests from the community.

  • N Arduino sensor nodes
  • 1 Arduino gateway node
  • 1 RaspberryPi gateway host
  • 1 Data collector platform

The “island” setup

Run the infrastructure on your own system. One goal might be to run all of BERadio, Eclipse Mosquitto, Kotori, InfluxDB and Grafana on the same SoC machine, e.g. on a RaspberryPi or an Intel NUC.

  • N Arduino sensor nodes
  • 1 Arduino gateway node
  • 1 RaspberryPi data acquisition host
Node [AS]    -->    BERadio    -->   Serial [AG] ---> Serial [L] --> MQTT [L] --> Kotori DAQ --> InfluxDB --> Grafana
|                      |                          |                                                                 |
|    N sensor nodes    |    1 RFM gateway node    |                    1 data acquisition host                      |
|                      |                          |                                                                 |
|                                                 |                                                                 |
|                  [Arduino]                      |                           [Linux]                               |
|                                                 |                                                                 |

Legend:
[AS]        Arduino sensor node
[AG]        Arduino gateway node
[L]         Linux Host
BERadio     Bencode over Radio

Todo

GraphViz flow graph

Using this picture, it’s easier to point at the place of beradio forward, it helps at the step:

Serial [L] --> MQTT [L]