Projekt 4: ESP8266 WiFi multiszenzor (David)
2017. november 22. írta: eNeS

Projekt 4: ESP8266 WiFi multiszenzor (David)

Már régóta érdekel az okosház témakör, de a végső lökést az adta meg, amikor találkoztam a Fibaro Motion Sensor 3 funkciós szenzorral (44mm átmérőjű gömb az egész)... rögtön tudtam, hogy nekem valami ilyesmi kell. A 20 ezer forintos árcédulája már annyira nem tetszett. Aztán amikor megláttam, hogy saját Z-Wave protokollal kommunikál, kizárólag a saját szerverével, ami nagyjából ötször ennyibe kerül, már inkább azon gondolkoztam, hogy tudnám saját magam reprodukálni ezt, lehetőleg szabványos (WiFi, MQTT), és nyílt forrású (ESPEasy, Domoticz) eszközökkel. Szegény ember vízzel főz...
Természetesen a saját megoldásom 3D nyomtató híján nem lehet ilyen dizájnos, és nem minden funkciójára van szükségem, például nem vágyom rá, hogy különböző színekben világítson vagy rezgéseket érzékeljen. Maradt a mozgás-, hő- és fényérzékelő funkció, amit az alábbiakban bemutatott eszközbe építettem. Mivel már van egy Góliátom, és ezt annál lényegesen kisebbnek terveztem, adta magát a Dávid kódnév a projektnek. :)

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

Eszköz Bruttó ár
NodeMCU ESP8266 fejlesztői lap (*) 850 Ft
5V1A hálózati töltő, USB (*) 360 Ft
2m MicroUSB töltőkábel (*) 380 Ft
SN74LVC1G08DBVRG4 két bemenetű logikai ÉS kapu 1.65-5.5V (*) 50 Ft
SOT23 -> DIP10 átalakító (*) 26 Ft
MiniPIR (*) 519 Ft
RCWL-0516 (*) 201 Ft
DHT22 (*) 649 Ft
BH1750 (*) 274 Ft
Snody univerzális infratartó konzol 323 Ft
46x50mm műanyag lap, 2mm vastag 10 Ft
82x52x35mm műanyag műszerdoboz (*) 263 Ft
1db 20mm átmérőjű kerek üvegbúra (*) 23 Ft
Összesen: 3928 Ft

 

Hogy ne áruljak zsákbamacskát, az eredmény így néz ki:

p4_05.jpg

*: a megjelölt tételek ebay-ről származnak, liciten, nagyobb mennyiség vásárlásakor akár jóval olcsóbban, Magyarországon pedig ennél jóval drágábban beszerezhetőek

Egyéb szükséges tételek: csavarok, anya, tipli, kábelek, ragasztópisztoly, forrasztópáka, fúró.

Miért éppen a NodeMCU fejlesztői lapot választottam, holott a D1 mini hossza ennek kétharmada?

  1. Kényelmes microUSB csatlakozás, programozáshoz és a modul táplálásához egyaránt
  2. A tüskéket eleve beforrasztják, nem kell sokat játszani a beüzemeléséhez
  3. Aránylag olcsó
  4. Van elég GPIO rajta a feladat ellátásához

nodemcu.jpg

Az SN74LVC1G08DBVRG4 nagyon jól csengő név.. mi ez?

A korábbi Raspberry projektekkel is kombináltan használtam a mozgásérzékelőket, vagyis az infra és a radar egyidejű jelzését vettem mozgásnak, viszont ott szoftveresen kombináltam ezeket, az ESP viszont relatív lassú eszköz, és az egyébként fenomenális ESPEasy-ben csak szűkre szabott szabálykészletből kell gazdálkodni, ezért inkább úgy döntöttem, hardveresen fogom közösíteni a mozgásérzékelők kimeneteit, erre kellett a hosszú nevű ÉS kapu, amivel mellesleg 1 GPIO-t megspóroltam az ESP-n.. igaz ennél a projektnél ez nem szignifikáns. Viszont amit elsőre nem sejtettem az a mérete: extrém kicsi, így szükség van egy SOT23-ról átalakító panelre, illetve biztos kézre a forrasztópákához.. vagy egy hozzáértő kollégára, akit meg lehet kérni, hogy ugyan csípje már oda az egymástól 0.95mm-re levő lábakat a kezelhetőbb 2.54mm-es kiosztásra, ahogy én tettem. :)

andgate.jpg

Bekötése és használata innentől már egyszerű:

Az A és B lábára kell kötni a két bemenetet, GND kell neki és a Vcc, ez utóbbit 3.3V-ról célszerű táplálni, mert az Y kimenet ennek értéket fogja felvenni, ha az A és B láb is logikai igaz, vagyis 1 (Vcc * 0,7V) értéket vesz fel. (megj: a Vcc 1,65-5.5V közti értékek közt mozoghat)

andgate_logic.jpg

Mi az a MiniPIR?

Igazából típusjelet nem találtam rajta, a HC-SR505-höz hasonló átmérőjű lencsével szerelt, de annál rövidebb panelű infra érzékelő. A kis műanyag doboz miatt esett rá a választásom, csak ezzel volt esélyem mindent bezsúfolni ekkora térfogatba. 5V-ról működik, a középső lábán ad jelet, ha mozgást észlel - ami 3V3 kompatibilis jelszint, tehát közvetlenül GPIO-ra köthető. (multiméterrel teszteltem azért előbb)

minipir.jpg

Minek a műanyaglap?

Ennek a két oldalára rögzítettem, amit lehetett, megfelelően átfúrva a kábelek átvezetéséhez valamint a négy rögzítőcsavarnak. A korábban használt műanyag csavarok és anyák helyett mindenhol melegragasztópisztolyt alkalmaztam.

Miért nem fekete színű AM2320-at használtam a fehér DHT22 helyett?

Sajnos nem érkezett még meg. :)

Elég is a bevezetésből, lássuk az elvi bekötési rajzot:

bekotes4.jpg

Elölnézet:

p4_02.jpg

Balra fent látszik az ÉS kapu, mellette a PIR helye kihagyva, mert az magára a fekete burkolatra lett ragasztva, középen a fényérzékelő, alul pedig a radar kapott helyet.

Hátulnézet:

p4_03.jpg

Erre az oldalra rögzítettem egyszerű módon a jumper kábelek műanyag lapra ragasztásával (már-már Shield hatást keltve) az ESP lapot, gondosan ügyelve, hogy felette elférjen a PIR kábele.

p4_01.jpg

Sajnos ennek hatására a mikroUSB csatlakozó annyira lentre került, hogy a doboz alját kellett átfúrnom a tápkábel bevezetéséhez, a helyett, hogy hátrafelé a Snody erre a célra szolgáló tartóján keresztül tudtam volna vezetni, vagy a doboz egyik sarkában levő gyárilag meglévő furatot használhattam volna. Így a DHT hőmérséklet szenzort is pár milliméterrel arrébb kellett költöztetnem az alján.

p4_04.jpg

Némi óvatos győzködés után sikerült becsavarozni a panelt.

Szoftver

Az USB kábellel gépre kötve máris mehet a firmware feltöltése, méghozzá az ESPEasy. (A fejlesztői panelek, ha érzékelik, hogy adatkábellel lettek számítógépre kötve, azonnal belépnek flash módba, ilyenkor nem üzemel a rajta levő firmware! Normál működéshez két eres USB tápkábel kell, vagy 5V tápegységre kell kötni direktben)
https://github.com/letscontrolit/ESPEasy/releases

A Windowson és Linuxon is működőképes PyFlasher segítségével felmásoljuk a megfelelő 4MB binárist.

nodemcu2.jpg

Sikeres felmásolás és újraindítás után (adatkábel cseréje tápkábelre) megjelenik egy ESP_xxx nevű WiFi AP, (alapjelszó configesp) amire felcsatlakozhatunk és megadhatjuk saját WiFi hálózatunk nevét és jelszavát, következő újraindítás után erre fog rácsatlakozni a kütyü, a router által kiadott DHCP listán megtalálható IP címen. Ezt az IP címet beütve a böngészőnkbe máris elérhető a menü és a további beállítások.

A Hardware menüben látható, hogy az I2C melyik lábakra van állítva (GPIO-4 és GPIO-5), ezúttal megfelelt számomra az alapértelmezés:

espeasy_hw.jpg

A Devices menüben kell beállítani az eszközöket az "Edit" gombra kattintva.. maximum 12 db-ot lehet felvenni (fenti balra-jobbra nyilakkal lehet váltani négyesével), az ESP chip szűkös memóriája miatt.

espeasy_dev.jpg

Mint látható a DHT22 a GPIO-14-re van kötve és közli is a hőmérsékletet valamint a páratartalmat, az ÉS kapu kimenete a GPIO-13-ra van kötve, ami mozgáskor "1" értéket vesz fel, normál "Switch input" eszköz. A BH1750 eszköz I2C buszra van kötve, amennyiben nem történt elkötés, ki tudjuk választani a listából és kis várakozás után már értéket is láthatunk mellette.
Amennyiben a Domoticz IDX-eket beállítottuk és a "Controllers" menüben is engedélyezve van a Domoticz MQTT, a megfelelő IP címre, akkor a beállított gyakorisággal ezek az adatok már meg is jelennek szerverünkön.

Összehasonlításképpen itt látható Dávid és Góliát:

p4_06.jpg

Mehet a forgatható Snody infratartó konzol a hátuljára, aztán irány végső helye, a fal.

A bejegyzés trackback címe:

http://bitekmindenhol.blog.hu/api/trackback/id/tr113345295

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.

Nincsenek hozzászólások.