Search Code

Projekt zdalnego przekaźnika DIY: Moduł Heltec LoRa 32 o zasięgu 13 mil bez Wi-Fi/bez SIM

Ta lekcja jest częścią: Wprowadzenie do Wi-Fi LoRa

Projekt zdalnego przekaźnika DIY: Moduł Heltec LoRa 32 o zasięgu 13 mil bez Wi-Fi/bez SIM

Zdalne sterowanie LoRa dalekiego zasięgu za pomocą Heltec WiFi LoRa 32

Wyobraź sobie, że możesz sterować wentylatorem, światłem, pompą wodną lub alarmem bezpieczeństwa z odległości ponad 15 mil lub 21 kilometrów, bez potrzeby karty SIM i bez żadnych opłat. Jest to możliwe dzięki technologii LoRa (Long Range), a w tym przewodniku pokażemy Ci dokładnie, jak zbudować taki system. Użyjemy wydajnego modułu Heltec WiFi LoRa 32, wygodnie umieszczonego w wytrzymałej obudowie Meshnology N35, która zawiera baterię 3000mAh zapewniającą długą pracę.

Ten projekt pokaże, jak skonfigurować nadajnik i odbiornik do sterowania obciążeniem na dwa różne sposoby: prostą funkcję włączania/wyłączania oraz funkcję przełączania. Omówimy montaż sprzętu, okablowanie, ustawienia kodu oraz pokażemy rzeczywisty test zasięgu.


Komponenty i sprzęt

Sercem naszego projektu jest kilka kluczowych komponentów zaprojektowanych tak, aby współpracować dla maksymalnego zasięgu i niezawodności.

  • Heltec WiFi LoRa 32 V3: To wszechstronny mikrokontroler z wbudowanym układem komunikacji LoRa, a także funkcjami Wi-Fi i Bluetooth. Jest w pełni programowalny jak Arduino, co pozwala nam odczytywać wejścia i sterować wyjściami.
  • Obudowa i bateria Meshnology N35: To trwała obudowa zaprojektowana specjalnie dla modułu Heltec. Kupowana jako zestaw zawiera baterię 3000mAh, która jest niezbędna do długotrwałej transmisji i odbioru, zwłaszcza w odległych lokalizacjach.
  • Antena o wysokim zysku: Aby osiągnąć najlepszy możliwy zasięg, użyjemy anteny o wysokim zysku, która znacznie poprawia siłę sygnału w porównaniu z fabryczną anteną.
  • Przekaźnik lub brzęczyk: Po stronie odbiornika można podłączyć przekaźnik do sterowania urządzeniami o dużej mocy AC lub DC, takimi jak wentylatory i światła, lub prosty brzęczyk do zastosowań alarmowych.

Montaż sprzętu

Montaż urządzenia jest prostym procesem, jak pokazano na filmie od około 05:56. Zestaw N35 zawiera moduł Heltec, baterię 3000mAh, obudowę, antenę z przedłużaczem oraz piny nagłówkowe.

Główne kroki obejmują umieszczenie przycisków w obudowie, przeciągnięcie przewodu baterii, podłączenie przedłużacza anteny do modułu, umieszczenie modułu w środku i podłączenie baterii. Następnie wystarczy zamknąć obudowę i zamocować uchwyt anteny na zewnątrz. Warto zauważyć, że wczesna wersja obudowy wymagała niewielkiej modyfikacji, aby zamontować uchwyt anteny, ale Meshnology naprawiło ten problem w nowszych partiach.


Okablowanie obciążenia odbiornika

Po stronie odbiornika podłączysz swoje urządzenie wyjściowe. Poniżej znajdują się instrukcje okablowania zarówno dla przekaźnika, jak i brzęczyka, zgodnie ze szczegółami na filmie od 11:17.

Okablowanie przekaźnika

Przekaźnik działa jak przełącznik sterowany elektrycznie, umożliwiając sterowanie obciążeniem o dużej mocy.

  • Pin sygnałowy przekaźnika łączy się z pinem 4 modułu Heltec LoRa.
  • Pin masy przekaźnika łączy się z pinem GND na module.
  • Ważne: Pin VCC (zasilanie) przekaźnika powinien być zasilany z zewnętrznego zasilacza 5V. Wyjście 3.3V modułu nie jest w stanie niezawodnie obsłużyć poboru prądu przekaźnika.
  • Musisz utworzyć wspólną masę, łącząc masę zewnętrznego zasilacza z masą modułu Heltec. Jest to kluczowe dla działania obwodu.
Helte_Wifi_LoRA 32

Okablowanie brzęczyka z tranzystorem

Do prostego alarmu dźwiękowego można użyć brzęczyka. Aby uniknąć pobierania zbyt dużego prądu z pinu mikrokontrolera, używamy tranzystora NPN 2N2222 do jego sterowania.

  • Podłącz pin 4 modułu do rezystora 1kΩ. Drugi koniec rezystora łączy się z bazą (środkowym pinem) tranzystora.
  • Emiter tranzystora (lewy pin, przy płaskiej stronie skierowanej do Ciebie) łączy się z GND.
  • Kolektor tranzystora (prawy pin) łączy się z ujemnym (-) zaciskiem brzęczyka.
  • Dodatni (+) zacisk brzęczyka łączy się z pinem 3.3V na module Heltec.
Helte_Wifi_LoRA 32 z brzęczykiem

Konfiguracja Arduino IDE i bibliotek

Zanim będziesz mógł przesłać kod, musisz skonfigurować Arduino IDE do pracy z płytami Heltec. Proces zaczyna się od 14:37 na filmie.

  1. Zainstaluj płyty ESP32: W Arduino IDE przejdź do Menedżera płyt i wyszukaj ESP32. Zainstaluj pakiet od Espressif Systems.
  2. Dodaj adres URL płyty Heltec: Przejdź do Plik > Preferencje. W polu „Dodatkowe adresy URL menedżera płyt” dodaj link JSON dla serii Heltec ESP32. Ten link zostanie podany na stronie z zasobami poniżej artykułu.
  3. Zainstaluj płyty Heltec ESP32: Wróć do Menedżera płyt, wyszukaj Heltec ESP32 i zainstaluj pakiet.
  4. Zainstaluj wymagane biblioteki: Przejdź do Menedżera bibliotek i zainstaluj następujące:
    • Heltec ESP32 dev boards
    • Adafruit GFX Library (i kliknij „Install All” dla jej zależności)
  5. Zainstaluj bibliotekę Robojax: Pobierz niestandardową bibliotekę zip Robojax Heltec LoRa 32 ze strony z zasobami. W Arduino IDE przejdź do Szkic > Dołącz bibliotekę > Dodaj bibliotekę .ZIP i wybierz pobrany plik.
  6. Wybierz płytę: Na koniec przejdź do Narzędzia > Płyta i wybierz Heltec WiFi LoRa 32 (V3).

Wyjaśnienie ustawień kodu

Mamy trzy różne szkice kodu dla tego projektu: jeden dla prostego nadajnika włącz/wyłącz, jeden dla nadajnika przełączającego i jeden dla odbiornika. Biblioteka obsługuje złożone części, więc wystarczy dostosować tylko kilka ustawień na górze każdego pliku. Wyjaśnienie kodu zaczyna się od 19:00 w filmie.

Nadajnik (TX) – Ustawienia kodu prostego włącz/wyłącz

Ten kod włącza przekaźnik tylko wtedy, gdy przycisk jest przytrzymany.

// Tekst do wyświetlenia na ekranie OLED
const char *displayTexttitle = "Przekaźnik:";
const char *displayTextTX = "(TX)";
const char *displayTextRelayON = "ON";
const char *displayTextRelayOFF = "OFF";

// Klucz bezpieczeństwa i częstotliwość (MUSZĄ ZGADZAĆ SIĘ Z ODBIORNIKIEM)
const char *userKey = "6tfDs$wEq3!";
#define RF_FREQUENCY 915555000 

// Moc transmisji (2-21, wyższa = silniejsza)
#define TX_OUTPUT_POWER 14 

Nadajnik (TX) – Ustawienia kodu przełączającego

Ten kod przełącza stan przekaźnika (z włączonego na wyłączony lub z wyłączonego na włączony) przy każdym naciśnięciu przycisku.

// Ustaw na true dla debugowania przez monitor szeregowy, false do normalnego użytku
bool debug = true; 
// Wbudowany pin przycisku użytkownika to 0
#define PUSH_BUTTON_PIN 0  

// Tekst do wyświetlenia na ekranie OLED
const char *displayTextTitle = "Przekaźnik:";
const char *displayTextTX = "(TX)";
const char *displayTextRelayToggleON = "TOG-ON";
const char *displayTextRelayToggleOFF = "TOG-OFF";

// Klucz bezpieczeństwa i częstotliwość (MUSZĄ ZGADZAĆ SIĘ Z ODBIORNIKIEM)
const char *userKey = "6tfDs$wEq3!"; 
#define RF_FREQUENCY 915555000 

// Moc transmisji (2-21)
#define TX_OUTPUT_POWER 2 

Ustawienia kodu odbiornika (RX)

Ten pojedynczy kod odbiornika działa zarówno z prostym, jak i przełączającym nadajnikiem.

// Pin podłączony do wejścia sygnałowego przekaźnika
#define RELAY_CONTROL_PIN 4

// Tekst do wyświetlenia na ekranie OLED
const char *displayTextTitle = "Przekaźnik:"; 
const char *displayTextTX = "(RX)"; 
const char *displayTextRelayON = "ON"; 
const char *displayTextRelayOFF = "OFF"; 
const char *displayTextRelayToggleON = "TOG-ON"; 
const char *displayTextRelayToggleOFF = "TOG-OFF"; 

// Klucz bezpieczeństwa i częstotliwość (MUSZĄ ZGADZAĆ SIĘ Z NADAJNIKIEM)
const char *userKey = "6tfDs$wEq3!";
#define RF_FREQUENCY 915555000 

Kluczowe jest to, że userKey i RF_FREQUENCY muszą być identyczne zarówno w nadajniku, jak i odbiorniku, aby mogły się komunikować.


Demonstracja i test zasięgu 13 mil

System działa bezbłędnie w środowisku laboratoryjnym, a przekaźnik lub brzęczyk odbiornika reaguje natychmiast na naciśnięcia przycisków na nadajniku. Jednak prawdziwa moc LoRa to jej zasięg.

Przeprowadzono test dalekiego zasięgu, co widać od 25:03. Nadajnik ustawiono na poziom mocy 20, wyposażono w antenę o wysokim wzmocnieniu i umieszczono na statywie około 10 metrów nad poziomem wody na brzegu jeziora, aby zapewnić czystą linię widzenia. Odbiornik zabrano następnie na drugą stronę jeziora.

Wynik był oszałamiającym sukcesem. Stabilny sygnał odebrano z odległości 13,04 mil, czyli 20,98 kilometrów. To pokazuje, że przy odpowiedniej konfiguracji można niezawodnie sterować urządzeniami na ogromne odległości, co czyni to idealnym rozwiązaniem do zastosowań takich jak zdalne monitorowanie rolnictwa, sterowanie bramami czy system alarmowy dalekiego zasięgu.


Znaczniki czasowe filmu

  • 00:00 – Wprowadzenie do sterowania dalekiego zasięgu
  • 02:42 – Co to jest LoRa?
  • 03:20 – Przegląd komponentów (Heltec, obudowa N35)
  • 05:56 – Rozpakowanie i montaż sprzętu
  • 11:17 – Wyjaśnienie okablowania: przekaźnik i brzęczyk
  • 14:37 – Konfiguracja Arduino IDE i bibliotek
  • 19:00 – Wyjaśnienie ustawień kodu (TX i RX)
  • 25:03 – Demonstracja i test zasięgu 13 mil
Brak załączonego kodu.

Zasoby i odniesienia

Pliki📁

Biblioteki Arduino (zip)

Inne pliki