Lampa druga wersja

Tania mocna lampa z czujnikiem ruchu (PiR), akumulatorem, fotoogniwem ładnie oświetla ale nie ma komunikacji WiFi więc uzupełniłem ten brak. Wersja druga została wzbogacona o czujnik promieniowania ultrafioletowego.

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. Jasność i ultra fiolet
  • 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 od strony PiR 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)
  • ADC Range 3 mierzy jasność z fotodiody i wymaga „odwrotnej” kalibracji bo sygnał się zwiększa kiedy robi się ciemniej
  • ADC4 mierzy UV ze specjalnego modułu UV

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?. Pomiar jasności jest wprost z fotodiody na pin 33 a ultrafiolet jest mierzony na styku 39 (GPIO39) wprost z modułu pomiaru UV.

240nm-370nm Ultraviolet Intensity Sensor.

Kalibracja woltomierzy: AdcParam1 6,1900,2600,310,413
podobnie kanał drugi: AdcParam2 6,1900,2600,305,409
pomiar jasności: AdcParam3 6,4000,100,0,999
pomiar ultrafioletu UV: AdcParam4 6,0,1000,0,100
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.