Internet rzeczy i integracja

MeshCore MQTT integracja

Połącz swoją sieć MeshCore z platformami IoT poprzez MQTT w celu eksportu danych, automatyzacji i integracji z systemami zewnętrznymi

Co to jest most MQTT?

Most MQTT w MeshCore umożliwia eksportowanie komunikatów i danych telemetrycznych do brokera MQTT. Stamtąd możesz przesyłać dane do platform IoT, takich jak Home Assistant, Node-RED, InfluxDB, Grafana i inne.

MQTT (Message Queuing Telemetry Transport) to lekki protokół publikowania/subskrypcji, idealny dla IoT. Węzły MeshCore mogą pełnić rolę bramy: odbierają wiadomości za pośrednictwem LoRa i publikują je w tematach MQTT. Otwiera to świat możliwości integracji.

W tym przewodniku wyjaśniamy, jak skonfigurować MQTT, jak działa formatowanie wiadomości i jakie są praktyczne zastosowania. Niezależnie od tego, czy chcesz podłączyć inteligentny dom, czy wizualizować dane w Grafanie, MQTT umożliwia to.

Jak działa most MQTT?

📡

1. Węzeł odbiera komunikat LoRa

Twój węzeł MeshCore (bramka) odbiera komunikaty drogą radiową LoRa od innych węzłów w sieci mesh.

🔄

2. Konwertuj na JSON

Węzeł konwertuje wiadomość Protobuf na czytelny format JSON ze wszystkimi metadanymi i danymi ładunku.

📤

3. Opublikuj w MQTT

Wiadomość JSON jest publikowana w temacie MQTT na Twoim brokerze. Inne systemy mogą subskrybować te tematy.

MQTT ustaw mostek

Aby użyć MQTT, potrzebujesz brokera MQTT (takiego jak Mosquitto) i węzła MeshCore, który działa jako brama. Wykonaj następujące kroki:

Krok 1: Zainstaluj brokera MQTT

Zainstaluj Mosquitto na Raspberry Pi lub serwerze. Możesz też skorzystać z brokera w chmurze, ale publiczne broker-y nie są zalecane (prywatność!). Dla większości osób najlepszy jest lokalny broker: sudo apt install mosquitto mosquitto-clients

Krok 2: Skonfiguruj ustawienia węzła MQTT

Za pomocą aplikacji MeshCore lub CLI skonfiguruj ustawienia MQTT: adres brokera (np. 192.168.1.100), port (1883), nazwę użytkownika/hasło (opcjonalnie) i włącz MQTT.

Krok 3: Wybierz temat główny MQTT

Struktura tematów zależy od regionu/presetu i konfiguracji bramy. Przykładowy format: msh/<region>/<channel>/c/<preset>/!nodeid. Dla Polski typowe ustawienia sieciowe bazują na presecie EU/UK Narrow - ważne, żeby wszystkie urządzenia w Twojej sieci używały tych samych ustawień.

Krok 4: Przetestuj połączenie

Subskrybuj wszystkie tematy: mosquitto_sub -h localhost -t "msh/#" -v. Wyślij wiadomość testową poprzez aplikację MeshCore. Powinieneś zobaczyć wiadomość w formacie JSON.

Praktyczne zastosowania

🏠

Integracja z Asystentem Domowym

Uruchamiaj automatyzacje w Home Assistant na podstawie komunikatów MeshCore. Na przykład: światło zapala się, gdy ktoś wysyła „do domu” za pośrednictwem siatki.

📊

Panele Grafana

Eksportuj dane telemetryczne do InfluxDB i wizualizuj w Grafanie. Monitoruj poziom baterii, temperaturę, GPS ślady wszystkich węzłów.

🔔

Powiadomienia alarmowe

Wysyłaj powiadomienia push na swój telefon za pomocą Telegram, Discord lub Pushover, gdy nadejdą określone wiadomości.

🌐

Panele internetowe

Twórz niestandardowe interfejsy internetowe, które wyświetlają dane w czasie rzeczywistym z sieci mesh. Subskrybuj przez WebSocket tematy MQTT.

💾

Rejestrowanie danych

Rejestruj wszystkie wiadomości w bazie danych w celu analizy historycznej. Zobacz aktywność sieci w czasie, śledź ruchy węzłów.

🔗

Mostkowanie wielu sieci

Połącz wiele sieci MeshCore przez MQTT. Węzły bramy mogą przekazywać wiadomości pomiędzy fizycznie oddzielonymi sieciami.

MQTT format wiadomości

MeshCore publikuje wiadomości jako ładunek JSON. Przykład wiadomości tekstowej:

{
  "nadawca": "!a1b2c3d4",
  „od”: 2748779476,
  „id”: 123456789,
  „znacznik czasu”: 1699123456,
  „do”: 4294967295,
  "kanał": 0,
  "typ": "tekst",
  „ładunek”: {
    "text": "Witam przez MQTT!"
  }
}

Każda wiadomość zawiera metadane (identyfikator nadawcy, znacznik czasu, kanał) oraz obiekt ładunku z rzeczywistymi danymi. W przypadku komunikatów telemetrycznych ładunek zawiera batteryLevel, voltage, temperature itd. W przypadku komunikatów o położeniu: latitude, longitude, altitude.

Korzyści z integracji MQTT

🔌

Uniwersalna kompatybilność

MQTT jest obsługiwany przez prawie wszystkie platformy IoT. Łatwa integracja z Home Assistant, Node-RED, Domoticz, OpenHAB itp.

🌐

Zdalny dostęp

Uzyskaj dostęp do swojej sieci MeshCore z dowolnego miejsca za pośrednictwem Internetu. Monitoruj węzły i wysyłaj wiadomości, nie będąc fizycznie w zasięgu.

📊

Trwałość danych

Zapisz wszystkie wiadomości w bazie danych do długoterminowej analizy. Sam MeshCore nie ma pamięci, ale MQTT + baza danych tak.

Transmisja strumieniowa w czasie rzeczywistym

Model publikowania/subskrypcji zapewnia natychmiastowe aktualizacje. Nie jest wymagane odpytywanie, dane przychodzą automatycznie.

🔀

Wielu abonentów

Wiele systemów może subskrybować ten sam temat w tym samym czasie. Przykład: Grafana + Asystent Domowy + skrypt niestandardowy.

🛠️

JSON jest łatwy

Format JSON jest czytelny dla człowieka i współpracuje z dowolnym językiem programowania. Łatwiejszy do analizy niż binarny Protobuf.

Często zadawane pytania

Czy potrzebuję lokalnego brokera MQTT?

Nie, możesz także skorzystać z publicznego brokera (np. broker testowy), ale to zwykle zły pomysł ze względu na prywatność (każdy może czytać dane). Do realnego użycia zalecany jest lokalny broker (Mosquitto na Raspberry Pi) lub prywatny broker w chmurze z TLS.

Którego węzła powinienem użyć jako bramy MQTT?

Dowolny węzeł MeshCore może działać jako brama, ale najlepiej użyć węzła stacjonarnego z dobrym zasilaniem (USB lub energią słoneczną). Węzeł Raspberry Pi + MeshCore to popularna konfiguracja. Brama musi być zawsze w trybie online.

Czy mogę wysyłać wiadomości poprzez MQTT do sieci mesh?

Tak! Opublikuj wiadomość JSON w odpowiednim temacie MQTT, a węzeł bramy przekazuje ją do siatki. Możesz wysyłać wiadomości do sieci z poziomu Home Assistant. Dokładny format można znaleźć w dokumentacji MQTT.

Jak bezpieczny jest MQTT?

MQTT sam w sobie jest nieszyfrowany (zwykły tekst). Użyj szyfrowania TLS (MQTTS na porcie 8883) i uwierzytelniania za pomocą nazwy użytkownika/hasła. Dla dodatkowego bezpieczeństwa: tunel VPN do Twojego brokera. Nigdy nie korzystaj z usług brokerów publicznych w przypadku wrażliwych danych!

Jaka jest różnica między tematami dotyczącymi łącza w górę i w dół?

Tematy Uplink (msh/.../c/...) dotyczą wiadomości z mesh do MQTT. Tematy Downlink (msh/.../2/c/...) dotyczą wiadomości od MQTT do mesh. Subskrybuj łącze w górę, publikuj w łączu w dół.

Czy mogę używać MQTT bez fizycznego węzła bramy?

Nie, zawsze potrzebujesz co najmniej jednego węzła podłączonego do brokera MQTT (przez WiFi/Ethernet lub USB do komputera). Węzeł ten pełni rolę pomostu pomiędzy siatką LoRa i MQTT. Dostęp zdalny przez MQTT bez węzła nie jest możliwy.

Zacznij od integracji MQTT

Gotowy do połączenia sieci MeshCore z platformami IoT? Zainstaluj brokera MQTT i skonfiguruj węzeł bramy.

Powiązane artykuły