Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wybór środowiska dla czujników na ESP8266 w sieci domowej.

abyss 15 Sty 2017 16:09 1785 3
  • #1 15 Sty 2017 16:09
    abyss
    Poziom 14  

    Taki projekt na zimowe wieczory - by nadal być aktywnym intelektualnie w drugiej połówce życia, a jednocześnie nie pchać się w tym temacie w poważną naukę i zawodowstwo. W elektronice praktycznej nie siedzę od bardzo dawna - tyle, że znam podstawy.

    Zastosowanie:
    Chcę w domu i okolicy umieścić trochę czujników. Różnych - od zamknięcia drzwi i okien, przez sprawdzenie, czy pies albo kot śpi w budzie aż do tego, czy mi ktoś nie łazi "za stodołą" albo czy w zbiorniku na wodę nie zaczyna się robić pusto ;). Mam CCTV ale to nie to i nocne oświetlenie IR to sporo energii - na bateriach nie pójdzie. Docelowo czujniki mają pracować na Li-Ion 18650 z DC-DC stepdown i ESP8266 który będzie wybudzany z deep-sleep sygnałem z ciągle działającego czujnika - bo ten bierze około 0.1mA .

    Stan aktualny:
    W tej chwili ESP8266-01 komunikuje się poprawnie komendami AT poprzez FTDI232 (realterm @ Windows 7), jest nawiązane połączenie z AP, mogę zmieniać IP etc. Moduł NIE był update'owany, kupiłem 3 sztuki do testów. Wybrany, jeszcze nie podpięty sensor zasilam także 3.3V.

    Chcę zmianę stanu czujnika rozpoznać (i/lub aktywować ESP przez GPIO15), wysłać wiadomość przez LAN na RPi i uspić moduł do kolejnego wybudzenia. Na Raspberry-Pi obrobić (pojęcia nie mam czym i jak niestety) i wygenerować odpowiedź - albo w postaci fizycznego włączenia np. "lampki alarmowej" i dzwonka, albo w postaci polecenia wykonawczego dla innego ESP (np. uruchomienie oświetlenia, aktywowanie odblokowania drzwiczek dla kota jeżeli użyto w ciągu ostatnich 30s RFID na czujce etc). Mam kiepsko ze stabilnością połączenia WAN - może tylko jako zdalny "podgląd" zdarzeń, dlatego wszystkie "serwisy" odpadają, dlatego muszę myśleć o lokalnym rozwiązaniu. Widziałem wątek o "gniazdkach" - ale tam ktoś chciał to robić komercyjnie, miał doświadczenie i nie miał tych wątpliwości co moje. W necie jest masa rożnych tutoriali - ale są totalnie pomieszane i zwykle nieaktualne - tak co do treści jak i (wygasłych) linków i niestety dla mnie najczęściej odwołują się do serwisów cloud które u mnie odpadają.

    Wątpliwości i pytania:
    Mam problem z tym, jakie środowisko wybrać. Wiem, że dla ESP8266 są dostępne: C, Phyton, LUA, Basic oraz Arduino
    Żadnego z tych języków nie znam, 30 lat temu pisałem sobie proste narzędzia w BASIC'u na ZX Spectrum, bardzo skromnie programowałem w assemblerze Z80 - niestety to było dawno i w międzyczasie zupełnie nie używałem języków programowania. Z jednej strony dwa ostatnie są chyba najprostsze - z drugiej strony domyślam się, że i Arduino (IDE?) i Basic ze względu na kompilator/interpreter mogą niepotrzebnie obciążać energetycznie moduł ESP. Dochodzi też kwestia dostępności tutoriali i pytanie - które update'y i czym najlepiej wgrywać? Niestety nie jest to dla mnie czytelne - to od czasu pojawienia się 8266 mocno się pozmieniało i sprawia wrażenie, że część informacji jest przedawniona. Nie śledząc tego do początku gubię się w tej masie treści i nie wiem, której szukać.
    I do tego trzeba by dopasować "drugą stronę" - czyli jakiś serwer z interfejsem www (R-Pi ?) który te zdarzenia obsłuży i "odpowie". Tu zupełnie nie mam pomysłu - może są jakieś "gotowce" LAN'owe?

    Wiem, że dużo naskrobałem i nikt za mnie decyzji nie podejmie - ale może przynajmniej skieruje na właściwe tory.

  • Pomocny post
    #2 15 Sty 2017 16:31
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zacznijmy od kończa, czyli od platformy. Jak rozumiem, chcesz mieć system rozproszonych cuzjników zasilanych bateryjne, które mogą się komunikować z serwerem. Jeśli tak, to jest poważny problem. ESP w czasie działania bierze sporo energii, nawet 200-300 mA. Bateria długo nie pociągnie. Koleny problem to temperatury - LiIon nie za bardzo działają w niskich temperaturach. Poza tym większość ma spore samorozładowanie i po parunastu tygodniach aku może się rozładować sam. Oczywiście można kupić aku mogące pracować w niskch temperaturach, oparte na innej chemii - np. LiFePO4, ale to i tak nie rozwiąże problemu poboru prądu. Stąd też do takich celów wymyślono ZigBee, które pobierają mikrowaty i mogą działać na bateriach latami. Niestety cena zdecydowanie wyższa.

  • #3 15 Sty 2017 22:37
    abyss
    Poziom 14  

    Zasilanie:

    tmf napisał:
    problem to temperatury - LiIon nie za bardzo działają w niskich temperaturach.
    Tu nie mam dużego problemu - mieszkam w Irlandii. Robię niemal ciągły - bo co 10 min pomiar temperatury i w zeszłym roku miałem ~10 zdarzeń(!) - czyli mniej niż 2 godziny w roku z temperaturą poniżej 0°C mierzoną na wysokości rzędu 4 metrów. Przy ziemi jest chłodniej, ale bez sprawdzenia w praktyce nie da się łatwo oszacować na ile, śnieg czy lód w zasadzie się nie pojawia - mieszkam niedaleko od oceanu.
    Gdybym użył popularnych 18650 to stosując regulator HT7333 (średnio około 0.42PLN za szt. na ali) mam spadek napięcia zasilania 150mV po regulatorze - do potrzebnej wartości z zakresu 3.2-3.4V, sam regulator używa typowo 4µA w "uśpieniu", a przykładowy sensor PIR HCSR501 (zasilana "w środek płytki" 3.3V, czyli pomijając jej własny regulator 7133) - z pewnością poniżej 50µA. Jeżeli jako sensor byłby tylko kontaktron - to już zero. ESP8266 w deep-sleep - podobno około 15uA - czyli do rzędu 70µA w sumie w uśpieniu i z 70mA w okresach gdy się obudzi i komunikuje z AP (tyle na roboczo zmierzyłem, ale bez hulającego programu). Powiedzmy, że wybudzenie i komunikacja to 20s. A to może być u mnie średnio 1 zdarzenie/na godzinę czyli na dobę 24*20s=480s=8min=0.13h na dobę, czyli układ "skonsumuje" około 0.13h*70mA=9mAh dziennie+te "drobiazgi" rzędu 2mAh w uśpieniu. Nawet, jeżeli będzie to 2-3 razy więcej to i tak będzie akceptowalne. Wilgoć i samorozładowanie - to bardziej prawdopodobna przyczyna faktycznych kłopotów.
    tmf napisał:
    chcesz mieć system rozproszonych czujników zasilanych bateryjne, które mogą się komunikować z serwerem. Jeśli tak, to jest poważny problem. ESP w czasie działania bierze sporo energii, nawet 200-300 mA. Bateria długo nie pociągnie.
    Chciałem wybudzać czujki tylko w momentach gdy pojawia się zdarzenie - np. zadziała kontaktron w drzwiach, albo PIR wystawi H. Czyli każdy ESP kontaktuje się z AP w domu. Nie myślałem o ciągle działającej sieci mesh z czujników, bo to faktycznie było by zabójcze dla baterii. I zdecydowanie w tej chwili poza moim zakresem wiedzy.
    Wybudzanie:
    Komunikację chcę rozwiązać czymś zbliżonym do którychś z pomysłów pokazanych przez Andreasa Spiessa https://www.youtube.com/channel/UCu7_D0o48KbfhpEohoP7YSQ to jego kanał - szczególnie w #101 @ 2:50-5:10. Stosuje on pojawienie się napięcia na włączniku jako "budzik" systemu - następuje podtrzymanie zasilania za pomocą MOS-FET, komunikacja i po wykonaniu zadania zaśnięcie układu aż do kolejnego zdarzenia. To było by idealne - nie sądzę, bym miał bardzo dużo zdarzeń - powiedzmy z średnio z jedno na godzinę. W #58 wspomina także o sketch'u który informuje o konieczności wymiany akumulatora - co może być przydatne.

    Jednak na razie jako, że mam już na stole komunikujący się ESP8266-01 (czyli najprostszy, niebieski bez podpiętych wielu GPIO do budzenia - choć wiem, że się da polutować) chcę skupić się na tym, by wybrać jakieś środowisko w którym zacznę coś kombinować programowo z faktyczną komunikacją i trochę "obyć się" z chipem. Może byłby w stanie zapisywać kolejno zdarzenia w jakimś pliku na dysku sieciowym - mam w routerze do internetu działający "dysk USB" z sambą, ftp, możliwość podpięcia do NAS.

  • Pomocny post
    #4 19 Sty 2017 17:31
    avrkwiat
    Poziom 8  

    Do ESP8266 masz kilka firmWare'ów. Jak nie chcesz programować to chyba ten ESP Easy jest najprostszy w obsłudze, bo jest konfigurowalny ze strony internetowej. Ale niestety sam go nie testowałem. Wiem, że ludzie konfigurują go i podpinają do RPI za pomocą tzw Demoicz. Nigdy tego nie robiłem, bo jestem osobą która potrafi programować i nie bawi się w jakieś otwieranie drzwi na około.

    Ale jakbyś się jednak skusił na programowanie i większą wiedzę na temat procesorów i ESP, to masz tu moje filmy z darmowymi kursami:

    Filmy dotyczące ESP wersji 12 (aktualnie najnowsza, później będzie zastąpiona wersją 32):
    https://www.youtube.com/playlist?list=PLZQKTfr7_vvQcrrFVsnXTmXIBSDS9o1e2
    Masz tam wszytko na konkretnym firmware. Obsługa komend AT, jak wgrać firmaware, jak napisać program na desktopa, stronę www,, aplikację mobilna i pewnie w weekend pokaże jak odebrać to przez procka Atmege16.

    Jak chcesz zacząć programować procesory, to tu masz listę z procesorów AVR (atmega16) i arm (stm32f4xx):
    https://www.youtube.com/playlist?list=PLZQKTfr7_vvQ32WG-JeBtw8Uq6G39n3mY

    Jak chcesz kurs C, to masz tu:
    https://www.youtube.com/playlist?list=PLZQKTfr7_vvT7q8fuKLAJn_QN11ffyR3b

    Podstawy elektroniki tu:
    https://www.youtube.com/playlist?list=PLZQKTfr7_vvRfyFuxuVbj3hGok2l7toAy

    Mam nadzieje, że pomogłem. Powodzenia na Emigracji ;)
    Ja aktualnie zmieniłem miejsce zamieszkania/ pracę i nie mam co robić weekendami, więc kręcę kursy video, co jakiś czas pojawiają się nowe.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME