Projekt 6: ESP8266 szenzor jelenlétérzékeléssel (Disturbia)

Az ESP8266 vonalat erősíti újabb projektem, melyben 230V-os vezérlés (ventilátor) is szerepet játszik, így praktikusnak tűnt saját tápegység bevonásával erősáramú betáplálású eszközt készíteni.

A következő "okosítandó" helyiség a mellékhelyiség lett, ahová a király is gyalog jár. A szükséges szenzorok megállapításakor eléggé lecsökkentette az eszközök körét, hogy ablak nincs rajta, így a fénymérőnek nincs sok értelme, a hőmérő sem tűnt annyira hasznosnak, viszont a mozgásra ki-bekapcsoló világítás, és az elszívó ventilátor annál inkább.
A jelenlétérzékelést azért nem bíztam kizárólag a mozgásérzékelőre. Valószínűleg nem én vagyok az egyetlen, aki járt már olyan látógatóközpont mosdóban, ahol mozgásra kapcsolt be a világítás, viszont, ha az ember kényelmesen elhelyezkedett, és felhagyott a mozgással, akkor simán kikapcsolta a rendszer a világítást... ezt elkerülendő terveztem be egy ultraszónikus távolságmérőt, mert láttam egy zseniális projektet, ahol az illető távolságmérővel állapította meg, hogy áll-e kocsi a garázsban vagy sem. Ám tisztában vagyok vele, hogy az ultraszónikus érzékelőt nagyban befolyásolhatják a tereptárgyak, ezért egy ajtónyitás érzékelőt is tettem a rendszerbe, ebből a három érzékelőből már nagy biztonsággal ki lehet következtetni, hogy van-e igény a világításra.

Íme a szükséges alkatrészek listája és jelen áruk a nagy e-piacon:

Eszköz Bruttó ár
Nodemcu V3 ESP-12E fejlesztői lap (*) 850 Ft
10cm USB-microUSB kábel (*) 199 Ft
HLK-PM01 5VDC 3W tápegység (*) 629 Ft
Biztosíték foglalat, NYÁK-ba forrasztható 5x20mm 65 Ft
Üvegcsöves biztosíték, N400mA, 250V AC, normál sebességű kioldás, 5x20mm 20 Ft
275V varisztor  95 Ft
Protolap 5x7 cm (*) 199 Ft
HC-SR501 mozgásérzékelő x2 (*) 2x 243 Ft
HC-SR04 ultraszónikus távolságmérő (*) 243 Ft
2.7K ellenállás 10 Ft
4.7K ellenállás 10 Ft
Szilárdtest relé modul 5V (*)  346 Ft
Piezo buzzer (*) 200 Ft
MC-38 nyitásérzékelő (ajtó/ablak) (*) 221 Ft
410C4 Kötődoboz IP56 100x100x50mm 462 Ft
CQR JB 720 műanyag kötődoboz 541 Ft
Snody univerzális infratartó konzol x 2 2x 323 Ft
Összesen: 5222 Ft


További járulékos költség:

Eszköz Bruttó ár
Kanlux EOL100 ventilátor (*) 2946 Ft

 

Egyéb szükséges tételek: kábelek, ragasztópisztoly, forrasztópáka, fúró, sorkapocs, érvéghüvely.

Elvi bekötési rajz:

p6_bekotesi.jpg

ESP lábkiosztás:

Láb cimke Alternatív megnevezés Rákötött eszköz
TX GPIO1/D10 -
RX GPIO3/D9 Buzzer + (kimenet)
D1 GPIO5/SCL külső SR501 OUT
D2 GPIO4/SDA Nyitásérzékelő
D3 GPIO0 -
D4 GPIO2 -
A0 TOUT -
D0 GPIO16/WAKE -
D5 GPIO14 SR04 Trigger lába
D6 GPIO12 SR04 Echo lába (feszültségosztón keresztül!! 5V-os egyébként!)
D7 GPIO13 beépített SR501 OUT
D8 GPIO15 Relé CH1 vezérlés (kimenet)

Az előző projektben a GPIO16-on volt a csipogó, viszont úgy minden bekapcsolásnál csippan egyet, amitől ezúttal eltekintenék, így a nem kifejezetten általános célú RX lábat definiáltam át kimenetté. Sajnos ez sem tökéletes, pl USB-n keresztüli firmware feltöltésnél minden kapott csomagnál a csipogó is zörög. De normál működés közben nincs probléma vele.

És akkor a gyakorlat:

Első lépésben jöhet a fúrás, hátul a kábeleknek kell beérkezniük, elöl kandikál majd ki az ultrahangos távolságmérő és a mozgásérzékelő, halványan arcot imitálva.

p6_0_doboz.jpg

Ezután a bekötési rajznak megfelelően elhelyezzük az egyes alkatrészeket, lehetőleg úgy, hogy minél távolabb legyenek az erős és gyengeáramú kábelek végei.
Mivel az 5V eszközök működtetésében a D1 Mini nem jeleskedik, egy NodeMCU lapot tettem a dobozba, abból is egy V3 került a kezem ügyébe.

p6_1_doboz.jpg

Pár szó a tápegységről: a HLK-PM01-ről egészen jó véleményeket találtam szerte a neten, viszont kiegészítésképpen javasolt egy biztosíték. Biztosítékból 200mA körüli kellhet, és normál sebességű - nekem csak 400as volt hirtelen normálból, de mivel 10A-t is bír rövid ideig az adatlapja szerint, ez nem tűnik nagy problémának. A gyors kioldású F200mA-es nem húzta sokáig, lehet az elé kötött ventillátor (19W) okozta, de a "lassú" 400-assal eddig nincs gond. A varisztor pedig a túlfeszültség ellen véd. Valamilyen érthetetlen oknál fogva az erősáramú AC lábai vannak közel egymáshoz (kb 5mm) a gyengeáramú lábai pedig távol, de azért a fenti elemek megléte nagyban megnyugtat. A PM01 gyengeáramú kimenetéről (5,08V-nak mértem egyébként)  egy kettévágott mikroUSB tápkábel segítségével kapja a tápot a NodeMCU lapka.

A fedőre ragasztott HC-SR04 távolságmérő két GPIO-t igényel, igazából teljesen 5V-os, de teljesen jól működik úgy, ha 3.3V-os jelszintet ad neki az ESP modul a Trigger lábon, viszont az ECHO lábán 5V-ot küld vissza az ESP felé, így ezen javaslom a fenti bekötési rajz szerinti 2.7K/4.7K feszültségosztó alkalmazását, ha nem akarjuk kinyírni az ESP modulunkat. Alatta a szokásos SR501 kapott helyet, ez adja majd a kezdőjelet a távolságmérés megkezdésére. Csak azért került a két szemet formáló SR04 alá, hogy meglegyen az orr is az archoz. :)

A jobbra látható sorkapcsokba az erősáramú betáp érkezik, illetve megy tovább a ventilátor felé (az SSR modul közreműködésével), a balra látható sorkapocs a gyengeáramú részé, 5V táp + GND és 2 db GPIO, az egyik a fal másik oldalára helyezett külső (kiherélt CQR kötésdobozba szerelt) mozgásérzékelő felé,

pir2_0.jpg

a másik az ajtóra szerelt nyitásérzékelő felé megy.

mc38.jpg

A konkrét telepítés helyén ez ilyesformán néz ki felszerelve, no azért némi kötegelő még kell a bejövő kábelek rendezéséhez.

p6_2_inplace.jpg

 

A fal másik oldalán látható a kizárólag SR501-et tartalmazó CQR kötésdoboz:

pir2_1.jpg

Szoftver

Természetesen a mindenre is jó ESPEasy került fel a D1 Mini-re. Az elérhető 12 darab eszközhelyből 8-at felhasználtam (kettő nem szükséges, lekapcsolt a tízből), ebből egy Dummy változó, globális változónak a szabályok számára.

p6_espe.jpg

A fenti elnevezéseket használó működtető kód a Rules-ba az alábbi:


On System#Boot do
 TaskValueSet,8,1,0
 Publish domoticz/in,{"idx":74,"nvalue":0.00,"svalue":"Off"}
 gpio,15,0
 gpio,3,0
endon

on pir1#Switch>0 do
 if [GLOBVAR#presence]<1
  Publish domoticz/in,{"idx":74,"nvalue":1.00,"svalue":"On"}
  TaskValueSet,8,1,1
  TaskValueSet,8,2,0
  timerset 1,10
 endif
endon

on rules#timer=1 do
 if [GLOBVAR#presence]>0
  taskrun,2
  timerset 1,10
 endif
endon

on dist#Distance>121 do
 if [GLOBVAR#presence]>0
  event,checkpres
 endif
endon

on checkpres do
 if [GLOBVAR#warncounter]>1
  Publish domoticz/in,{"idx":74,"nvalue":0.00,"svalue":"Off"}
  TaskValueSet,8,1,0
  TaskValueSet,8,2,0
  timerset 1,0
 else
  TaskValueSet,8,2,([GLOBVAR#warncounter]+1)
  tone,3,1000,100
 endif
endon

on System#WifiState=0 do
  timerSet,2,10
endon

On Rules#Timer=2 do 
 If [wifiman#Connected] = 0
  gpio,15,0
  gpio,3,0
  reboot
 endif
 endon

A "Publish" parancsok a 74-es Domoticz IDX-re jelzik a foglaltsági állapotot a mért távolság függvényében, ez nálam 121 cm-ben normalizálódott, de a felszerelés helyétől függ. (érdemes szerintem mennyezetre telepíteni és közvetlenül lefelé fordítani, de a lámpa miatt nekem nem igazán fért oda, így oldalfalra, rézsút fordítva próbáltam optimális szögbe fordítani, hogy a lehető legkevesebb dolog zavarja a mérést. (nem egyszerű)
Amikor mozgás van, engedélyezi a jelenlét ellenőrzést 10 másodpercenként, ilyen időközönként végeztet az 1-es timer segítségével távolságméréseket. Ha a távolság nagyobb lesz, mint 121 cm, akkor kiküldi, hogy nincs jelen senki, és átbillenti a presence állapotát, ezzel jelezve, hogy nincs szükség további mérésekre. Extraként két hibát enged, ilyenkor csippan egy rövidet, ha nem érzékel jelenlévőt. Ha változatlanul nem érzékel senkit, akkor továbbítja a vége jelet.

A végén a System#WifiState és a Rules#Timer=2 csak arra szolgál, hogyha 10 másodpercig nincs wifi kapcsolat, akkor újraindítja magát, mert ha elfogy a memória - és a newping könyvtárat használva fordításra, ami az SR04 mérési eredményeit pontosítja biztosan előfordul - akkor nem lehet elérni a webes felületet. Alapesetben az a kódrész nem csinál semmit. De a WiFiMan plugin nincs is benne az alap ESPEasy binárisban, saját fejlesztés. :)

 Az ESPEasy bináris (4M flash-hez, newPing könyvtárral) igény esetén letölhető innen.

A bejegyzés trackback címe:

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

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.

Támogatók:
okosotthon.jpg
allterco.jpg

Utolsó kommentek

  • szenorb: Hello. Bekötöttem 12V-ra , a bemetére egy mozgás érzékelőt kötöttem. Szépen kapcsol a relé a késle... (2023.06.14. 06:48) Shelly okosrelé (Shelly1)
  • Melanoheliophobia: Üdv! Kb. 2 éve vásároltam két ugyanilyen okos izzót. Sajnos az egyik még garancia idő alatt eltávo... (2023.05.03. 16:50) Shelly Vintage okosizzó
  • eNeS: Lehetséges, bár az ESP8266-ot lassan ideje elfelejteni, ha nem helyi hálózatra akarsz vele forgalm... (2023.04.02. 08:43) Tasmota szkriptek
  • eNeS: @tomih: Thonnyban rebootot nyomva nekem se megy az NTP. De mikor lekapcsoltam a Thonnyt és rebooto... (2023.04.02. 08:40) Raspberry Pico és a LAN (W5100S-EVB-Pico)
  • krump_lee: Kedves eNeS! ESP8266 tasmota-val szenvedek, hiemq kapcsolat sehogy nem jön össze, sehol nem talál... (2023.04.02. 08:31) Tasmota szkriptek
  • Utolsó 20

Címkék

433mhz (12) alkatrész (22) alternatív kapcsoló (2) amg8833 (1) analóg (2) android (1) arduinoeasy (5) audio (1) automatizálás (3) bemenet (3) bk7231n (1) ble (1) blitzwolf (4) bluetooth (9) bridge (2) camhi (2) csináld magad (22) dimmer (1) diy (28) do-it-yourself (27) domoticz (11) ds18b20 (1) ebay (3) érintő (2) érintőkapcsoló (7) érzékelő (11) esp-01 (2) esp32 (11) esp8266 (21) espeasy (2) espurna (1) esp projekt (18) Eview7 (1) ewelink (1) feldolgozó (1) felhő (1) fényérzékelő (1) firmware (7) flame detector (1) fogyasztásmérő (5) ftdi (1) füstérzékelő (1) gázérzékelő (1) gpio (1) hang (4) hangjelző (1) hőmérséklet (22) https (1) ikea (1) impulzus relé (1) izzó (2) javascript (1) jelenlétérzékelő (3) kamera (18) keresztkapcsoló (1) kézmozdulat (1) kijelző (3) kimenet (21) konnektor (8) lan (9) lángérzékelő (2) led (3) linux (4) logic level converter (1) lua (1) lux (1) maple mini (2) mcu (3) micropython (1) mikrovezérlő (2) milkv (1) mobil (1) mosfet (1) mozgás (5) mpyeasy (4) mq-2 (2) mqtt (3) működtető rendszer (5) multiroom (1) nedvesség (1) neo (1) neopixel (1) Node-RED (1) nvr (4) nyitás (7) okosház (4) okosizzó (3) okosotthon (8) oled (1) onvif (8) openbeken (1) opencv (1) openwrt (4) orange pi (4) páratartalom (6) php (1) pico (1) pi pico (2) poe (1) programozás (9) projekt (25) proximity olvasó (1) python (2) raspberry (14) raspberry projekt (6) raspbian (1) reed (1) relé (27) rf (2) rgb (6) rock pi (1) rögzítő (2) rp2 (1) rpieasy (1) rtc (1) shelly (24) smartwise (1) solid state relay (1) sonoff (20) SonOTA (1) soros (1) ssl (1) ssr (1) stm32 (4) szenzor (11) szilárdtest relé (1) szintillesztő (2) sziréna (1) szkript (3) szünetmentesítés (4) t1 (1) tasmota (8) távirányító (3) Telegram (1) termékteszt (85) termosztát (2) touch (2) ups (5) usb (7) usb hub (1) valós idejű óra (1) vezérlések (20) vezérlő (5) világítás (5) villanykapcsoló (12) webkamera (1) wiegand (1) wifi (32) ws2812 (1) xiaomi (5) xm (4) xmeye (4) yoosee (1) zigbee (16) zwave (3) Címkefelhő
süti beállítások módosítása