Elektroda.pl
Elektroda.pl
X
Computer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Smart Flower Pot - beacon Bluetooth LE mierzący parametry doniczki

mattsk 24 Lip 2019 09:21 1497 9
  • Smart Flower Pot - beacon Bluetooth LE mierzący parametry doniczki

    Smart Flower Pot jest to małe urządzenie typu Bluetooth LE Beacon, które mierzy podstawowe parametry doniczki:
    - wilgotność gleby,
    - temperatura gleby i powietrza,
    - nasłonecznienie.

    Co to jest Beacon?
    Jest to klasa urządzeń Bluetooth LE, które periodycznie wysyłają sygnał radiowy tz. adverising. Sygnał ten może być odebrany przez dowolną ilość urządzeń, które znajdują się w zasięgu radiowym.


    1. Hardware
    Urządzenie oparte jest o mikrokontroler nRF52832 firmy Nordic Semiconductor. Jest to Cortex M4F z zbudowanym torem radiowym 2,4GHz. Do pomiaru wilgotności gleby zastosowano dwie równoległe elektrody, które wbija się do ziemi w doniczce. Jedna z elektrod jest podłączona do GND a druga do napięcia zasilania ( a tak naprawdę do pinu mikrokontrolera - dzięki temu możemy włączać i wyłączać napięcie ). Układ do mierzenia prądu to TS1100-50 - jest to wzmacniacz różnicowy, który wzmacnia spadek napięcia na rezystorze pomiarowym 100Ohm, wywołany płynącym prądem przez elektrody. Im większy prąd tym większa wilgotność gleby. Temperatura gleby mierzona jest za pomocą analogowego czujnika temperatury - MCP9700AT, który jest umieszczony na końcu jednej z elektrod. "Temperatura powietrza" mierzona jest przez wewnętrzny sensor znajdujący się w mikrokontrolerze nRF52. Pomiar natężenia światłą odbywa się poprzez fototranzystor. Dodatkowym elementem jest dioda LED, która sygnalizuje pomiar oraz wysyłkę danych. Całość zasilana jest z baterii CR2032, której pojemność wynosi około 220mAh.

    Smart Flower Pot - beacon Bluetooth LE mierzący parametry doniczki

    2. Firmware
    Firmware oparty jest o Nordic SDK12.1. Wykorzystywany jest przetwornik SAADC, RTC oraz notyfikacje radiowe. Wszystko zostało zoptymalizowane pod kątem zużycia energii. W trybie sleep - beacon pobiera około 1,2uA, natomiast w czasie wysyłki około 9mA w piku. Co daje średni prąd około 10uA przy interwale pomiarów co 10 sekund. Dzięki temu czujnik będzie działał na jednej baterii nawet kilka lat. Jeżeli chodzi o ramkę danych to jest to przerobiona ramka Beacona typu Eddystone.

    3. Aplikacja na Androida
    Aplikacja wyświetla dane z wszystkich beaconów znajdujących się w zasięgu oraz wyświetla wszystkie mierzone parametry oraz dodatkowo wyświetla MAC adres beacona oraz siłę odebranego sygnału radiowego. Aplikacja napisana jest w Android Studio.

    Smart Flower Pot - beacon Bluetooth LE mierzący parametry doniczki

    Całość dostępna jest na moim githubie:
    [url=]https://github.com/mattpro/SmartFlowerPot[/url]

    PS. Projekt raczej czysto demonstracyjny, raczej nie nadaje się do "profesjonalnego" monitorowania parametrów doniczki.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    mattsk
    Poziom 12  
    Offline 
    Specjalizuje się w: stm32, fizyka, avr
    mattsk napisał 55 postów o ocenie 9, pomógł 7 razy. Mieszka w mieście Mikołów. Jest z nami od 2009 roku.
  • Computer Controls
  • #2
    Arturavs
    Moderator - Na Wesoło HydePark
    mattsk napisał:
    Projekt raczej czysto demonstracyjny, raczej nie nadaje się do "profesjonalnego" monitorowania parametrów doniczki.

    Przydatne dla "hodowców" pewnej rzadko spotykanej, aczkolwiek bardzo poszukiwanej roślinki. :-)
  • Computer Controls
  • #3
    TvWidget
    Poziom 33  
    mattsk napisał:
    mierzy podstawowe parametry doniczki:
    - wilgotność gleby,

    Układ nie mierzy wilgotności gleby tylko jej rezystancję
  • #4
    ADI-mistrzu
    Poziom 30  
    Czujnik temperatury na końcu elektrody wtykanej do gleby...
    Za długo nie popracuje, albo skorodują piny albo go "utopimy" w trakcie podlewania roślinki.
  • #5
    IS
    Poziom 17  
    Nie wiem czy elektrody pokryte np. złotem nie byłyby lepsze. Może ktoś ma doświadczenia z pomiarem wilgotności gleby tanimi metodami bo sam jestem zainteresowany tematem.
  • #6
    josef
    Poziom 12  
    Jak wyżej:
    1) czujnik nie jest wodoodporny
    2) czujnik mierzy rezystancję z nie wilgotność - po nawożeniu (szczególnie nawozami mineralnymi wodo-rozpuszczalnymi) będzie fałszował wyniki (i to sporo)

    Dlaczego czujniki tego typu ssą:
    https://www.youtube.com/watch?v=udmJyncDvw0

    Projektowanie czujników pojemnościowych:
    https://pdfs.semanticscholar.org/2b91/da341e9d65d052e9a4104f69081845d8d9c4.pdf
    https://digitalscholarship.unlv.edu/cgi/viewc....cgi?article=4052&context=thesesdissertations

    To i tak dalej nie jest idealne rozwiązanie bo w glebie bardzo luźnej wyniki będą zaniżone, w glebie zbitej odczyty będą wyższe.
  • #7
    zgierzman
    Poziom 21  
    mattsk napisał:
    średni prąd około 10uA przy interwale pomiarów co 10 sekund


    Czy jest jakaś konkretna przyczyna dla której pomiar robiony jest tak często? Pomijając moment kiedy roślina jest podlewana, mierzone parametry zmieniają się bardzo wolno. Pomiar co 10, 30 a nawet i 60 minut powinien być wystarczający...

    Zapewne taka:
    mattsk napisał:
    3. Aplikacja na Androida
    Aplikacja wyświetla dane z wszystkich beaconów znajdujących się w zasięgu oraz wyświetla wszystkie mierzone parametry oraz dodatkowo wyświetla MAC adres beacona oraz siłę odebranego sygnału radiowego. Aplikacja napisana jest w Android Studio.


    Jak się domyślam ta aplikacja działa tylko na życzenie użytkownika, na jego telefonie. Nie ma żadnej jednostki zbierającej dane non-stop, aby wyświetlić je np. w formie wykresu. Zafiksowałem się na podobieństwie do różnych stacji pogodowych itp.

    A wiadomo, nikt nie będzie siedział z telefonem przez godzinę, żeby doczekać się na ramkę danych zawierającą parametry swojej roślinki ;-)
  • #8
    mattsk
    Poziom 12  
    arturavs napisał:
    mattsk napisał:
    Projekt raczej czysto demonstracyjny, raczej nie nadaje się do "profesjonalnego" monitorowania parametrów doniczki.

    Przydatne dla "hodowców" pewnej rzadko spotykanej, aczkolwiek bardzo poszukiwanej roślinki. :-)

    ;))

    TvWidget napisał:
    mattsk napisał:
    mierzy podstawowe parametry doniczki:
    - wilgotność gleby,

    Układ nie mierzy wilgotności gleby tylko jej rezystancję


    ...która odpowiada w jakiś sposób wilgotności. Przynajmniej w skrajnych punktach wyskalowałem czujnik - ziemia sucha w doniczce - 0%, podlana Ziemia 100%

    ADI-mistrzu napisał:
    Czujnik temperatury na końcu elektrody wtykanej do gleby...
    Za długo nie popracuje, albo skorodują piny albo go "utopimy" w trakcie podlewania roślinki.


    Czujnik można zalać kropelką jakiegoś kleju zalewy i nie będzie problemu.


    IS napisał:
    Nie wiem czy elektrody pokryte np. złotem nie byłyby lepsze. Może ktoś ma doświadczenia z pomiarem wilgotności gleby tanimi metodami bo sam jestem zainteresowany tematem.


    Miałem dwie wersje - z pozłacaniem ENIG i cynowane ołowiowe. Niestety po około pół roku obie elektrody uległy korozji. Więc ogólnie pomiar w ten sposób nie jest najlepszym pomysłem.

    josef napisał:
    Jak wyżej:
    1) czujnik nie jest wodoodporny
    2) czujnik mierzy rezystancję z nie wilgotność - po nawożeniu (szczególnie nawozami mineralnymi wodo-rozpuszczalnymi) będzie fałszował wyniki (i to sporo)

    Dlaczego czujniki tego typu ssą:
    https://www.youtube.com/watch?v=udmJyncDvw0

    Projektowanie czujników pojemnościowych:
    https://pdfs.semanticscholar.org/2b91/da341e9d65d052e9a4104f69081845d8d9c4.pdf
    https://digitalscholarship.unlv.edu/cgi/viewc....cgi?article=4052&context=thesesdissertations

    To i tak dalej nie jest idealne rozwiązanie bo w glebie bardzo luźnej wyniki będą zaniżone, w glebie zbitej odczyty będą wyższe.


    Ze wszystkim się zgadzam. Dzieki za linki ;) Jak będę robił następną wersję to zrobię sensor pojemnościowy.

    zgierzman napisał:
    mattsk napisał:
    średni prąd około 10uA przy interwale pomiarów co 10 sekund


    Czy jest jakaś konkretna przyczyna dla której pomiar robiony jest tak często? Pomijając moment kiedy roślina jest podlewana, mierzone parametry zmieniają się bardzo wolno. Pomiar co 10, 30 a nawet i 60 minut powinien być wystarczający...



    Są dwa powody:
    1. W specyfikacji Bluetooth LE można ustawić interwał pomiędzy paczkami advertising na max 10,24 sekundy - można oczywiście pokombinować i ustawić dowolny ten czas ale...
    2. Jak uruchamiam aplikację, żeby sprawdzić czy beacony działają i jaki jest stan doniczki, w obecnym układzie muszę czekać max 10 sekund. Gdybyśmy ustawili na np. 5 minut to w skrajnym przypadku, od uruchomienia aplikacji tyle czasu musielibyśmy czekać na pierwszy odebrany wynik.
  • #9
    TvWidget
    Poziom 33  
    Mylisz dwie sprawy. Okres wysyłania ramki rozgloszeniowej w BLE wg.standardu może wynosić maksymalnie 10.24 sek. Zwykle jest to 1.28 sek. Nie ma to nic wspólnego z okresem czasu co jaki dokonywany jest pomiar. Jeśli jego wynik jest przesyłany w ramce rozgłoszeniowej to treść tej ramki może być modyfikowana równie dobrze raz dziennie
    W opisie wspominałeś o notyfikacjach. Jeśli pomiary są przesyłane przez notyfikacje to jest to możliwe jedynie po nawiązaniu połączenia. W tym wypadku okres rozgłaszania nie jest istotny. Czujnik może przesyłać dane kiedy uzna to za stosowne.

    Poniżej zdjecie podobnych czujników z interfejsem BLE. Te dwa na dole mają elektrodę ze stali nierdzewnej o długości 15 i 30 cm. Zasilane są baterią litową 14250 (1/2AA 3.6V). W nich pomiar dokonywany jest co 1 min. . Wynik domyślnie wysyłany jest co 1.28 sek.
    Smart Flower Pot - beacon Bluetooth LE mierzący parametry doniczki
  • #10
    mattsk
    Poziom 12  
    To jest tylko kwestia implementacji w oprogramowaniu. Zrobiłem to tak, że przed każdym wysyłką danych jest wykonywany pomiar. Oczywiście można rozdzielić interwał pomiaru od interwału wysyłki danych.

    Jeżeli chodzi o notyfikacje..
    nie chodziło mi o notyfikacje w połączeniu Bluetooth LE ( to jest tylko Beacon - nie można się z nim połączyć ) ale o wywłowanie notyfikacji aktywności radiowej:

    W inicjalizacji:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    i handler:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    BTW. Prąd potrzebny na sam pomiar jest prawie pomijalny w stosunku do prądu potrzebne na bezprzewodową wysyłkę danych z mocą 4dBm.