Az EX01 hőmérő továbbfejlesztése ez a kijelzővel és egy darab nyomógombbal szerelt szörnyeteg.
Már az eredeti projektben is jeleztem, hogy praktikus lehet egy kijelző, ha már hőmérőről van szó, gondoltam a frissen érkezett 7 szegmenses kijelző pont jó lenne erre a célra. Amint látszik, a méret megfelelő, annyi szépséghiba lehet, hogy a műanyag előlap domború kissé, míg a kijelző téglatest alakú, de nem vészes az eltérés. Funkcióban jelen megvalósítás annyit tud, hogy MQTT-n lejelenti egy központi szerver felé időközönként, hogy hány fok van, e mellett gombnyomásra meg is lehet jeleníteni, ha valaki kíváncsi rá - állandó jelleggel nem használom a kijelzőt, bár technikai akadálya nincsen. A TM1637 kijelzővezérlők általában DC5V tápfeszültségűek adatlap szerint, ennek ellenére tökéletesen működik 3.3V-os tápról járatva, és nem csak szerintem, az ESPEasy hivatalos leírása szerint is.
A szükséges anyagok jegyzéke:
Eszköz | Bruttó ár |
75 x 54 x 27mm DIY műanyag műszerdoboz, szellőzőnyílásokkal (*) | 176 Ft |
D1 Mini ESP8285/ESP8266 Development Board (*) | 883 Ft |
BMP280 I2C hőmérő szenzor (*) | 253 Ft |
1m microUSB kábel (*) | 205 Ft |
EU 5V1A fali töltő (*) | 205 Ft |
Nyomógomb 13mm | 10 Ft |
TM1637 0.36" 4-bit 7 szegmenses LED kijelző (*) | 400 Ft |
Összesen: | 2132 Ft |
A Bosch BMP280 egy I2C csatlakozású, állítólag +/-1 fok pontossággal rendelkező hőmérő. Igazából csak próbára szereztem be, semmilyen előnye nincs a Si7201/HTU21D-vel szemben, ez utóbbiakkal minden további nélkül kiváltható.
A BMP változatát elképesztően olcsón vesztegetik, viszont csak hőmérsékletet és légnyomást tud mérni, az ennek három-négyszeresébe kerülő BME változat már tud páratartalmat is mérni. Mivel a 4 digites 7 szegmenses kijelzőn aránylag kevés információt lehet megjeleníteni, a hőmérséklet mérésével megelégszem ennél a projektnél.
Belül az alkatrészeket a könnyű módszerrel, melegragasztóval fixáltam, és rövid jumper kábelekkel kötöttem össze minden szükséges pontot, valahogy így:
A 3V3 és GND csatlakozók elosztására csúnya módon 90 fokkal elforgatva forrasztottam be 3-3 tüskés csatlakozót, hogy minél kisebb helyen elférjen minden. Fent a kijelző hátulja látszik, balra lent a nyomógomb, jobbra lent a hőmérő, ez utóbbi természetesen oly módon, hogy lentről kaphasson levegőt. Előtérben pedig a D1 Mini, USB kábellel tápra csatlakoztatva.
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 | Hőmérő SCL |
D2 | GPIO4/SDA | Hőmérő SDA |
D3 | GPIO0 | Nyomógomb |
D4 | GPIO2 | - |
A0 | TOUT | - |
D0 | GPIO16/WAKE | - |
D5 | GPIO14 | TM1637 CLK |
D6 | GPIO12 | TM1637 DIO |
D7 | GPIO13 | - |
D8 | GPIO15 |
- |
Bekötési rajz:
Az ESPEasy beállítások:
Az ESPEasy a már korábban ismertetett módon, USB kábellel pl a pyflasher segítségével tölthető fel, méghozzá a TESTING vagy DEVELOPMENT bináris, mert ez tartalmazza a 7 szegmenses kijelző pluginját.
Az egyedi Rules szabálylista:
on System#Boot do
taskvalueset,5,1,1
timerSet,1,120
timerSet,3,120
event,displayon
endon
on MQTT#Connected do
taskrun,2
endon
on wifinosleep do
taskvalueset,5,1,0
endon
on wifisleep do
taskvalueset,5,1,1
timerSet,1,1
endon
on displayon do
taskvalueset,5,2,1
7don
7dt,[temp#Temperature]
endon
on displayoff do
taskvalueset,5,2,0
7doff
endon
on gomb#Switch do
if [glob#display]<1
event,displayon
timerSet,3,120
else
event,displayoff
endif
endon
on temp#Temperature do
if [glob#display]>0
7dt,[temp#Temperature]
endif
endon
on Rules#Timer=1 do
if [glob#sleep]=1
modemsleep,1
endif
timerset,2,60
endon
on Rules#Timer=2 do
modemsleep,0
timerset,1,60
endon
on Rules#Timer=3 do
event,displayoff
endon
Hogy a fantasztikus 80mA fogyasztását csökkentsem, beállítottam, hogy 1 perc működés után 1 percre kapcsolja ki a wifit a kütyü, ilyen állapotban 15mA-t fogyaszt, így elviekben 5V 48mA körüli átlagfogyasztás jön ki, ami durván 0,24W.
Persze ehhez kell a saját fejlesztésű WifiMan plugin, amit bárki lefordíthat forráskódból. :)
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.