Automatic weather station design

This prototype MetPod automatic weather station is designed around the Raspberry Pi platform and running the Balena OS embedded operating system.

  • Balena OS is an embedded OS tailored for containers. Python applications run within containers and can be (optionally) built and managed through Balena Cloud IoT fleet management.
  • Software updates can be pushed to the device locally or remotely.
  • Interface to multiple sensors using USB=>RS232/RS485 ModBus.
  • Device variables can be set from the Balena web dashboard or set in the Dockerfile.
  • MODBUS service can be used to communicate with a data logger for analogue sensor interfacing.
  • Isolation between sensor nodes/hubs and services provided by containerisation.
  • Remotely restart the device or the container.

Data is continuously updated from the sensors and sent at regular intervals to Met Office WoW and Amazon IoT. The beauty of this design is that brings all the benefits of containerisation and desktop development to an embedded IoT device. This makes development and deployment a breeze compared to traditional embedded environments.

Design philosophy:
Incorporate currently available, high quality sensors into a scalable and flexible ‘internet of things (IoT)’ environment using the latest tools and technologies. Containerisation is used to isolate services and sensor ‘nodes’, provide control and a comprehensive, easy to use development environment. MQTT is used to as the transport protocol for communications between the sensor and an IoT hub/edge device or IoT service (e.g. Amazon Web Services).

Sensor interfacing:
Most professional digital sensors have provide an RS232/485 interface, this can readily be incorporated into an IoT edge device using for example USB/Serial convertors. In the case of analogue sensors, if there is a desire to still use these then its probably best to use a traditional data logger and then communicate between this and IoT edge device via e.g. ModBus.

Containerisation of sensors and services:
Each sensor is made ‘smart’ by utilising a standard container structure for sensors. Services that make use of this data are also containerised. Sensor data can then be easily shared between sensors and services.

Sensor ‘nodes or ‘hub’?
The containerised application for a particular sensor could be run on its own hardware (node) or a central ‘edge’ device in the field can run multiple containers for multiple sensors (hub). There is flexibility to do either, at the end of the day we just need to send and receive data to/from the cloud or local processing unit via MQTT.

View live data dashboard
Data is stored in an InfluxDB database and viewed through a Grafana dashboard. The dashboard can be easily customised with all manner of graphs, gauges and text fields. The dashboard user is able to choose the displayed data time period and refresh interval.

MetPod Dashboard.


MetPod block diag.
MetPod hardware.
MetPod hardware.
MetPod sensors.