Lampa z czujnikiem ruchu (PiR), akumulatorem, fotoogniwem ładnie oświetla ale nie ma WiFi co mnie stresowało.
Taka autonomiczna lampa aż się prosi o ESP, Tasmotę i Home Assistant-a. Przecież czasami trzeba sprawdzić kiedy nastąpiło włączenie, jaki jest stan akumulatora itd.
Więc rozebrałem i uzupełniłem o ESP32 z Tasmotą
Menu główne Tasmota
- Teraz mierzy napięcie akumulatora oraz napięcie z fotoogniw
- można sterować oświetleniem
- można uaktywnić lub wyłączyć PiR
- można badać kiedy PiR zadziałał
Wykorzystałem trzy istniejące druciki, które łączyły płytkę w lampie z płytką czujnika PiR
Zasilanie (czerwony) podłączyłem bezpośrednio do punktu 3,3 V
Biały sterujący przeciołem i od strony PiR zmieniłem na żółty i podłączyłem do GPIO19 a od strony Lampy do GPIO18
Ustawienia TASMOTA
- GPIO18 wprost steruje LEDem przewodem białym.
- GPIO19 oczekuje na sygnał z PiR przewodem żółtym
- GPIO20 to wirtualny przekaźnik, który Tasmota automatycznie ustawia według Switch_d a nam nie jest to potrzebne
- Stan GPIO14 (też wirtualny) decyduje o tym, czy PiR włączy LED czy nie.
- GPIO34 mierzy napięcie na baterii przez opornik 3,3M? i do masy też jest podłączone przez opornik 3,3M? (dzielnik 1/2)
- GPIO35 mierzy napięcie na fotoogniwie przez opornik 3,3M? i do masy też jest podłączone przez opornik 3,3M? (dzielnik 1/2)
Pomiary napięcia ESP32 wykonuje dwoma pinami GPIO34 i GPIO35 ale uwaga wybieramy [ ADC range ] nie [ADC input ] dla obydwu kanałów zastosowałem dzielnik napięcia z dwóch jednakowych oporników 3,3 M?
Kalibracja woltomierzy: AdcParam1 6,1900,2600,310,413 podobnie kanał drugi: AdcParam2 6,1900,2600,305,409
Polecenie, które blokuje domyślne powiązanie Switch -> Power SwitchMode1 15 inne ważne: TelePeriod ( nie ustawiaj na 300 ) DeepSleepTime
rule
Sterowanie, które fabrycznie było na sztywno: „PiR wykrył ruch to włączał światło” na ustawiony czas. Teraz PiR daje sygnał ale my decydujemy czy LED się ma włączyć czy nie. To osiągamy definiując za pomocą konsoli Tasmoty dwie reguły [ rule ]
- ON power3#state>=0 DO VAR1 %VALUE% ENDON
- ON POWER2#state>=0 DO IF (VAR1==1) POWER1 %VALUE% ENDIF ENDON
Rules dbające o akumulator 400cV => 4.00V
on tele-Analog#Range1<400 do if (MEM1!=300) MEM1 300; DeepSleepTime 300; POWER2 0 endif endon on tele-Analog#Range1>=400 do if (MEM1!=0) MEM1 0; DeepSleepTime 0 endif endon
Home Assistant
Pulpit sterujący to Homeassistant, ktory komunikuje się z ESP32 w lampie za pomocą MQTT.