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.
