Przedstawiamy NAM 0.4 – LoRaWAN część 1

Przedstawiamy wam kolejną iterację modułów NAM – pierwszą dostępną wersję z serii 0.4. Z jednej strony zupełnie nowy sensor, z drugiej starałem się zachować jak najwięcej ze sprawdzonej linii 0.3. Czyli co zostało? Obudowa, kształt i podstawowe elementy. Czyli SDS011, BME280 i HECA do kondycjonowania powietrza. Również baza kodu jest wspólna, co znaczy, że na razie kolejne wersje powinny nowości wprowadzać od razu do 0.3 i 0.4.

To co się zmieniło? Skoro pierwszy moduł z 0.4 miał wspierać LoRaWAN, dlatego jest oparty o nowy moduł Heltec Wireless Stick, który widzieliście tutaj na blogu we wpisach o LoRaWAN. Czyli mamy ESP32. Co więcej?

Kolor płyty głównej zmienił się nie tylko by podkreślić że to nowa seria. Planuję w ten sposób rozróżniać nowsze NAMy, ze zmienionym zasilaniem. Otóż NAM 0.4 ma moduł step down MINI560. Czyli napięcie zasilające to dowolny zasilacz w zakresie od 6.7V do 20V. Duże ułatwienie, bo często był problem z dostępem do zasilania sieciowego a na przykład było dostępne 12V. Teraz to nie jest problem, NAM można zasilić jak wygodnie. Jeśli masz kilka różnych NAMów może też kolor podpowie by nie podłączyć 12V do starego, zielonego 0.3…

Drugą zmianą jest wprowadzenie konwersji poziomów logicznych na szynie I2C między częścią 3.3V a 5V. W zasadzie większość urządzeń samą komunikację po I2C ogarnia przy różnych poziomach logicznych, jednak moduły z wbudowanym pull-upem do 5V mogą wprowadzać pewne problemy. Dlatego by uniknąć ich w przyszłości – pełne rozdzielenie szyn I2C.

Z drobnych dodatków – pojawiło się miejsce na rezystor podciągający szynę danych dla DS18B20.

NAM 0.4 jest obecnie w wersji beta. Wiem, że na pewno dodam jeszcze kontrolę nad zasilaniem 3.3V i 5V by można restartować urządzenia. Jak pokazuje praktyka z NAM 0.3 jest sporo modułów, które potrafią się zawiesić – restart prądowy jest w takiej sytuacji świetnym rozwiązaniem.

Jak zlutować NAM 0.4?

Tutaj krótka instrukcja lutowania NAM 0.4 w obecnej wersji beta. Jak wspomniałem konstrukcja jest mocno oparta o 0.3, dlatego, jeżeli jeszcze tego nie robiłeś przeczytaj instrukcję lutowania płyty głównej NAM w wersji 0.3. Jako że to jest produkt beta, więc nie jest to też szczegółowa instrukcja typu „krok po kroku”. Przeczytaj najpierw całość by upewnić się że coś nie zaskoczy cię na końcu.

Ogólnie zasada jest bez zmian – zaczynasz od elementów najniższych. Na pierwszy ogień – step down. W zasadzie możesz go próbować przylutować jako element SMD. Ja osobiście miewałem z tym problemy by zrobić to ładnie, więc sugeruję lutowanie na goldpinach, łatwe i wygodne. Nim zaczniesz lutowanie – upewnij się co do orientacji. Na PCB NAM jest strzałka – kierunek ma być zgodny ze strzałką na module step down.

Po wsadzeniu podwójnych goldpinów i nałożeniu modułu – warto skorzystać np z klamerki by uchwycić moduł i bezpiecznie go przylutować, bez ryzyka że coś wypadnie przy odwracaniu.

Kolejny do przylutowanie moduł konwertera poziomów logicznych. Tutaj orientacja też jest ważna, mamy stronę HIGH i LOW. Na PCB NAM są opisane, a na module oznaczone jako LH i LV:

Teraz czas na drobnicę THT: gniazda I2C, IDC16, gniazdo 1×6 do SDS, elementy zasilania. Nie lutuj tylko kondensatora 470 µF – ten jest wysoki i najlepiej przylutować go na samym końcu. Jak lutować – sięgnij do wspomnianego już instruktażu z serii 0.3, tu się nic nie zmieniło.

Teraz kolej na Wireless Stick. Można by wlutować bezpośrednio w PCB, ale… z doświadczenia z NAM 0.3 nie sugeruję takiego rozwiązania. Całość będzie niższa (a wysokość tutaj nieco komplikuje konstrukcję, o czym będzie za chwilę) ale wymiana modułu będzie ciężka. A uwierzcie, zdarza się taka potrzeba. Ponadto, Wireless Stick ma też elementy i gniazda na spodzie, więc zysk na wysokości chyba nie będzie aż tak duży. Ponadto – to jest wersja beta, jeśli będziesz chciał zmigrować do wersji docelowej, to użycie gniazd umożliwi proste przełożenie modułu.

Jeśli przyjrzysz się uważnie PCB zobaczysz, że miejsce jest nie tylko na Wireless Stick. Te krótsze złącza są pomyślane pod ESP32-POE od Olimexa ale… nie zostało to jeszcze w ogóle przetestowane. Plan jest taki, by dało radę również skorzystać z Ethernetu, który oferuje ESP32-POE. Na POE bym nie liczył (za mały prąd by uciągnął grzałkę) ale parę osób pytało o możliwość podłączenia do sieci przez Ethernet. Jeśli plan się powiedzie, wersja 0.4 powinna oferować alternatywę – albo Wireless Stick Lite i LoRaWAN albo ESP32-POE i Ethernet. Ale to pieśń przyszłości.

Jak zawsze przy lutowaniu elementów z dużą liczbą pinów jednym rzędzie – przylutuj najpierw tylko jeden pin z elementu. Obróć PCB i sprawdź czy jest równo – jeśli nie to łatwo możesz przycisnąć palcem element i od spodu roztopić cynę grotem lutownicy by wyrównać element.

Dwie praktyczne uwagi : tutaj mamy gniazdo, ale jeżeli to jest element metalowy (np goldpiny) to uważaj by nie dociskać palcem tego pinu który jest przylutowany bo rozgrzeje się przy wyrównaniu. Druga uwaga – cyna potrzebuje sekundy lub dwóch by stężeć od momentu gdy zabierzesz grot. Nie puść elementu zbyt wcześnie, bo wypadnie i będzie trochę trudniej wsadzić go ponownie. Trzeba będzie rozgrzać jednocześnie cynę w tym jednym otworze i wsadzić element.

Gdy już wszystkie elementy są na miejscu pozostaje przylutowanie kondensatora, pamiętaj o jego polaryzacji (biały pasek na obudowie odpowiada białej części na PCB).

Kolej na montaż mechaniczny. W zestawie są dystanse 18 mm. Zarówno na SDS i coś co w NAM 0.3 było otworami pod LCD. Ze względu na podniesienie SDS011 by zrobić miejsce na moduł ESP32 (jest on dużo dłuższy niż Wemos używany w 0.3 dlatego wchodzi pod SDS011) LCD nie będzie się w 0.4 mieścił. Jak pokazuje praktyka, dodatkowe punkty mocowania przydają się do różnych rzeczy. Jeśli przyjrzysz się uważnie, dostrzeżesz, że robiąc zdjęcia zapomniałem o montażu tych dodatkowych dystansów. Nie zrób tego błędu, zamontuj wszystkie 6 dystansów.

Moduł Heltec Wireless Stick Lite ma dwa złącza IPX. To złącze w pobliżu którego znajdziesz oznaczenie HF to złącze WiFi – podłącz do niego antenę WiFi a do drugiego znajdującą się w pudełku z Wireless Stick antenę na 868 MHz. Jest to antena typu sprężynka, nie pomylisz jej z anteną WiFi. Obudowa NAM nie ma przewidzianego otworu na antenę 868 MHz. Na razie proponuję wprowadzić ją przez otwór wentylacyjny w dole obudowy i po prostu zostawić wiszącą.

Teraz, przed końcowym montażem czas na wgranie oprogramowania – po montażu SDS przykryje on gniazdo USB w Heltec’u więc trzeba o tym pomyśleć teraz. Trzeba odwiedzić stronę projektu NAMF na GitHubie, a dokładnie jego ostatnie wydania. Odnaleźć najnowszą wersję z serii 47rcX (na dziś to NAMF-47rc1) i ściągnąć. W sekcji Assets są pliki do pobrania. Wersja na ESP32 to latest_en_32.bin.

Aby wgrać plik na płytkę skorzystać trzeba z esptool. Nie będę tutaj szczegółowo omawiał instalacji, musicie sami znaleźć instrukcję, jeśli jeszcze nie korzystaliście z niego. Samo polecenie by wgrać oprogramowanie:

esptool.py --port /dev/ttyUSB0 -b 921600 write_flash 0 latest_en_32.bin

To jest akurat z Ubuntu, na innym systemie operacyjnym będzie inna nazwa portu szeregowego, ale to nic z czym nie dacie sobie rady :) Sugeruję od razu skonfigurować moduł, by być pewnym że łączy się na razie z WiFi (do celów konfiguracyjnych, by pracować „w polu” nie będzie to WiFi wymagane).

Pozostaje montaż SDS011. Jak już wiecie, dystanse zamiast 8 mm mają 18 mm. Rozwiązanie z przelotką 6 pin użyte w NAM 0.3 tutaj się nie sprawdzi. Ale wystarczyło dodać drugą :) przelotkę by wystarczyło. Jedną zginamy pod kątem 90° a drugą zostaje jako przedłużacz. Ważna uwaga – zginając pierwszą przelotkę upewnij się że zegnie się ona tuż przy plastikowej obudowie (w miejscu zaznaczonym czerwonym kółkiem) inaczej będzie problem ze zmieszczeniem całości i podłączeniem do PCB.

Teraz pozostaje zainstalować HECA i BME280 – tutaj w zasadzie nic się nie zmieniło, więc podlinkowane instrukcje z 0.3 powinny być w 100% właściwe.

Tu kończy się kwestia lutowania i mechanicznego montażu – konfiguracje LoRaWANu zostawiam na kolejny wpis, ale jeżeli czytałeś wcześniejsze wpisy o LoRaWAN to powinieneś wiedzieć jak utworzyć aplikację w TTN :) a w interfejsie NAM wpisać tylko dane do OTAA.