Closed P3Vu closed 4 years ago
Ruszam zatem z opisem płytek deweloperskich dostępnych na naszym rynku. W tym poście postaram się opisać dostępną elektronikę od Lidera czyli firmy STM. Pokrótce przedstawię najważniejsze cechy, głównie ze strony dostawców ( szczegółowa analiza i porównanie zajęłaby mi sporo czasu ). Na koniec tego posta pokaże o co mi chodziło w kontekście pracy dwukierunkowej i jak ten problem prawdopodobnie da się rozwiązać. W szczegóły będzie musiała się zagłębić Luiza.
a) Discovery kit czyli procek STM i transceiver od MURATA – BOTLAND : 249 zł
Jest to zestaw uruchomieniowy z modułem LoRa CMWX1ZZABZ-091 ( Murata ) oparty na mikrokontrolerze STM32L072CZ i pozwala zapoznać się z układami wyposażonymi w rdzeń Cortex-M0+ od ARM. Na płytce także programator/debuger ST-LINK/V2, diody LED, przyciski, antena, złącze Arduino UNO i złącze USB OTG w formacie micro USB – B.
Specyfikacja a. Moduł LoRa Murata CMWX1ZZABZ-091 • Mikrokontroler: STM32L072CZ • Rdzeń : ARM Cortex M0+ • Flash : 192 kB • RAM : 20 kB • EEPROM : 20 kB • 4 kanały po 12 bit ADC + 2x DAC • 6 bitowe Timery, LP-UART, I2C i SPI • LoRa, FSK, GFSK, MSK, GMSK i modulacja OOK • Moc wyjściowa: +14dBm / +20dBm • Maksymalny budżet łącza: 157 dBm • Programowalny bit rate do 300 kb/s • Niski prąd RX: 10mA • Zakres dynamiki RSSI: 127dB
b. Na płytce też : • Złącza SMA oraz U.FL • Wbudowana antena SMA RF 50 Ohm • Programator / debuger ST-Link/V2 • 7x dioda LED • Przyciski • Złącza Arduino Uno v3 • Złącze OTG micro USB typ B • Koszyk na baterie AAA Obsługiowane protokoły LoRaWAN, LPWAN Zasilanie: USB, Vin / 3.3V lub baterie. W zestawie antena [1].
b) I-NUCLEO-LRWAN1 czyli nakładka LoRa na Nucleo z modułem USI – Farnell : 145 zł
Jest to najzwyklejsza nakładka na STM Nucleo ( Luiza posiada ) zawierająca moduł USI LoRa LPWAN oraz czujniki. Specyfikacja a. Niskobudżetowy moduł USI, LPWAN wspierający LoRa: • Mikrokontroler: STM32L052T8Y6 • Rdzeń: Cortex M0+ • Flash: 64 Kb • RAM: 8Kb • EEPROM: 2Kb • Transceiver SEMTECH SX1272 wspierający LoRa, FSK, GFSK, MSK, GMSK i modulacje OOM • Wysoka czułość do -137 dBm • Zakres częstotliwości od 860 do 1020 MHz • Moc wyjściowa 14 do 20 dBm • Zasilanie 2.0 – 3.6 V • -40 do +85 Temp pracy • Zegar Kwarc 32 kHz – 32 MHz • Komunikacja USART
b. Akcelerometr i magnetometr LSM303AGR c. Czujnik wilgotności i magnetometr HTS221 d. Czujnik ciśnienia LPS22HB e. Złącze Arduino f. Złącze SMA W zestawie antena [3].
c) Full-zestaw P-NUCLEO-LRWAN 2&3 LoRaWAN Starter Pack – KAMAMI : 555 zł
Pakiet startowy STM32 Nucleo dla technologii LoRa. Składa się z 2 zestawów deweloperskich: Nucleo-L073RZ Nucleo-F746ZG Oraz modułów rozszerzeń do komunikacji w ramach LoRa: I-NUCLEO-LRWAN1 i LRWAN_GS_HF1 Jest to narzędzie programistyczne do nauki i szybkiego opracowania rozwiązań dla sieci rozległej małej mocy (LPWAN). Pakiet zawiera zarówno węzeł końcowy LPWAN jak i powiązaną z nim bramę. Jest kompatybilny z różnymi dostawcami serwerów sieciowych LoRaWAN.
Właściwości
a. NUCLEO-L0743RZT6 • Mikrokontroler: STM32L073RZT6 Arm Cortex-M0 + MCU o bardzo niskim poborze mocy przy częstotliwości 32 MHz • Flash: 192 kB • SRAM: 20Kb • EEPROM: 6Kb • 1 dioda LED użytkownika • 1 przycisk użytkowania i 1 przycisk resetowania • Kwarc 32,768 kHz • Wbudowany Debugger + Programator ST-Link/V2-1 z funkcją enumeracji USB: pamięć masowa, port Virtual COM i port debugowania • Złącza na płytach Złącze USB Mini-AB do złącza rozszerzającego ST-LINKARDUINO Uno V3 ST przedłużacze pinów Morpho dla pełnego dostępu do wszystkich I/O STM32
b. NUCLEO-F746ZG • Mikrokontroler: STM32F746ZGT6 Arm Cortex M7 wysokowydajny MCU przy 216 MHz częstotliwości takotwania • Flash: 1MB • SRAM: 320 Kb • 3 diody użytkownika • 1 przycisk użytkowania i 1 przycisk resetowania • Ethernet zgodny z IEEE-802.3-2002 • USB OTG pełna prędkość lub jako urządzenie • Kwarc 32,768 kHz • Debuger taki sam jak przy punkcie a. • Złacza na płytch jak w punkcie a. + USB STM32 z Micro-AB i Ethernet RJ45
c. Moduł I-Nucleo-LRWAN1 opisany wyżej
d. LRWAN_GS_HF1 • Koncentrator danych i transceiver pasma podstawowego Semtech Sx1301/SX1257HF • Automatycznie dostosowuje się do współczynnika rozprzestrzeniania od SF12 do SF7 w każdym z 8 kanałów • Wysoka czułość do -140 dBm przy mocy wyjściowej 300bit/s 6dBm • Protokół LoRaWAN Klasa A i klasa CS [4].
W zestawie : • Zestaw deweloperski NUCLEO-L073RZ • Zestaw deweloperski NUCLEO-F746ZG • Moduł rozszerzeń I-NUCLEO-LRWAN1 • Moduł rozszerzeń LRWAN_GS_HF1
Dobrze idąc dalej skoro opisałem już możliwości od STM-a, zerknijmy teraz jakie mamy nadajniki. Z moim doświadczeń i obserwacji króluje na tym polu chip Semtecha SX1272 i inne jego odmiany (poszczególne modele to tylko możliwości jakiś programowalnych zmian pomiędzy 868 albo 915 MHz albo różne możliwe częstotliwości) i jest on użyty np. w Nucleo bezpośrednio wymieniony w specyfikacji. Drugi to CMWX1ZZABZ-091. Kiedy zerkniemy do jego noty katalogowej [5] to znajdziemy coś takiego :
Czyli tak naprawdę w bebechach mamy kolejnego SX-a. Drążyłem temat dalej żeby znaleźć odpowiedz na nurtujące nas pytanie: Ale czy da się zaprogramować nadajnik i odbiornik naraz i przełączać programowalnie ? Sprawdźmy notę katalogową SX-ów [6] : Tutaj jest dużo informacji więc proszę przeczytać strony 34-36 oraz 38-39 i opcjonalnie 40-43
Wszystko wskazuje że operując na odpowiednich rejestrach jesteśmy w stanie przeskakiwać w maszynie stanów pomiędzy RX a TX. Oczywiście powinno się to robić w trybie SLEEP ale sens jest taki że możemy zaprogramować SX-a przez STM aby mógł działać wedle naszych potrzeb.
Tutaj duża prośba do Luizy aby wczytać się w notę SX-a i potwierdzić moje domniemania lub zaprzeczyć.
Dodatkowo udało mi się znaleźć napisany przez polaka sterownik do SX1278 ( powinien też działać na SX1276 albo kosmetyczne zmiany ) i jest od czego czerpać informacje [7]: https://github.com/wdomski/SX1278-example
Źródła : [1] Discovery Kit Botland : https://botland.com.pl/pl/stm32-discovery/9999-stm32l0-discovery-lora-b-l072z-lrwan1.html?gclid=CjwKCAjwguzzBRBiEiwAgU0FT3xs9JU2wS5F1Jjb2NbBVj-HUzZ9W031zQTT1dOUIGKMS_Z-nJJTPBoCn4oQAvD_BwE [2] Opis IoT LoRa od STM : https://botland.com.pl/pl/stm32-discovery/9999-stm32l0-discovery-lora-b-l072z-lrwan1.html?gclid=CjwKCAjwguzzBRBiEiwAgU0FT3xs9JU2wS5F1Jjb2NbBVj-HUzZ9W031zQTT1dOUIGKMS_Z-nJJTPBoCn4oQAvD_BwE [3] Dokumentacja I-NUCLEO-LRWAN1 [4] KAMAMI LoRa Starter Pack : https://kamami.pl/stm-nucleo-shield/577001-p-nucleo-lrwan2-pakiet-startowy-stm32-nucleo-dla-technologii-lora.html [5] Specyfikacja tranceivera Murata: https://wireless.murata.com/pub/RFM/data/type_abz.pdf [6] Nota katalogowa SX-a: https://cdn-shop.adafruit.com/product-files/3179/sx1276_77_78_79.pdf [7] Sterownik pod SX1272 : https://github.com/wdomski/SX1278-example
Po przejściu SX1276 do trybu LoRa pojawia się możliwość wyboru trybu pracy modułu: "It is possible to access any mode from any other mode by changing the value in the RegOpMode register" (strona 36 dokumentacji). Rejestr RegOpMode został dokładnie opisany na stronie 108.
Znalazłam odpowiedź na nasze pytanie odnośnie komunikacji pomiędzy węzłami końcowymi: https://www.murata.com/en-global/support/faqs/products/lpwa/lora/hardware/0009 Niestety nie natknęłam się na przykład rozwiązania praktycznego ze względu na niekonwencjonalny sposób wykorzystania tej technologii (typowa jest topologia gwiazdy).
d) Płytka The Things Uno czyli dev board od TTN na start z IoT - TME : 223 zł
Jest to dobra propozycja na start z prototypowaniem swojego IoT lub dla swojego projektu z komunikacją bezprzewodową z zasięgiem do 10 km. Jest oparta na Arduino Leonardo ( nie na Uno ) z dodatkowym modułem Microchip LoRaWAN. Jest w pełni kompatybilny z Arduino IDE i shieldami.
Źródło : https://www.thethingsnetwork.org/docs/devices/uno/
Interfejsy :
Rodzaj złącza :
Tak jak wyżej całość jest oparta na Leonardo + moduł LoRa. Myślę że warty uwagi jest ten moduł przy podejmowaniu decyzji przy budowie własnego PCB.
e) Moduł ESP WiFi LoRa 32 - Cena do 100 zł przez aliexpress , 130 zł w Polsce.
Źródło : Wojciechowski P., Cyfrowa poziomica z interfejsem bezprzewodowym, Praca dypl., PG WETI 2019 ;)
Hej, w tym wątku chciałbym opisywać po kolei możliwości jakie mamy na rynku. Dzięki temu będziemy mogli wspólnie wybrać najlepsze rozwiązanie dla naszego projektu. Skupie się tu głównie na omówieniu najważniejszych cech danego modułu, wsparcia po stronie społeczności czyli czy np. są biblioteki oraz w jakim języku najlepiej programujemy.
Podobną rzecz byłaby mile widziana po stronie Anity dla opisu możliwości integracji po stronie webowej / strony www. W ten sposób możemy dzielić się wiedzą. W tym wątku mile widziane jest wsparcie Luizy ;).