Még egy DIY projekt. Mert hőmérőből sosem elég.. a legutóbbi ESP alapú projektjeim gyakorlatilag mindegyike erről szólt, a mostani célfeladat is csak kicsit más, ezúttal a DHT22 páratartalom-mérő képességét használom fel.
Nevezhetjük proof-of-concept miniprojektnek is, mivel sem háza nincs, sem a DHT22 helye nincs véglegesítve, a csatlakoztatásához szükséges 4 tüske ugyan a helyén van, a szükséges kábelhossz megállapítása még várat magára, egyelőre közvetlenül került rácsatlakoztatásra a próba idejére.
A célfeladat az volt, hogy meghatározott páratartalom elérése esetén kapcsolja be a relét, majd ha elérte az alsó küszöböt, kapcsolja azt ki.
Ezt még egy egyszerű, diagnosztikai célú nyomógombbal egészítettem ki, és bár erős ingerem támadt egy buzzer beépítésére is, ám erőt vettem magamon és kihagytam, mivel a célok közt nem szerepelt.
A szükséges anyagok jegyzéke:
Eszköz | Bruttó ár |
NodeMCU v3 ESP8266 Development Board (*) | 768 Ft |
1m microUSB kábel (*) | 202 Ft |
EU 5V1A fali töltő (*) | 202 Ft |
Nyomógomb 13mm | 10 Ft |
3.3V-os 1 csatornás relémodul (*) | 680 Ft |
DHT22 (*) | 770 Ft |
4.7kohmos ellenállás x1 | 10 Ft |
5x7cm protolap (*) | 60 Ft |
Összesen: | 2702 Ft |
ESP lábkiosztás:
Láb cimke | Alternatív megnevezés | Rákötött eszköz |
TX | GPIO1/D10 | - |
RX | GPIO3/D9 | - |
D1 | GPIO5/SCL | - |
D2 | GPIO4/SDA | - |
D3 | GPIO0 | Nyomógomb |
D4 | GPIO2 | - |
A0 | TOUT | - |
D0 | GPIO16/WAKE | - |
D5 | GPIO14 | Relé IN |
D6 | GPIO12 | DHT22 Data |
D7 | GPIO13 | - |
D8 | GPIO15 |
- |
Bekötési rajz:
Természetesen adta magát a vezérléshez az ESPEasy firmware, a könnyű szkriptelhetőség miatt. A firmware-be ezúttal néhány saját készítésű plugint is fordítottam, nem mintha nem lehetne megicsinálni valamelyik kész bináris segítségével, az alapparancsokkal, csak kicsit több szabályt kellene írni hozzá. A DHT és a Dummy pluginok benne vannak az alap ESPEasy-ben, a P159 Pushbutton segítségével könnyen meg tudom különböztetni a rövid és hosszú gombnyomásokat, illetve a P160 OutputMulti segítségével nyilván tudom tartani a kimenet aktuális állapotát (0/1) illetve egy tiltó kifejezést is be tudok állítani, így csak akkor lehet engedélyezni a kimenetet, ha a Dummy-ban megadott [status#Tilt] értéke kisebb mint 1... vagyis 0. :) A P161 Switchboard csak annyit tesz, hogy a http://IP_CÍM/board címet megnyitva a böngészőben gombnyomással lehet váltogatni a kiválasztott típusok állapotát, ez esetben a kimenetet és a tiltó kifejezést. Szintén opcionális. A fordítás úgy történhet, hogy feltelepítjük a PlatformIO-t, letöltjük az ESPEasy forráskódját, belemásoljuk a kimásolt pluginokat, engedélyezzük a "PLUGIN_BUILD_TESTING"-et a globális fordítási beállítások között, ugye milyen egyszerű? De ha valakinek kell, szívesen mellékelek egy előre fordított binárist. :)
ESPEasy eszközlista:
Természetesen úgy is meg lehetne oldani egyszerűen, hogy a Dummy változó követné a kimenet állását (Dummy értékének módosítása: TASKVALUESET parancs), és ettől függően a GPIO paranccsal kapcsolgatná a kimenetet a homero#Hum vagyis a DHT22 százalékos páratartalom-mérő értéke alapján.
Ezt egy kicsit módosítva, a végleges kód a saját pluginekre az alábbi. (ezen OUTPUT állítja a kimenetet, a [status#Tilt] kifejezést a listán 2. Output-Multiple GPIO beállításain belül megadva, annak értékét minden állapotváltáskor figyeli)
Rules - szabályok:
on homero#Hum do
if [homero#Hum]>62 and [relep#Rele]<1
output,relep,0,1
endif
if [homero#Hum]<49 and [relep#Rele]>0
output,relep,0,0
endif
endon
on gomb#Shortpress do
output,relep,0
endon
on gomb#Longpress do
if [status#Tilt]>0
taskvalueset,3,1,0
else
taskvalueset,3,1,1
endif
endon
A bejegyzés trackback címe:
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.