LoRaWan+NB-IOT+MQTT

Dzięki nowemu oprogramowaniu 2.3.1(150) można teraz zintegrować LoRaWan, NB-IOT i inne czujniki zewnętrzne.

Warunkiem jest jednak przekazanie danych z czujników brokerowi MQTT; OpenSprinkler może następnie zasubskrybować te dane jako dane z czujnika.

Sensor zintegrowany jest ze swoim „tematem” oraz filtrem tekstowym/JSON. Sterownik nawadniania może następnie wykorzystać tę wartość.

Opcje połączenia

Oto jak to działa:

  • Czujniki LoRa WAN umieszczane są w promieniu koncentratora LoRa WAN, w zależności od wersji, o zasięgu do 10 km. Sam obsługujesz koncentrator LoRa WAN, zwany także bramą, i podłączasz go do swojej sieci
  • Czujniki NB-IoT są integrowane za pośrednictwem portalu dostawcy. Ponieważ NB-IoT działa poprzez sieć komórkową, czujnik można zlokalizować w dowolnym miejscu – pod warunkiem, że będzie tam odbiór.
  • W bramce lub portalu dostawcy aktywuj funkcję MQTT i użyj jej do eksportu danych z czujnika. W zależności od wersji może być konieczna dalsza implementacja za pomocą narzędzia do zarządzania IoT, takiego jak ChirpStack, które przekształca „gołe” dane z czujnika w dane nadające się do oceny.
  • W OpenSprinkler łączysz to za pomocą opcji MQTT, a następnie tworzysz nowy czujnik typu „Subskrypcja MQTT”.
  • Wprowadź informacje o subskrypcji i filtr danych w czujniku.
  • Kompletny! Po otrzymaniu danych wartości są wyświetlane i zapisywane.

Szczegółowa konfiguracja czujnika

Obydwa czujniki MQTT są zaznaczone na czerwono. Pozostałe czujniki są integrowane poprzez płytkę czujników analogowych

 

Czujnik analogowy150 1

Edytuj czujnik

Klikając na „Dodaj czujnik” lub na nazwę istniejącego czujnika otrzymasz następujący edytor:

Czujnik analogowy150 2

Ten przykład pokazuje integrację danych MQTT w CHIRPSTACK. Strukturę definiuje się w następujący sposób:

aplikacja/<identyfikator-aplikacji>/urządzenie/<identyfikator urządzenia>/event/up

Najlepiej przyjrzeć się możliwym wartościom za pomocą narzędzia, takiego jak MQTT Explorer. Często dezorientujące, szczególnie dla początkujących, jest to, że w Eksploratorze MQTT nic nie jest wyświetlane. Ponieważ dane z czujnika docierają tylko co 10 minut (w zależności od konfiguracji), wystarczy na chwilę opuścić Eksplorator MQTT.

W polu Filtr MQTT wpisz nazwę pola, które ma zostać odczytane. W CHIRPSTACK możesz zobaczyć pola odczytane w sekcji „Profile urządzeń” / „Pomiary”. Jeśli nic się tutaj nie pojawi, musisz najpierw zapisać skrypt w zakładce „KODEC”; szablony mogą tutaj pomóc lub możesz zapytać producenta czujnika.

Dlaczego LoRaWAN lub NB-IoT, a nie Wi-Fi lub Bluetooth?

Największym problemem czujników jest to, że wymagają zasilania. Jeśli można ułożyć kabel zasilający, zazwyczaj można również ułożyć kabel do transmisji danych. Ale jeśli nie jest to możliwe, jak podłączyć te czujniki?

Aby odpowiedzieć na to pytanie, przeprowadziliśmy kilka eksperymentów, których wyniki prezentujemy tutaj.

  • Bluetooth zawodzi, zasięg jest po prostu za krótki (chyba, że ​​rośliny znajdują się w promieniu 10 m. Zobacz tutaj)
  • Można korzystać z Wi-Fi, ale zużycie energii jest tak duże, że albo trzeba wymieniać baterie co 4 tygodnie, albo potrzebne są ogromne baterie. Można to również poprawić za pomocą fotowoltaiki, ale wtedy wiąże się to już z wysokimi kosztami inwestycyjnymi na czujnik. Ponadto podczas montażu na zewnątrz istnieje ryzyko uszkodzenia mienia.
  • LoRaWAN jest tutaj bardziej odpowiedni, ponieważ akumulatory są trwałe i często wytrzymują nawet 10 lat. Zasięg na zewnątrz może wynosić do 10 km (otwarte tereny, tereny miejskie ok. 2 km). Ponieważ LoRaWAN może być obsługiwany bez licencji, koszty są tylko jednorazowe.
  • NB-IoT jest również bardzo odpowiedni, jeśli istnieje odpowiedni zasięg telefonii komórkowej. Oznacza to, że zasięg jest praktycznie „nieskończony”, ponieważ dane z czujników są dostarczane do usługi w chmurze. Istnieją jednak stałe koszty

Realizacja i testowanie

Do naszego testu użyliśmy Milesight UG65-868M jako bramy LoRaWAN, a także czujniki Dragino LSE01 i Milesight EM-500 SMTC. Ponieważ UG65 może również aktywować brokera MQTT z najnowszą aktualizacją (konieczne jest aktywowanie ChirpStack-common), można go podłączyć jako niezależny serwer MQTT.

Obydwa czujniki mogą mierzyć nie tylko wilgotność gleby, ale także temperaturę gleby i przewodność dielektryczną (przepuszczalność). Szczególnie ostatnia wartość jest bardzo ważna dla sektora rolnego, ponieważ można ją również wykorzystać do określenia zawartości nawozów w glebie.

Img 20240318 183612

Milesight UG65 ma złącza zasilania z tyłu i może być obsługiwany przez POE. Posiada również Wi-Fi i może nawet służyć jako punkt dostępu. Opcjonalnie dostępne są również inne anteny i moduł LTE.

Img 20240318 183633

Milesight EM-500 SMTC to coś więcej niż tylko czujnik wilgotności gleby. Może mierzyć temperaturę gleby i przenikalność elektryczną. Składa się z dwóch elementów połączonych kablem. Nadziemna ziemia to nadajnik, a ziemia to rzeczywisty czujnik. W zestawie uchwyt na maszt.

Lse01 10

Dragino LSE01 jest podobny do EM500, może również mierzyć wilgotność gleby, temperaturę i przenikalność elektryczną. Wszystkie czujniki Dragino wydają się być podobne, wszystkie produkty mają ten sam nadajnik.

ChirpStack

Podczas konfigurowania Chirpstack ważne jest, aby najpierw skonfigurować profile czujników („Profile urządzeń”). Tutaj rejestrujesz czujniki z ich ogólnymi danymi urządzenia. Możesz wybrać ustawienia domyślne za pomocą funkcji „Wybierz szablon profilu urządzenia”. Cała ta konfiguracja jest konieczna, aby binarne dane czujnika można było przekształcić w czytelne wartości. Dlatego też funkcja „Kodek” jest tutaj również najważniejszą funkcją.

Jednak zajęło mi trochę czasu, zanim zdałem sobie sprawę, że te specyfikacje kodeków są przestarzałe. Aktualne kodeki można znaleźć tutaj:

Milewzroczność: https://github.com/Milesight-IoT/SensorDecoders

Dragino: https://github.com/dragino/dragino-end-node-decoder

Aby to zrobić, wystarczy wybrać odpowiedni czujnik, pobrać plik ChirpStack, otworzyć go za pomocą edytora i wkleić w pole kodeka.

Następnie utwórz „Aplikację” i wprowadź czujniki w „Urządzeniach”. Ważne jest również, aby znać dane JOIN czujników; są one zwykle wydrukowane na urządzeniach, na tabliczce znamionowej, w samym urządzeniu lub w towarzyszących dokumentach.

Teraz, gdy wszystko jest skonfigurowane, musisz uruchomić JOIN na czujnikach. Proces ten najpierw łączy czujnik z bramą — w przeciwnym razie każdy mógłby kontrolować Twoje czujniki. Można to zrobić za pomocą aplikacji (Milesight posiada aplikację „Toolbox”) lub otworzyć urządzenie i nacisnąć specjalny przycisk DOŁĄCZ. Czasami wystarczy na krótko wyjąć baterię i podłączyć ją, a następnie uruchamia się proces JOIN.

Dragino Chirpstack

Dane powinny teraz dotrzeć do ChirpStack. Prosimy jednak o cierpliwość, czujniki wysyłają sygnał tylko co 10 minut, więc może to zająć trochę czasu.

MQTT

Chirpstack ma własnego brokera MQTT, ale możesz także użyć własnego MQTT. Aby odbierał dane od brokera Chirpstack MQTT, skonfigurowałem most MQTT i przekazałem wszystko dalej. Niezbędny do tego program nazywa się „Mosquitto”

Plik forwarder.conf w folderze /etc/mosquitto/conf.d wygląda u mnie tak:

connection bridge-01
address 192.168.0.50:1884
topic # out 0
topic # in 0

gdzie 192.168.0.50:1884 to adres IP i port brokera Chirpstack MQTT

Gdy wszystko zostanie skonfigurowane, wartości powinny pojawić się automatycznie w OpenSprinkler, jak pokazano powyżej. Teraz skonfiguruj dostosowanie programu dla tego czujnika, np. tak:

Dostosowanie programu 1

Dzięki temu wilgotność gleby utrzymuje się na poziomie od 10% do 20%. Regulacja nawadniania wynosi od 0 do 200%

 

5 myśli o „LoRaWan+NB-IOT+MQTT

  1. Tobiasz mówi:

    Cześć,

    to brzmi niezwykle interesująco. Zastanawiam się tylko, czy potrzebujesz stosunkowo drogiego Milesighta UG65-868M, czy może robi coś prostszego?

    • Administrator mówi:

      Oczywiście działa to również z innymi bramkami LoRaWAN. Ponieważ integracja odbywa się poprzez MQTT, można zastosować dowolne kompatybilne urządzenie.

  2. Andrea mówi:

    Niestety w przypadku oprogramowania sprzętowego 2.3.1 (164) po wybraniu opcji „Subskrypcja MQTT” brakuje pól Temat MQTT/Filtr/Jednostka MQTT 🙁
    Nawet zmiana przeglądarki nic nie zmieniła. Czy to znany błąd?

Dodaj komentarz

Dwa adresy e-mail nigdy nie zostaną opublikowane. Wymagane pola są oznaczone *

Ta strona używa Akismet do redukcji spamu. Jak widać, widać także dwa komentarze.