WX i telemetria w MeshCom 4.0

1. Jak działa telemetria

Węzeł MeshCom z podłączonym czujnikiem wysyła dane pomiarowe jako osobny rodzaj wiadomości (telemetria) na częstotliwości MeshCom, domyślnie 433,175 MHz. Gdy dane dotrą do serwera MeshCom, są przekazywane do dashboardu APRS.fi w formacie telemetrii APRS.

Dane pogodowe są też wysyłane razem z pozycją węzła (co 30 minut), jeśli czujnik jest podłączony. Szczegóły: Wysyłanie pozycji.

Aplikacja na telefon nie jest potrzebna do samego nadawania. Węzeł z czujnikiem wysyła dane samodzielnie. Aplikacja i konsola służą do ustawienia czujników i podglądu wartości.

 

2. Obsługiwane czujniki

Czujnik Co mierzy
BMP/BME280 ciśnienie, wilgotność, temperatura (I2C, adres 0x77)
BMP390 ciśnienie
BME680 ciśnienie, temperatura, wilgotność, jakość powietrza (rezystancja gazu)
DS18B20, DHT11 temperatura zewnętrzna (1-Wire, jeden pin GPIO)
MCU811 CO2 (eCO2)
INA226 napięcie i prąd (np. zasilanie stacji)
netDL 500 poziom i temperatura wody, bateria

Do węzła można też podłączyć zegar RTC DS3231, ekspander MCP23017 (16 wejść/wyjść) oraz wykorzystać wejścia analogowe GPIO.

 

3. Podłączenie czujników

BME/BMP280

Czujnik podłącza się do magistrali I2C. Zasilanie (VIN) do 3,3 V. Przykładowe piny:

Moduł SCL SDA
TLORA T3 V1.6.1 IO22 IO21
HELTEC V2 IO15 IO4
HELTEC V3 / V4 IO42 IO41
HELTEC E290 IO38 IO39

W modułach TBEAM i ESP32-E2 czujnik podłącza się do pinów I2C wyświetlacza (przy 3,3 V podłącz VDD).

Komenda Działanie
--bme on włącza BME280 (lub --bmp on dla BMP280), potem restart
--bmx off całkowicie wyłącza obsługę czujnika
--wxdebug on włącza dodatkowe informacje w konsoli, pomocne przy instalacji

1-Wire (DS18B20, DHT11)

Czujniki 1-Wire podłącza się do jednego pinu GPIO. Linia danych potrzebuje rezystora 4,7 kΩ do 3,3 V.

Ważne: moduł DHT11 ma już wbudowany rezystor, więc nie dodawaj drugiego.

Komenda Działanie
--onewire gpio 4 ustawia numer pinu GPIO (tu: 4)
--onewire on włącza czujnik (--onewire off wyłącza)

Przetestowane piny według autorów: TBEAM GPIO 4, T-LORA T3 V1.6.1 GPIO 4, HELTEC V2 GPIO 17, HELTEC V3.2 GPIO 7, HELTEC STICK V3 LITE GPIO 33, RAK z płytką 13002 IO01.

 

4. Odczyt danych

Wartości pomiarowe zobaczysz:

  • w konsoli szeregowej (USB) po komendzie --wx (lub --weather). Wyświetlane są: TEMP, TOUT, HUM, QFE, QNH, ALT asl, GAS, eCO2,
  • w aplikacji na smartfon, razem z listą aktywnych czujników,
  • w WEBService węzła,
  • na dashboardzie APRS.fi, gdzie wartości trafiają z serwera MeshCom.

Komendy można wpisać w konsoli szeregowej lub wysłać z aplikacji jako wiadomość tekstową. W dokumentacji spotyka się zapis z jednym i dwoma myślnikami (-wx, --wx), więc sprawdź składnię dla swojej wersji firmware.

5. Stałe grupy pomiarowe (APRS.fi)

Format telemetrii APRS pokazuje tylko 5 wartości na znak wywoławczy z SSID (np. OE1KBC-20, OE1KBC-21). Dlatego MeshCom grupuje wartości według dostępnych czujników:

Grupa Czujniki Wartości w APRS.fi
/V=1 BME/BMP280, 1-Wire Press, Temp.in, Hum, QNH, Temp.out
/V=2 BME/BMP280, MCU811, 1-Wire Press, Temp.in, Hum, eCO2, Temp.out
/V=3 BME680, 1-Wire Press, Temp.in, Hum, eGAS, Temp.out
/V=4 netDL 500, 1-Wire Level, Temp, Batt, Temp.out
/V=5 INA226 Volt, Ampere, BATT

 

6. Własna grupa pomiarowa

Jak to działa

Od wersji firmware v4.34w04.08 możesz samodzielnie złożyć grupę do pięciu wartości. Ustawiasz nazwy wartości, jednostki i źródła danych, a węzeł wysyła je w zadanym interwale.

Dostępne źródła (-values): press, hum, temp (BMP/BME280, BME680), onewire, co2 (MCU811), gasres (BME680), batt, proz (z sprzętu węzła), vbus, vcurrent (INA226), qnh. Wartość QNH jest wyliczana z ciśnienia i zapisanej wysokości (z GPS lub wpisanej ręcznie).

Ważne: wiadomości telemetryczne idą jako wiadomość grupowa, której nie widać na wyświetlaczu, w WEBService ani w aplikacji. Nie mają potwierdzeń (ACK), żeby ograniczyć ruch, a serwer nie rozsyła ich do innych bramek. Opisy PARM, UNIT i EQNS trafiają do APRS.fi po starcie węzła i co 10 wiadomości.

Ustawienie z wiersza poleceń

Komenda Działanie
-parm tm1,tm2,tm3,tm4,tm5 nazwy wartości (nieużywane pozostaw puste)
-unit u1,u2,u3,u4,u5 jednostki, np. V, A, mV (nieużywane pozostaw puste)
-values v1,v2,v3,v4,v5 źródła danych z listy powyżej
-eqns 0,1,0, 0,1,0, ... opcjonalne równania przeliczeniowe. Nie trzeba ich wpisywać, domyślne są ustawione
-ptime 15 interwał pomiarów w minutach
-tel wyświetla zapisane ustawienia

Przykład konfiguracji:

PARM: temp.in,temp.out,qfe,qnh,hum
UNIT: C,C,hPa,hPa,%rel
EQNS: none
VALUES: temp,onewire,press,qnh,hum
PTIME: 15

 

7. Mapy, klienci i projekty społeczności

  • MeshMap: mapa danych z sieci (wiadomości, pozycje, telemetria, siła sygnału, mapa cieplna temperatur). Autor: Martin DK5EN, wdrożenie po stronie serwerów: Kurt OE1KBC.
  • MeshCom Map (OE1KFR): węzły na mapie z tabelą zawierającą bramkę, wersję firmware, sprzęt oraz temperaturę, ciśnienie, wilgotność i CO2.
  • MeshcomWebDesk: webowy klient (Blazor) łączący się z węzłem przez UDP. Od v1.11.0 ma integrację Weather API, która wprowadza dane z AWEKAS lub Weather Underground do telemetrii MeshCom.
  • Wiadomości pogodowe IK5XMK: kod do wysyłania wiadomości pogodowych w sieci APRS MeshCom, wymieniony na stronie klientów open source ICSSW.

Na stronie ICSSW wymieniono też klientów BLE (OE3WAS, DK5EN) i UDP (DG9VH, MeshDash). Wsparcie do tych programów zapewniają ich autorzy.

Źródła