Wearher monitor modules
back to Gnss monitor
Modules
Module overview
Display
The display is a C++ app based on the Qt library for visual elements.
Gnss sensor
The sensor is a standard GNSS receiver (Ublox-9) and the interface is the default NMEA messages sent from the receiver.
These messages are published using the MQTT protocol.
- Message format
- Topic: ublox9/nmea/GXXXX
- payload: Epoc_time $GXXXX,....*FF
Where GXXXX are the NMEA message type (e.g. GPGGA). The Epoc_time is the epoc timestamp in seconds since 1970 (e.g. 1755155031.0294).
An NMEA message packed in MQTT could be like this for a full sequence (repeated every second)
'ublox9/nmea/GNRMC' 1754938492.0209 $GNRMC,185452.00,A,5535.78100,N,01214.70166,E,0.540,,110825,,,A,V*1D 'ublox9/nmea/GNVTG' 1754938492.0211 $GNVTG,,T,,M,0.540,N,1.000,K,A*3D 'ublox9/nmea/GNGGA' 1754938492.0212 $GNGGA,185452.00,5535.78100,N,01214.70166,E,1,12,1.12,22.3,M,40.1,M,,*72 'ublox9/nmea/GNGSA' 1754938492.0213 $GNGSA,A,3,14,15,22,13,23,17,24,,,,,,2.10,1.12,1.78,1*0C 'ublox9/nmea/GNGSA' 1754938492.0214 $GNGSA,A,3,65,75,,,,,,,,,,,2.10,1.12,1.78,2*0C 'ublox9/nmea/GNGSA' 1754938492.0215 $GNGSA,A,3,,,,,,,,,,,,,2.10,1.12,1.78,3*0C 'ublox9/nmea/GNGSA' 1754938492.0216 $GNGSA,A,3,10,29,33,26,24,,,,,,,,2.10,1.12,1.78,4*03 'ublox9/nmea/GPGSV' 1754938492.0220 $GPGSV,3,1,12,02,08,022,16,10,18,329,,12,06,218,,13,48,152,19,1*66 'ublox9/nmea/GPGSV' 1754938492.0222 $GPGSV,3,2,12,14,44,065,27,15,61,214,18,17,34,100,25,19,23,129,,1*6C 'ublox9/nmea/GPGSV' 1754938492.0223 $GPGSV,3,3,12,22,59,077,30,23,31,285,20,24,47,274,16,30,10,094,,1*6A 'ublox9/nmea/GLGSV' 1754938492.0224 $GLGSV,3,1,09,65,64,226,14,66,41,318,20,72,20,171,,74,37,054,,1*7A 'ublox9/nmea/GLGSV' 1754938492.0225 $GLGSV,3,2,09,75,84,288,19,76,25,240,,82,05,337,,83,20,024,24,1*75 'ublox9/nmea/GLGSV' 1754938492.0229 $GLGSV,3,3,09,84,12,077,,1*4E 'ublox9/nmea/GAGSV' 1754938492.0231 $GAGSV,1,1,00,7*73 'ublox9/nmea/GBGSV' 1754938492.0237 $GBGSV,3,1,09,05,12,129,,07,30,060,,09,01,088,,10,35,074,14,1*7A 'ublox9/nmea/GBGSV' 1754938492.0238 $GBGSV,3,2,09,24,81,213,23,25,24,247,,26,44,075,31,29,13,027,21,1*7B 'ublox9/nmea/GBGSV' 1754938492.0239 $GBGSV,3,3,09,33,51,231,21,1*48 'ublox9/nmea/GNGLL' 1754938492.0240 $GNGLL,5535.78100,N,01214.70166,E,185452.00,A,A*70
Weather sensor
The weather sensor is based on a commercial RS-485 sensor. This is interfaced to a Raspberry PI and published as MQTT messages.
- The message is like:
- Topic: weather/indoor
- Topic: weather/outdoor
- Payload: epoc_time measured values ...
The payload follows the log file with the following content. Note that columns 2-4 are for MATLAB plotting and will likely be removed. Additional columns will be added if the weather sensor is extended with more sensors.
% Weather log started at 2025-07-27 00:00:00.424 % 1: time since 1jan 1970 (sec) % 2: time since 2025-07-27 00:00:00.424 % 3: hour of day % 4: Minute in hour % 5: Temperature (centigrades % 6: Humidity (%) % 7: Wind speed (m/s) % 8: Wind direction (degrees) % 9: Wind angle (degrees) % 10: Air pressure (hPa) % 11: Brightness (Lux) % 12: Accumulated rain (mm) (maybe not available) % 13: sound level (dB) (maybe not available) % 14: particles PM2.5 (ug/m3) (maybe not available) % 15: particles PM10 (ug/m3) (maybe not available) 1753567204.180 620141.188 0 0 18.2 83.9 0.0 0 0 1009.0 0 20.8 0 0 0 1753567209.813 620146.875 0 0 18.2 83.9 0.0 0 0 1009.0 0 20.8 0 0 0 1753567215.446 620152.500 0 0 18.2 83.9 0.0 0 0 1009.0 0 20.8 0 0 0 1753567221.080 620158.125 0 0 18.2 83.9 0.0 0 0 1009.0 0 20.8 0 0 0
PV sensor
This sensor is made to monitor a minor PV (solar panel) installation with load control.
The sensor includes:
- PV cell voltage and current
- Battery voltage and charge current
- Load control (on/off)
- Load current (out of battery).