2.8 KiB
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.