Od jakiegoś czasu dzięki firmie Espressif Systems i produkowanych przez nią układów SoC z rodziny ESP8266, ESP8285 a także młodszego brata ESP32 rynek internetu rzeczy (IoT) gwałtownie się rozwinął. Wszelakiego rodzaju włączniki (np. SonOFF), czy czujniki a także systemy inteligentnych budynków stały się dostępne dla "kowalskiego". W artykule chciałbym zaprezentować moduł uruchomieniowy firmy Heltec Automation WiFi LoRa 32 (V2), oraz pokazać integrację tego modułu ze środowiskiem Arduino IDE. Heltec zintegrował "na pokładzie" modułu chyba wszystkie niezbędne komponenty wraz z transceiverem LoRa oraz kontrolerem akumulatora Li-Po/Li-Ion i wyświetlaczem graficznym w technologii OLED o rozdzielczości 128x64 o rozmiarze 0,96 cala. Zestaw otrzymujemy w ładnym małym pudełku zawierającym oprócz samego modułu także antenę LoRa dla pasma 868-915 MHz (Pasmo ISM, 868MHz pasmo europejskie, 915MHz USA) ze złączem SMA, krótki przewód połączeniowy U.FL-SMA, dwie listwy goldpin 18 stykowe do połączenia modułu z np. płytką stykową, dwie samoprzylepne etykiety z opisem wejść i wyjść modułu oraz niewielki radiator dla ESP32.
Zawartość zestawu;
Jak na tak niewielki moduł jego parametry deklarowane przez producenta prezentują się imponująco;
Pod względem elektrycznym też całkiem całkiem;
Producent udostępnia pełną dokumentację wraz ze schematem który możemy pobrać tu.
Na PCB mamy zamontowane układy;
Druga strona płytki prezentuje się mniej okazale;
Po odkręceniu czterech śrubek mocujących ramkę wyświetlacza widzimy SX1276 (transceiver LoRa);
Widoczny nadmiar topnika, to pozostałości po "przyłapaniu" kilku pinów(taką niestety mam teraz technikę lutowania
). W zasadzie dostajemy do ręki moduł o dość sporych możliwościach;
Serce modułu, czyli ESP32 oferuje;
-dwa 32-bitowe rdzenie pracujące z maksymalną częstotliwością 240MHz każdy
-co-procesor w technologii ULP (Ultra Low Power)
-520 KiB pamięci SRAM
-obsługę WiFi 802.11 b/g/n
-obsługę Bluetooth v4.2 BR/EDR i BLE (ze wspólnym "radiem" dla WiFi)
Protokoły bezpieczeństwa;
-IEEE 802.11 WFA, WPA/WPA2 i WAPI
-tzw. security boot
-szyfrowanie pamięci Flash (programu)
-1024 lub 768 bitową pamięć OTP (programowaną jednorazowo)
-sprzętowy akcelerator szyfrowania AES, SHA-2, RSA, ECC, RNG (generator liczb losowych)
Oraz mnóstwo przydatnych interfejsów we/wy;
-12-bitowy 18-to kanałowy przetwornik ADC w technologii SAR
-2 8-bitowe przetworniki DAC
-10 dedykowanych GPIO dla pojemnościowych czujników dotyku
-4 interfejsy SPI
-2 interfejsy I²S
-2 interfejsy I²C
-3 interfejsy UART
-interfejs pamięci SD/SDIO/CE-ATA/MMC/eMMC w trybie host
-interfejs SDIO/SPI slave
-interfejs Ethernet MAC z dedykowanym kanałem DMA i IEEE 1588 (Precision Time Protocol)
-interfejs CAN bus 2.0
-obsługa zdalnego sterowania IR(podczerwień) TX/RX, do 8 kanałów
-sterowanie PWM silników
-sterowanie PWM diod LED (do 16-tu kanałów)
-odczyt wewnętrznego czujnika Halla
-analogowy przedwzmacniacz o bardzo niskim poborze energii
Dodatkowe "wyposażenie" modułu jakie zapewnił producent powinno uszczęśliwić chyba wszystkich konstruktorów;
-wyświetlacz OLED 0,96" 128x64 w błękitnym kolorze z kontrolerem SSD1306 (GPIO4-SDA, GPIO15-SCL i GPIO16-RST)
-ładowarka ogniw Li-Ion TP4054 ( https://www.google.pl/url?sa=t&rct=j&...%3D30089&usg=AOvVaw0NBU3JNi0cLxs1srl4DxwK )
-stabilizator napięcia 3,3V (LDO) CE 6260 ( https://www.google.pl/url?sa=t&rct=j&...N-14.pdf&usg=AOvVaw1cPB21D5efech3KDC_82PH )
-interfejs UART<->USB CP2102 ( https://www.google.pl/url?sa=t&rct=j&...02-9.pdf&usg=AOvVaw01ejeCdumfsSwz4u_yvCdi )
-dwie diody LED, jedna programowana a druga sygnalizuje ładowanie akumulatora
-dwa tact-switche (reset oraz prog)
-gniazdo akumulatora
-tranceiver LoRa SX1276 umożliwiający zbudowanie np. bramki LoRa lub sieci czujników bezprzewodowych ( https://www.google.pl/url?sa=t&rct=j&...8113.pdf&usg=AOvVaw3Ui5e84Yk1ed3wf1Oho1EQ )
Aby zacząć zabawę z modułem warto zajrzeć do zakładki "Docs&Resources" na stronie producenta;
W pierwszym od góry odsyłaczu mamy instrukcję jak uruchomić moduł w Arduino IDE, link przenosi nas do strony z wyborem sposobu instalacji, za pomocą menadżera płytek Arduino lub poprzez instalację pakietów z GitHub'a;
Oczywiście ja wybrałem "łatwiejszą opcję" czyli instalacja za pomocą menadżera płytek Arduino, tu znów zostajemy przekierowani tym razem na stronę https://heltec-automation-docs.readthedocs.io/en/latest/esp32/quick_start.html
Uruchamiamy Arduino IDE i wybieramy Plik->Preferencje;
Następnie dodajemy dodatkowy adres dla menadżera płytek klikając;
W okienku które "wyskoczyło" dopisujemy adres https://resource.heltec.cn/download/package_heltec_esp32_index.json ;
Teraz przechodzimy do Narzędzia->Płytka->Menadżer płytek;
Odszukujemy Heltec i instalujemy;
Definicje płytek już mamy, teraz potrzeba jeszcze doinstalować biblioteki do obsługi; Szkic->Dołącz bibliotekę->Zarządzaj bibliotekami;
Tak jak poprzednio odszukujemy Heltec i instalujemy;
Jeśli wszystko przebiegło pomyślnie to w menadżerze płytek pokaże się nam;
Pojawiają się od razu przykłady programów dla modułu;
Zanim zaczniemy zabawę z modułem nie zapomnijmy o podłączeniu anteny LoRa, jej brak może uszkodzić część radiową SX1276.
Programista ze mnie w zasadzie żaden, dlatego pokażę na filmie kilka przykładów z obsługą wyświetlacza OLED;
Kilka pomysłów na wykorzystanie modułu już mam, ale muszę się jeszcze dużo nauczyć aby wprowadzić je w życie. Nie mniej jednak moduł jest ciekawy i oprócz szerokiej komunikacji (WiFi, LoRa, BLE) daje również dostęp do wielu interfejsów, jak i GPIO które można wykorzystać w swoich aplikacjach. Sam moduł jest dostępny np. na Alliexpress;
Czy też u krajowych sprzedawców; https://nettigo.pl/products/modul-rozwojowy-h...c-wifi-lora-32-v2-868mhz-esp32-lora-oled-0-96
Jedynym mankamentem (według mnie) jest zintegrowana antenka WiFi, sądzę że lepszym rozwiązaniem byłaby zewnętrzna antena podobnie jak dla LoRa. Na pewno zwiększyłoby to zasięg sieci. A do czego Wy byście wykorzystali ten zestaw?
Zawartość zestawu;

Jak na tak niewielki moduł jego parametry deklarowane przez producenta prezentują się imponująco;

Pod względem elektrycznym też całkiem całkiem;

Producent udostępnia pełną dokumentację wraz ze schematem który możemy pobrać tu.
Na PCB mamy zamontowane układy;

Druga strona płytki prezentuje się mniej okazale;

Po odkręceniu czterech śrubek mocujących ramkę wyświetlacza widzimy SX1276 (transceiver LoRa);

Widoczny nadmiar topnika, to pozostałości po "przyłapaniu" kilku pinów(taką niestety mam teraz technikę lutowania


Serce modułu, czyli ESP32 oferuje;
-dwa 32-bitowe rdzenie pracujące z maksymalną częstotliwością 240MHz każdy
-co-procesor w technologii ULP (Ultra Low Power)
-520 KiB pamięci SRAM
-obsługę WiFi 802.11 b/g/n
-obsługę Bluetooth v4.2 BR/EDR i BLE (ze wspólnym "radiem" dla WiFi)
Protokoły bezpieczeństwa;
-IEEE 802.11 WFA, WPA/WPA2 i WAPI
-tzw. security boot
-szyfrowanie pamięci Flash (programu)
-1024 lub 768 bitową pamięć OTP (programowaną jednorazowo)
-sprzętowy akcelerator szyfrowania AES, SHA-2, RSA, ECC, RNG (generator liczb losowych)
Oraz mnóstwo przydatnych interfejsów we/wy;
-12-bitowy 18-to kanałowy przetwornik ADC w technologii SAR
-2 8-bitowe przetworniki DAC
-10 dedykowanych GPIO dla pojemnościowych czujników dotyku
-4 interfejsy SPI
-2 interfejsy I²S
-2 interfejsy I²C
-3 interfejsy UART
-interfejs pamięci SD/SDIO/CE-ATA/MMC/eMMC w trybie host
-interfejs SDIO/SPI slave
-interfejs Ethernet MAC z dedykowanym kanałem DMA i IEEE 1588 (Precision Time Protocol)
-interfejs CAN bus 2.0
-obsługa zdalnego sterowania IR(podczerwień) TX/RX, do 8 kanałów
-sterowanie PWM silników
-sterowanie PWM diod LED (do 16-tu kanałów)
-odczyt wewnętrznego czujnika Halla
-analogowy przedwzmacniacz o bardzo niskim poborze energii
Dodatkowe "wyposażenie" modułu jakie zapewnił producent powinno uszczęśliwić chyba wszystkich konstruktorów;
-wyświetlacz OLED 0,96" 128x64 w błękitnym kolorze z kontrolerem SSD1306 (GPIO4-SDA, GPIO15-SCL i GPIO16-RST)
-ładowarka ogniw Li-Ion TP4054 ( https://www.google.pl/url?sa=t&rct=j&...%3D30089&usg=AOvVaw0NBU3JNi0cLxs1srl4DxwK )
-stabilizator napięcia 3,3V (LDO) CE 6260 ( https://www.google.pl/url?sa=t&rct=j&...N-14.pdf&usg=AOvVaw1cPB21D5efech3KDC_82PH )
-interfejs UART<->USB CP2102 ( https://www.google.pl/url?sa=t&rct=j&...02-9.pdf&usg=AOvVaw01ejeCdumfsSwz4u_yvCdi )
-dwie diody LED, jedna programowana a druga sygnalizuje ładowanie akumulatora
-dwa tact-switche (reset oraz prog)
-gniazdo akumulatora
-tranceiver LoRa SX1276 umożliwiający zbudowanie np. bramki LoRa lub sieci czujników bezprzewodowych ( https://www.google.pl/url?sa=t&rct=j&...8113.pdf&usg=AOvVaw3Ui5e84Yk1ed3wf1Oho1EQ )
Aby zacząć zabawę z modułem warto zajrzeć do zakładki "Docs&Resources" na stronie producenta;

W pierwszym od góry odsyłaczu mamy instrukcję jak uruchomić moduł w Arduino IDE, link przenosi nas do strony z wyborem sposobu instalacji, za pomocą menadżera płytek Arduino lub poprzez instalację pakietów z GitHub'a;

Oczywiście ja wybrałem "łatwiejszą opcję" czyli instalacja za pomocą menadżera płytek Arduino, tu znów zostajemy przekierowani tym razem na stronę https://heltec-automation-docs.readthedocs.io/en/latest/esp32/quick_start.html
Uruchamiamy Arduino IDE i wybieramy Plik->Preferencje;

Następnie dodajemy dodatkowy adres dla menadżera płytek klikając;

W okienku które "wyskoczyło" dopisujemy adres https://resource.heltec.cn/download/package_heltec_esp32_index.json ;

Teraz przechodzimy do Narzędzia->Płytka->Menadżer płytek;

Odszukujemy Heltec i instalujemy;

Definicje płytek już mamy, teraz potrzeba jeszcze doinstalować biblioteki do obsługi; Szkic->Dołącz bibliotekę->Zarządzaj bibliotekami;

Tak jak poprzednio odszukujemy Heltec i instalujemy;

Jeśli wszystko przebiegło pomyślnie to w menadżerze płytek pokaże się nam;

Pojawiają się od razu przykłady programów dla modułu;

Zanim zaczniemy zabawę z modułem nie zapomnijmy o podłączeniu anteny LoRa, jej brak może uszkodzić część radiową SX1276.
Programista ze mnie w zasadzie żaden, dlatego pokażę na filmie kilka przykładów z obsługą wyświetlacza OLED;
Kilka pomysłów na wykorzystanie modułu już mam, ale muszę się jeszcze dużo nauczyć aby wprowadzić je w życie. Nie mniej jednak moduł jest ciekawy i oprócz szerokiej komunikacji (WiFi, LoRa, BLE) daje również dostęp do wielu interfejsów, jak i GPIO które można wykorzystać w swoich aplikacjach. Sam moduł jest dostępny np. na Alliexpress;

Czy też u krajowych sprzedawców; https://nettigo.pl/products/modul-rozwojowy-h...c-wifi-lora-32-v2-868mhz-esp32-lora-oled-0-96
Jedynym mankamentem (według mnie) jest zintegrowana antenka WiFi, sądzę że lepszym rozwiązaniem byłaby zewnętrzna antena podobnie jak dla LoRa. Na pewno zwiększyłoby to zasięg sieci. A do czego Wy byście wykorzystali ten zestaw?
Cool? Ranking DIY