
Ponieważ moja dziewczyna jest maniakiem kwiatów, zaznaczyła sobie coś co by można wetknąć w grunt, zapomnieć o tym, że w tym gruncie jest przez parę miesięcy a w międzyczasie dowiadywać się z tego ile mniej więcej wody znajduje się w ziemi (aka "kiedy najlepiej podlewać"), najlepiej po WiFi. Z WiFi nic nie wyszło, bo w sumie wszystko co używa WiFi ma pobór prądu z kosmosu, a chcemy mieć tak około pół roku pracy na baterii 300-400mAh. Opcją był jeszcze BLE (nRF52), ale też odpadł z powodu w sumie małej wygody.
Skończyło się na STM32F030 w parze z LT8920. STMa chyba nie trzeba przedstawiać, a LT8920 jest transciverem radiowym w pasmie 2,4GHz, którego główną zaleta jest mała liczba potrzebnych dodatkowych elementów, potrzebne są całe dwa kondensatory i 12MHz kryształ. Do tego pobór prądu w uśpieniu na poziomie 6uA i do tego koszt 25 centów za sztukę. Ale nie ma róży bez kolców, zasięg w praktyce jest ok, ale mogło by być lepiej: około 1-2 betonowe ściany, do tego tragiczna dokumentacja.
Pomiar wilgotności odbywa się metoda pojemnościową:



Na wejście układu pomiarowego podawany jest 2,4MHz sygnał PWM z 30% wypełnieniem. Ten po przejściu przez filtr złożony ze ścieżek na PCB, ewentualnej wody w otoczeniu i R2 ulega spłaszczeniu. Interesuje nas w tym momencie jaki jest mniej więcej maksymalny poziom po przefiltrowaniu, a zmierzenie tego umożliwia detektor maksimów złożony z D1 (to tak na prawdę dioda 4148, pod ręką nie było odpowiedniego symbolu w eagle), C1 i R3. Potem już wystarczy nawet niezbyt szybki ADC i określenie poziomów napięcia w suchym i mokrym otoczeniu celem kalibracji.

Ładowanie przez gniazdo mini USB za pomocą TP4057, stabilizację do 3V zapewnia HT7530-7, oba w obudowach SOT23-5. Szczytowy pobór prądu w trakcie pomiaru/nadawania osiąga około 60mA, 22mA w odbiorze, a w trybie uśpienia nie przekracza 30uA. Pomiar/wysyłka odbywa się raz na 5 minut, trwa około 55ms. To teoretycznie powinno pozwolić na pracę z 400mAh akumulatorka lipo przez około 8 miesięcy, uwzględniając 3% samorozładowanie i bez uwzględnienia ręcznego trybu nasłuchu.

Układ posiada jeden przycisk, którego działanie rożni się w zależności od czasu ptrzytrzymania:
* pojedyncze naciśniecie - natychmiastowy pomiar i wysłanie aktualnych danych w pakiecie (migniecie diodą)
* przytrzymanie przez 3s - układ przechodzi w tryb nasłuchu, to umożliwia zdalne przejście do bootloadera i wgranie nowego firmware przez radio lub odczyt danych na żywo przez centralkę, ewentualnie także zmianę parametrów (miganie diodą co 1s)
* przytrzymanie przez 10s - reset + wejście do bootloadera na 30s (miganie diodą 3x s)
Obecnie nie ma innej opcji wyłączenia transmisji danych niż odłączenie baterii. Ale tak sobie myślę, że zmiana STM32F030 na F07x dała by opcję konfiguracji przez USB, przydatną w wypadku wprowadzenia przypadkiem jakichś bardzo złych ustawień. To jednak może w kolejnej wersji, obecna jak na nasze potrzeby się sprawdza całkiem dobrze.

Przy okazji pomiaru wilgotności gleby układ mierzy tez napięcie na baterii, opcjonalnie temperaturę (NTC), napięcie na USB podczas ładowania.
Do zbierania danych z czujników wykorzystywany jest zegar:

Zbudowany na STM32F107 (i 18 wyświetlaczach matrycowych 8x8 20/1.9mm), posiada port ethernet, kilka czujników podających parametry środowiska w który się znajduje i transciver na LTC8920 co umożliwia mu wymianę danych z czujnikami.

Ale ten opisany będzie dokładniej jak w moje kochanie zrobi coś sensownego z jego WebUI

Cool? Ranking DIY