Weather Station MK2

The revised version of the Mees Electronics Weather Station

New design philosophy

Modular

Each sensor has its own RS485 connection. Sensors are daisy chained and the system is therefore expandable.

Interface

The Weipu SP1312 / S 4, a 4 pole connector with an IP68 rating can be used as the physical interface. Each sensor has two identical connectors, for easy daisy chaining. connectors which are not used can be capped off with a weather proof cap. The cables use the Weipu SP1310 / P 4 connector.

ModBus

Each sensor has a bus address, which can be set by DIP switches. Input registers store sensor data while output coils can be used to send commands to the sensors.

The devices on the ModBus can be autodetected by reading input registers 1000-1039:

Register description Value
1000-1003 DefineSensorSerial (unique value) 0x4D45 followed by index. The index starts at 0x0 0x0 0x0 and is incremented for every unique device
1004 Sensor Type (specifies sensor type) See Type table
1005 Sensor Version any
1006-1025 Human readable description of sensor Every register holds two ASCII values, one in the MSByte and the other in the LSByte for a total of 40 characters.
1026 Number of available input registers 1-999
1027 Number of available holding registers 0-999
1028 Number of available coil registers 1-999
1029 Number of available contact registers 0-999
Type Description
0x01 Dual temperature sensor
0x02 Weather station MK1

Watchdog

All devices have at least one Coil Register: the watchdog at address 0. The client software has to toggle this register at least once per minute in order to reset the watchdog. If the client fails to reset the watchdog in time or the server firmware has crashed, the device will hardware reset itself.

Main controller

All sensors are connected via an RS485 bus to the main controller, the client. This unit collects the sensor data and publishes the data on a local MQTT broker and a web interface. This unit can also function as a data logger. The data logger data can be accessed via a simple API.

The main controller has to know which sensors are connected. The ModBus addresses of all the sensors are stored in a configuration file. The client software can now poll these addresses and discover the sensors.

APRS telemetry

Data from the MQTT broker is used to generate PE1RXF APRS telemetry messages, which are send via LoRa or 1200bd APRS.

Links

Useful resources:

https://github.com/danjperron/rp2040-modbus_example/tree/main

Licensing

(C) 2025 Marcel Konstapel https://www.meezenest.nl/mees/

Software under GPL, hardware and software under CC BY-SA 4.0.

Description
Version 2 of the Mees Electronics weather station
Readme 451 KiB
Languages
Python 85.8%
C++ 14.2%