ESP8266 wifi multiszenzor - újratöltve (Phoenix)
2019. március 07. írta: eNeS

ESP8266 wifi multiszenzor - újratöltve (Phoenix)

Valamikor réges-régen egy messzi.. no szóval nem tegnap volt, de már készítettem ESP segítségével DIY multiszenzort. Ennek újratervezése, és új házba helyezése lett jelen projekt, a hamvaiból újraéledő főnixmadár.

Első és legfontosabb különbség, hogy rájöttem arra, miszerint mozgásérzékelőt leginkább mozgásérzékelőből lehet készíteni. Mit jelent ez? Szereztem egy aránylag olcsó, mozgásérzékelős éjszakai irányfényt, szétkaptam és újrahasznosítottam a műanyag házát. Természetesen a választék igen széles, többet is kipróbáltam, mire ez végül elnyerte a tetszésemet. Volt ami képen ígéretesnek tűnt, de amikor megérkezett, az alakja miatt bebizonyosodott, hogy a térfogata kevés az általam kívánt eszközök számára, volt aminek a belső kialakítása nem volt jó, volt aminek a felfogatása, illetve a teljes gömb alakból adódóan a tápcsatlakozó igen hülyén nézett volna ki rajta.

Íme a győztes:

phoenix_1.jpg

No persze nem így nézett ki érkezés után, bár kívülről nem látszik sok eltérés az USB betápon, és a kissé idegenül ható DHT22-n kívül. 

Íme a szükséges eszközök listája és jelen áruk a nagy e-piacon:

Eszköz Bruttó ár
D1 Mini ESP8266 fejlesztői lap (*) 712 Ft
5x7cm protolap (*) 100 Ft
5V1A hálózati töltő, USB (*) 360 Ft
2m MicroUSB töltőkábel (*) 500 Ft
HC-SR501 (*) 230 Ft
RCWL-0516 (*) 200 Ft
16V 100uF elektrolit kondenzátor 10 Ft
10K ellenállás 2x30 Ft
microUSB DIP panel (*) 200 Ft
DHT22 (*) 750 Ft
4.7K ellenállás 10 Ft
BH1750 (*) 275 Ft
Piezo buzzer (*) 270 Ft
300 ohm ellenállás 10 Ft
WS2812 1-bit (*)  275 Ft
Donwei Motion Sensor (*)  750 Ft
Összesen:  4712 Ft

 

Elvi bekötési rajz:

phoenix_bekot.jpg

  

ESP lábkiosztás:

Láb cimke Alternatív megnevezés Rákötött eszköz
TX GPIO1/D10 -
RX GPIO3/D9 WS2812B DI láb
D1 GPIO5/SCL BH1750-SCL
D2 GPIO4/SDA BH1750-SDA
D3 GPIO0 -
D4 GPIO2 -
A0 TOUT -
D0 GPIO16/WAKE -
D5 GPIO14 SR501 OUT
D6 GPIO12 RCWL OUT
D7 GPIO13 DHT22 DATA
D8 GPIO15 Buzzer +

 

Az eredetileg "Donwei Motion Sensor Battery Powered Night Light" (0.6W) néven futó éjszakai irányfény 750-1200Ft közötti áron beszerezhető:

donwei.jpg

9x9 cm alapterületével kicsit szélesebb, mint a korábbi egyszerű fekete műszerdoboz, viszont egészen formatervezett kütyü. Szinte már sajnáltam szétszedni. :)
A tetején mit ad isten, pontosan akkora lencséjű mozgásérzékelő van, mint a HC-SR501, illetve az oldala félig átlátszó, így pl a fényérzékelő elrejthető mögé.

donwei_inside.jpg

Szétpattintva látható a panel a mozgásérzékelővel, és a mellé integrált LED világítás. Ezekre persze nincs szükségem, ezért kivettem, és eltettem későbbre. :) Az is egyértelművé vált, hogy az elemtartónak mennie kell, túl sok helyet foglal.

donwei_scrapped.jpg

A műanyag vastagabb volt, mint gondoltam, így küzdöttem vele egy sort, mire sikerült kivésnem az elemtartót, de megoldottam. Ezt követően némi tervezgetés után az új belső összeállt:

phoenix_base.jpg

És miután minden a helyére került: (bekötési rajz szerint)

phoenix_inside.jpg

Talán a fenti képet látva már érthető, hogy miért nincs középre igazítva a DHT22, illetve nyilván azért nem tudtam alulra tenni, mert a bejövő USB csatlakozónak, a radaros RCWL-nek és a forrasztásoknak az alján elég sok hely kellett. Felülre nem teszünk hőmérőt, mivel a meleg felfelé száll, így maradt valamelyik oldal.. első körben 90 fokkal elforgatva akartam felhelyezni, de az előlap görbületei, illetve az alappanel magassága miatt ennek beforrasztása elég lehetetlen feladattá vált, ezért maradtam a képen is látható, "fekvő" helyzetnél. Ha valaki ennél jobban el tudja helyezni, hajrá, mutassa. :)

No de, aki már olvasta korábban ezt a blogot nem fog meglepődni azon, hogy a firmware az ESPEasy lett!

espeasy_inside.png

ESPEasy eszközbeállítások:

phoenix_espeasy_dev.jpg

Az első két eszköz egyike a PIR, a másik a radaros mozgásérzékelő adatlábára van kötve, ezek 0 állapotban vannak alapból, amit mindkét esetben egy-egy 10k-s ellenállás segítségével GND-hez kötöttem, hogy ne lebegjen. Mozgás esetén 1-re vált az értékük. Ezeket a Rules szabályrendszer segítségével a 6. Dummy eszközben tárolt "State" nevű változóban összegzem, ha mindkettő szerint mozgás van, akkor a State értéke 1, ha mindkettő 0 értéket vesz fel, akkor a State értéke 0 vagyis nincs mozgás... ezt pedig MQTT-n továbbítom. (szoftveresen kombinált, digitális, WiFi-s mozgásérzékelő) A hőmérő és luxmérő beállítása egyszerű a korábbiak alapján. (annyit csaltam, hogy a BH1750 a félátlátszó burkolat mögé történő elhelyezés miatt kisebb értékeket ad vissza, nagyjából a felét gyors tesztek szerint, így 2-vel megszoroztam az általa adott Lux értéket) A hőmérő lineáris korrekciója is megadható Formula segítségével, ehhez egy kinevezett referencia-hőmérő szükséges a vizsgálni kívánt magasságba helyezve az adott helyiségben. A System Info eszközben az RSSI-nél az alábbi transzformációs formulát használtam, hogy a kapott érték Domoticz kompatibilis legyen: ((%value%+90)/5)+1

Az aránylag új eszköz a Neopixel LED, amit az előző cikkemben már bemutattam, használata egyszerű a hely és a tápigény miatt 1 db-os modul mellett döntöttem, ami a hangjelzés mellett tud információt adni tetszőleges RGB színekkel. (a buzzer ugye a GPIO-15re van kötve, mint kimenet, ehhez nem kell külön plugin, ha már egy Switchet használunk legalább, használata a tone és rtttl parancsokkal egyszerű ujjgyakorlat azok számára, akik már átrágták magukat a korábbi blogbejegyzéseken)

A LED használatára még konkrétan nincs felhasználási ötletem, de idővel biztosan lesz. A zümmögővel a jelenleg a bejárati ajtó nyitás/csukását jeleztetem vissza.

És akkor a végső, komplett, működő szabályrendszer:


on System#Boot do
 taskvalueset,6,1,0
 taskvalueset,6,2,0
 NeoPixel,1,0,0,0
 event,checkmotion
endon

on MQTT#Connected do
 event,checkmotion
endon

on pir#Switch do
 event,checkmotion
endon

on radar#Switch do
 event,checkmotion
endon

on checkmotion do
 if [pir#Switch]>0 and [radar#Switch]>0 and [motion#State]<1
  taskvalueset,6,1,1
  Publish domoticz/in,{"idx":55,"nvalue":1.00,"svalue":"On", "RSSI": [RSSI#RSSI]}
  endif
 if [pir#Switch]<1 and [radar#Switch]<1 and [motion#State]>0
  taskvalueset,6,1,0
  Publish domoticz/in,{"idx":55,"nvalue":0.00,"svalue":"Off", "RSSI": [RSSI#RSSI]}
 endif
endon

on playalert do
 TaskValueSet,6,3,%eventvalue%
 TaskValueSet,6,4,1
 timerSet 2,1
endon

on playsound do
 TaskValueSet,6,3,0
 TaskValueSet,6,4,%eventvalue%
 timerSet 2,1
endon

On Rules#Timer=2 do
  if  [motion#BSND]=1.00
   rtttl,15:d=4,o=6,b=140,8e,8c,8e,8c,8e,8c
  endif
  if  [motion#BSND]=2.00
   rtttl,15:d=4,o=5,b=100,32p,d,8c,32p,c
  endif
  if  [motion#BSND]=3.00
   rtttl,15:d=8,o=5,b=160,f#,f#,f#,d
  endif
  if  [motion#BREP]>0
   TaskValueSet,6,3,( [motion#BREP]-1)
   timerSet 2,15
  else
   TaskValueSet,6,4,0
  endif
EndOn

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr1814663081

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.