Spisu treści:

Prosta komunikacja Arduino LoRa (ponad 5 km): 9 kroków
Prosta komunikacja Arduino LoRa (ponad 5 km): 9 kroków

Wideo: Prosta komunikacja Arduino LoRa (ponad 5 km): 9 kroków

Wideo: Prosta komunikacja Arduino LoRa (ponad 5 km): 9 kroków
Wideo: Bezprzewodowy pilot 8km moduły LoRa 🗼 #2 2024, Lipiec
Anonim
Prosta komunikacja Arduino LoRa (ponad 5 km)
Prosta komunikacja Arduino LoRa (ponad 5 km)

Przetestujemy E32-TTL-100 z moją biblioteką. Jest to bezprzewodowy moduł nadawczo-odbiorczy, pracujący z częstotliwością 410 441 MHz (lub 868 MHz lub 915 MHz) w oparciu o oryginalny RFIC SX1278 firmy SEMTECH, dostępna transmisja transparentna, poziom TTL. Moduł wykorzystuje technologię widma rozproszonego LORA.

Kieszonkowe dzieci

  • Arduino UNO
  • Urządzenia LoRa e32

Opcjonalny

  • Tarcza Mischianti Arduino LoRa (Open source)
  • Tarcza Mischianti WeMos LoRa (Open source)

Krok 1: Specyfikacje urządzeń

Moduł wyposażony jest w algorytm korekcji błędów FEC Forward, który zapewnia wysoką wydajność kodowania i dobrą wydajność korekcji. W przypadku nagłych zakłóceń może automatycznie skorygować zakłócone pakiety danych, aby odpowiednio poprawić niezawodność i zasięg transmisji. Ale bez FEC te pakiety danych można tylko odrzucić. A dzięki rygorystycznemu szyfrowaniu i deszyfrowaniu przechwytywanie danych staje się bezcelowe. Funkcja kompresji danych może skrócić czas transmisji i prawdopodobieństwo wystąpienia zakłóceń, jednocześnie poprawiając niezawodność i wydajność transmisji.

  • Rozmiar modułu: 21*36mm
  • Typ anteny: SMA-K (impedancja 50 Ω)
  • Odległość transmisji: 3000 m (maks.)
  • Maksymalna moc: 2dB (100mW)
  • Szybkość transmisji powietrza: 2,4 kb/s (6 opcjonalnych poziomów (0,3, 1,2, 2,4, 4,8, 9,6, 19,2 kb/s)
  • Długość emisji: 512ByteReceive
  • długość: 512 bajtów
  • Interfejs komunikacyjny: UART – 8N1, 8E1, 8O1,
  • Osiem rodzajów szybkości transmisji UART, od 1200 do 115200bps (domyślnie: 9600)
  • Obsługa RSSI: Nie (wbudowane inteligentne przetwarzanie)

Krok 2: Typ transmisji

Typ skrzyni biegów
Typ skrzyni biegów

Transmisja przezroczysta Można to uznać za „tryb demonstracyjny”, domyślnie możesz wysłać wiadomość do wszystkich urządzeń o tym samym skonfigurowanym adresie i kanale.

Transmisja stała

W tym typie transmisji możesz określić adres i kanał, na który chcesz wysłać wiadomość. Możesz wysłać wiadomość do:

  • Określone urządzenie ze wstępnie określonym adresem Low, Address High i Channel.
  • Emisja wiadomości do zestawu urządzeń kanałowych Tryb normalny Po prostu wyślij wiadomość.

Krok 3: Tryb urządzenia

Tryb normalnyPo prostu wyślij wiadomość.

Tryb budzenia i tryb oszczędzania energii

Jak można sobie wyobrazić, jeśli urządzenie jest w trybie wybudzania, może „obudzić” jedno lub więcej urządzeń w trybie oszczędzania energii za pomocą komunikacji z preambułą.

Tryb programu/uśpienia

Dzięki tej konfiguracji możesz zmienić konfigurację swojego urządzenia.

Krok 4: Urządzenie okablowania

Urządzenie okablowania
Urządzenie okablowania
Urządzenie okablowania
Urządzenie okablowania

Tutaj schemat podłączenia urządzenia, jest to w pełni połączone, z zarządzaniem pinami M0 i M1 pozwala na zmianę modalności urządzenia, dzięki czemu można przejść do trybu konfiguracji lub wybudzić za pomocą programu, w tym wszystkim pomoże biblioteka operacja.

Krok 5: Konfiguracja

Konfiguracja
Konfiguracja

Istnieje określone polecenie do ustawienia i pobrania konfiguracji

void setup() { Serial.begin(9600); opóźnienie (500); // Uruchom wszystkie piny i UART e32ttl100.begin(); ResponseStructContainer c; c = e32ttl100.getKonfiguracja(); // Ważne jest, aby uzyskać wskaźnik konfiguracji przed wszystkimi innymi operacjami Configuration configuration = *(Configuration*) c.data; Serial.println(c.status.getResponseDescription()); Serial.println(c.status.kod); printParameters(konfiguracja); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation(); // Ważne jest, aby uzyskać wskaźnik informacji przed wszystkimi innymi operacjami ModuleInformation mi = *(ModuleInformation*)cMi.data; Serial.println(cMi.status.getResponseDescription()); Serial.println(cMi.status.code); printModuleInformation(mi); }

Krok 6: Wynik konfiguracji

A wynik stał się

Początek sukcesu 1 ---------------------------------------- ZBIORNIK: 11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBit BIN: 0 -> 8N1 (domyślnie) SpeedUARTDataRate BIN: 11 -> 9600bps (domyślnie) SpeedAirDataRate BIN: 10 -> 2.4kbps (domyślnie) OptionTrans BIN: 0 - > Transmisja transparentna (domyślnie) OptionPullup BIN: 1 -> TXD, RXD, AUX to push-pull/pull-ups OptionWakeup BIN: 0 -> 250ms (domyślnie) OptionFEC BIN: 1 -> Włącz Forward Error Correction Switch (domyślnie) OptionPower BIN: 0 -> 20dBm (domyślnie) ---------------------------------------- Sukces 1 ---------------------------------------- KOSZ NA GŁOWICA: 11000011 195 C3 Nr modelu.: 32 Wersja: 44 Cechy: 14 --------------------------------------------

Krok 7: Wyślij wiadomość

Wyślij wiadomość
Wyślij wiadomość

Tutaj prosty szkic do wysłania wiadomości do wszystkich urządzeń podłączonych do kanału

void loop() { // Jeśli coś jest dostępne if (e32ttl100.available()>1) { // odczytaj wiadomość String ResponseContainer rc = e32ttl100.receiveMessage(); // Czy coś pójdzie nie tak? błąd drukowania if (rc.status.code!=1){ rc.status.getResponseDescription(); }else{ // Wydrukuj otrzymane dane Serial.println(rc.data); } } if (Serial.available()) { String input = Serial.readString(); e32ttl100.sendMessage(wejście); } }

Krok 8: Tarcza dla Arduino

Nakładka dla Arduino
Nakładka dla Arduino

Tworzę również nakładkę dla Arduino, która bardzo przydaje się do prototypowania.

I udostępniam go jako projekt open source tutaj

www.pcbway.com/project/shareproject/LoRa_E32_Series_device_Arduino_shield.html

Krok 9: Biblioteka

Biblioteka
Biblioteka

Repozytorium GitHub

Forum wsparcia

Dodatkowa dokumentacja

Zalecana: