Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02
Lora jest bardzo popularna w ostatnich latach. Moduł komunikacji bezprzewodowej wykorzystujący tę technologię jest zwykle tani (wykorzystując wolne widmo), niewielkich rozmiarów, energooszczędny i ma dużą odległość komunikacyjną i jest używany głównie do wzajemnej komunikacji między terminalami IoT lub wymiany danych z hostem. Na rynku dostępnych jest wiele modułów LoRa, takich jak RFM96W, który jest wyposażony w bardzo mały chip SX1278 (kompatybilny). Używam go z MakePython ESP32 jako bramą.
Następnie użyję dwóch węzłów LoRa do wysłania danych o temperaturze i wilgotności do bramki, a następnie prześlę je do Internetu przez bramę. Tutaj dowiesz się, jak przesyłać zdalne dane wielu węzłów LoRa do chmury za pośrednictwem bramy.
Krok 1: Materiały eksploatacyjne
1 * MakePython ESP32
MakePython ESP32 to płyta ESP32 ze zintegrowanym wyświetlaczem OLED SSD1306.
2 * Radio Maduino LoRa;
Maduino Lora Radio to rozwiązanie IoT (Internet rzeczy) oparte na MCU Atmega328P i module Lora firmy Atmel. Może to być prawdziwy projekt dla projektów IoT (zwłaszcza aplikacji dalekiego zasięgu, małej mocy)
2*DHT11
1 * MakePython Lora
Krok 2: Węzeł LoRa
To jest schemat Radia Maduino Lora.
Moduł Arduino Lora Radio jako węzeł LoRa, używamy go do przesyłania danych o temperaturze i wilgotności do bramki.
(To WiKi przedstawia sposób korzystania z radia Maduino Lora oraz wysyłania i odbierania danych)
Krok 3: Połączenie węzła i czujnika
VCC i GND DHT11 są podłączone do 3V3 i GND Maduino, a pin DATA jest podłączony do D4 Maduino.
Węzeł 0 jest w parku, węzeł 1 jest w biurowcu niedaleko firmy, są od siebie około 2 kilometry, a potem otrzymuję ich dane o temperaturze i wilgotności w domu
Krok 4: Wyślij dane do bramki
Pobierz TransmitterDHT11.ino, otwórz go w Arduino IDE.
Dodając węzeł, zmodyfikuj odpowiednio numer węzła. Na przykład, teraz użyj 2 węzłów, pierwszy węzeł do zmodyfikowania numeru węzła = 0, aby uruchomić program, drugi węzeł do zmodyfikowania numeru węzła = 1, aby uruchomić program, i tak dalej, możesz dodać więcej węzłów.
int16_t numer_pakietu = 0; // licznik pakietów, zwiększamy na xmisję
int16_t numer węzła = 0; //Zmień numer węzła
Zbierz dane i wydrukuj je
Komunikat ciągu ="#"+(Ciąg)nodenum+" Wilgotność:"+(Ciąg)wilgotność+"% Temperatura:"+(Ciąg)temperatura+"C"+" num:"+(Ciąg)numer pakietu;Serial.println(komunikat); numer pakietu++;
Wyślij wiadomość do rf95_server
uint8_t pakiet radiowy[wiadomość.długość()+1];
wiadomość.toCharArray(radioPacket, wiadomość.długość()+1); radioPacket[wiadomość.length()+1]= '\0'; rf95.send((uint8_t *)radioPacket, wiadomość.length()+1);
Otwórz monitor szeregowy, możesz zobaczyć zebrane dane dotyczące temperatury i wilgotności i wysłać je.
#0 Wilgotność:6,00% Temperatura:27,00C num:0
Transmit: Wysyłanie do rf95_server Wysyłanie… Oczekiwanie na zakończenie pakietu… Oczekiwanie na odpowiedź… Brak odpowiedzi, czy w pobliżu jest słuchacz?
Odłóż to na bok, teraz musimy zrobić Lora Gateway.
Krok 5: Stwórz Pythona Lora
Jest to odpowiedni pin modułu RFM96W i MakePython ESP32. W celu ułatwienia połączenia z MakePythonem ESP32 wykonałem płytkę drukowaną z modułem RFM96W. Tak, są na nim dwa RFM96W, które mogą jednocześnie wysyłać i odbierać dane, ale teraz potrzebuję tylko jednego.
Krok 6: Brama LoRaWAN
LoRaWAN to sieć rozległa o niskim poborze mocy oparta na LoRa, która zapewnia: niski pobór mocy, skalowalność, wysoką jakość usług oraz bezpieczną, długodystansową sieć bezprzewodową.
Połącz MakePython Lora i ESP32, aby stworzyć bramę, która może odbierać dane zdalne i przesyłać je do Internetu.
Krok 7: Pobierz kod
Pobierz wszystkie pliki „xxx.py” z WiKi i prześlij je do ESP32.
Otwórz plik LoRaDuplexCallback.py, Musisz dokonać pewnych korekt, aby ESP32 mógł łączyć się z siecią i przesyłać dane na serwer.
Zmodyfikuj API_KEY, który uzyskałeś w ThingSpeak (później przedstawię, jak go uzyskać)
#https://thingspeak.com/channels/1047479
API_KEY='UBHIRHVV9THUJVUI'
Zmodyfikuj SSID i PSW, aby połączyć się z Wi-Fi
ssid = "Twórcy"
pswd = "20160704"
Krok 8: Odbierz dane
Znajdź funkcję on_receive (lora, payload) w pliku LoRaDuplexCallback.py, gdzie możesz powiedzieć ESP32, co ma zrobić po otrzymaniu danych. Poniższy kod analizuje i wyświetla odebrane dane dotyczące temperatury i wilgotności.
def on_receive(lora, ładunek):
lora.blink_led() rssi = lora.packetRssi() try: length=len(payload)-1 myStr=str((payload[4:length]), 'utf-8') length1=myStr.find(':') mojaLiczba1=mojaStr[(długość1+1):(długość1+6)] mojaNum2=mojaStr[(długość1+20):(długość1+25)] print("*** Odebrana wiadomość ***\n{}". format(payload)) if config_lora. IS_LORA_OLED: lora.show_packet(("{}".format(payload[4:długość])), rssi) if wlan.isconnected(): global msgCount print('Wysyłanie do sieci…') node = int(str(payload[5:6], 'utf-8')) if node == 0: URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1= "+mojaLiczba1+"&field2="+mojaLiczba2 res=urequests.get(URL) print(res.text) elif node == 1: URL="https://api.thingspeak.com/update?api_key="+API_KEY+" &field3="+mojNumer1+"&field4="+mojNumer2 res=urequests.get(URL) print(res.text) z wyjątkiem wyjątku jako e: print(e) print("with RSSI {}\n".format(rssi))
Oceniając liczbę w celu rozróżnienia węzłów i przesyłając dane do Internetu przez adres URL, możemy w dowolnym momencie monitorować zdalne dane różnych węzłów. Możesz dodać więcej węzłów i wprowadzić podobne zmiany w kodzie.
jeśli węzeł == 0:
URL="https://api.thingspeak.com/update?api_key="+API_KEY+"&field1="+myNum1+"&field2="+myNum2 res=urequests.get(URL) print(res.text)
Krok 9: Użyj ThingSpeak IoT
Kroki:
- Zarejestruj konto na https://thingspeak.com/. Jeśli już go masz, zaloguj się bezpośrednio.
- Kliknij Nowy kanał, aby utworzyć nowy kanał ThingSpeak.
- Nazwa wejścia, Opis, Wybierz pole 1. Następnie zapisz kanał na dole.
- Kliknij opcję API Keys, skopiuj API Key, użyjemy go w programie.
Krok 10: Wynik
Możesz zobaczyć dane węzła 0 i węzła 1 na ekranie, mimo że są od siebie oddalone o 2 kilometry.
Zaloguj się na swoje konto ThingSpeak i kliknij utworzony kanał, aby zobaczyć przesłane dane dotyczące temperatury i wilgotności.
Wykres pola 1 i wykres pola 2 to dane dotyczące wilgotności i temperatury węzła Lora 0, a wykres pola 3 i wykres pola 4 to dane wilgotności i temperatury węzła Lora 1.
Zalecana:
Sterowana głosem wyrzutnia rakiet oparta na Alexa: 9 kroków (ze zdjęciami)
Sterowana głosem wyrzutnia rakiet oparta na Alexa: W miarę zbliżania się sezonu zimowego; nadchodzi ta pora roku, kiedy obchodzone jest święto świateł. Tak, mówimy o Diwali, które jest prawdziwym indyjskim świętem obchodzonym na całym świecie. W tym roku Diwali już się skończyło i widząc ludzi
Jak zrobić automatyzację domu opartą na IoT za pomocą przekaźnika sterującego czujnikami NodeMCU: 14 kroków (ze zdjęciami)
Jak zrobić automatykę domową opartą na IoT za pomocą przekaźnika sterującego czujnikami NodeMCU: W tym projekcie opartym na IoT stworzyłem automatykę domową za pomocą modułu przekaźnika sterującego Blynk i NodeMCU z informacją zwrotną w czasie rzeczywistym. W trybie ręcznym tym modułem przekaźnikowym można sterować z telefonu komórkowego lub smartfona i przełącznika ręcznego. W trybie automatycznym ten inteligentny
Moja DIY Steampunk Operation Game, oparta na Arduino: 9 kroków (ze zdjęciami)
Moja DIY Steampunk Operation Game, oparta na Arduino: Ten projekt ma dość rozległy zakres. Nie wymaga wielu narzędzi ani wcześniejszej wiedzy, ale nauczy każdego (włącznie ze mną) wiele różnych działów tworzenia! Jak Captive-sensing z Arduino, wielozadaniowość z Arduino
Dotter - Ogromna drukarka igłowa oparta na Arduino: 13 kroków (ze zdjęciami)
Dotter - Ogromna drukarka igłowa oparta na Arduino: Witam, witam w tej instrukcji :) Jestem Nikodem Bartnik 18 letnim twórcą. Przez 4 lata robiłem wiele rzeczy, robotów, urządzeń. Ale ten projekt jest prawdopodobnie największy, jeśli chodzi o wielkość. Myślę, że jest również bardzo dobrze zaprojektowany
Pinball stołowy wykorzystujący platformę opartą na platformie Evive-Arduino: 18 kroków (ze zdjęciami)
Tabletop Pinball Machine przy użyciu wbudowanej platformy opartej na Eveve-Arduino: Kolejny weekend, kolejna ekscytująca gra! Tym razem jest to ulubiona gra zręcznościowa wszystkich – Pinball! Ten projekt pokaże Ci, jak łatwo zrobić własną maszynę do pinballa w domu. Wszystko, czego potrzebujesz, to komponenty z eve