Wearher monitor modules

From Rsewiki

back to Gnss monitor

Modules

Module overview

Display

The display is a C++ app based on the Qt library for visual elements.

Description

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        

Function

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


Function

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).

Function