A "Csináld Magad" projektek legelső és legnépszerűbb válfaja a "fogjunk egy xy vezérlőt és akasszunk rá egy hőmérőt" menetrend szerint szokott zajlani. Látványos és hasznosnak tűnő meló, ráadásul könnyű kivitelezni.
Több multiszenzoros projekten túl vagyok, ám most visszanyúltam a gyökerekhez és én is megcsináltam ezt az egyszerű dolgot, egy kis csavarral. Talán én vagyok az egyetlen büszke tulajdonosa az első WiFi-s powerbankkal egybeépített hőmérőnek. Na jó valószínűleg nem, hiszen nincs új a nap alatt.
A kijelzőről nehéz úgy jó képet csinálni, hogy ne hiányozzon pont a frissítés közben a kép egy része, ezen a 27.8 Celsius nagy része azért látható a középre integrált kijelzőn. Balra tőle a (végül) kívülre került hőmérő látható. A hőmérő lábainál alkalmazott melegragasztó nem a legesztétikusabb látvány, viszont sokkal szebb szerintem, mint ami a fedetlen lábainak véletlenül történő rövidre zárása után tárulna elém, így inkább ezt választottam.
Az ESPEasy segítségével megvalósított funkciók:
- hőmérséklet kijelzése
- WiFi jelerősség kijelzése
- akkumulátor feszültség kijelzése
Mire jó ez? Merülhet fel a kérdés egyesekben - nekem első körben a különböző helyekre és változó magasságokba fixen felszerelt hőmérők összehangolása miatt támadt rá igényem. De nem utolsó sorban mivel hordozható, fel lehet vágni vele ismerőseink előtt... és igen a powerbank funkciója is megmarad, és a százalékos kijelzés kicsit pontosabb, mint a 4 LED által nyújtott előrejelzés a várható kapacitásról.
Ami kimaradt, de még érdekes fejlesztési lehetőség lenne:
- integrált kézmozdulat-érzékelő (APDS 9960), dőlésszög és gyorsulás érzékelő, MP3 lejátszó
Tehát a felhasznált eszközök listája:
Eszköz | Bruttó ár |
USB 5V 2A 18650 Power Bank Battery Box Charger (*) | 560 Ft |
D1 Mini ESP8266 Development Board 4M (*) | 830 Ft |
100K ohmos ellenállás x1 | 20 Ft |
Samsung ICR18650-26FM 3.7V Li-Ion akku (*) | 2 x 1899 Ft |
AM2320 I2C hőmérő szenzor (*) | 425 Ft |
Bekapcsoló gomb / rocker switch (*) | 40 Ft |
Micro USB Male Plug Connectors Kit (*) | 40 Ft |
Piezoelectric Passive Buzzer 16x4mm (*) | 40 Ft |
300 ohmos ellenállás x1 | 10 Ft |
0.96" I2C OLED kijelző SSD1306 (*) | 706 Ft |
Összesen: | 6469 Ft |
Látható, hogy az ár több mint felét a két akku teszi ki... ezt nézhetjük úgy is, hogy lett egy elég drága 6500 Ft-os hőmérőnk, vagy úgy is, hogy 2111 Ft-ból felokosítottunk egy powerbankot. Minden attól függ, hogy félig üres a pohár, vagy félig tele a pohár. :)
Első körben LM75A hőmérővel próbálkoztam, de sajnos erős hatással volt rá a dobozon belül keletkező hő, ami ugyanúgy megzavarta volna a HTU21D-t is, így végül egy külső, saját házas AM2320-at szereltem fel a helyére, és ez úgy tűnik, bevált, nem növekszik a hőmérséklet folyamatosan a bekapcsolást követően.
Széthajtogatva látszik a belső lelkivilága:

A balra féloldalasan álló (töltő)panel a dobozhoz jár, egy sima USB csatlakozós powerbank, amire 4 db 18650 akku akasztható. (De azért 1 db-al is megy.) A szimpatikusabbik USB kimenetének 5V és GND lábára forrasztottam egy-egy vezetéket, az 5V-ot egy kapcsolón keresztül is megjárattam, és ezek mennek egy szerelhető microUSB csatlakozó segítségével a D1 Mini microUSB tápcsatlakozójára. A D1 Minin látható gyanús sárga színű cucc hőálló kapton szalag, hogy összeszerelt állapotban ne érjen össze a két USB csatlakozó fém részével egyik bemenete sem.
Miért kell a kapcsoló? Ez a powerbank olyan, mint a szolgálaton kívüli rendőr: ha látja, hogy szükség van rá, rögtön szolgálatba helyezi magát, vagyis ha terhelés van az USB lábán, azonnal kiadja az 5V-ot - szóval a ráforrasztott D1 Mini állandóan menne e nélkül a kapcsoló nélkül. Ugyanis a powerbank elején levő bekapcsoló gomb igazából pont csak be-kikapcsolásra nem alkalmas - rövid nyomásra megmutatja a töltöttség fokát a 4LED segítségével, hosszú nyomásra pedig a rá integrált LED-es "zseblámpát" kapcsolja ki-be, az USB-n rá kötött fogyasztókat nem kapcsolja! Továbbá megvan az a hátrányos tulajdonsága, hogy vagy töltést vesz fel, vagy töltést ad le, de egyszerre a kettőt nem tudja, vagyis nem szünetmentes tápegységnek készült. De 560 Ft-ért nem is vártam csodát.
A fedlapra melegragasztóval rögzített eszközök: középen a kijelző, jobbra tőle egy I2C hőmérő (időközben lecserélve egy külső AM2320-ra, de bekötés szempontjából ez lényegtelen), balra a kijelzőtől pedig egy piezo zümmer, nem azért, mintha nagyon kellene egy hőmérőbe, de úgy voltam vele, inkább legyen benne.
Ha a kijelzőt 3mm-el feljebb sikerült volna rögzítenem, illetve az előlapi nyílását átfúrnom, lehet elfért volna a harmadik 18650-es akku, így viszont éppen nem fér alá, ezért meg kell elégednem 2 db 18650-es használatával, ezen aki esetleg utánam kívánja csinálni az eljárást, még idejekorán segíthet, gondos méregetés után.
A kis méretű SSD1306 kijelző maga nagyon praktikus, könnyű használni: 4 jumper kábel kell neki mindössze (szépen feliratozottak), ebből 2 tápellátás, 2 pedig az I2C buszos kommunikációhoz kell. A 0.96" nem valami óriási méret, így bár 8 soros megjelenítés is beállítható rajta, az olvashatóság miatt csak egy sort jelenítek meg rajta egy időben, és váltogatja a képernyőket inkább. (egyébként I2C-s használható megjelenítőből 1.3" a legnagyobb, amit eddig láttam)
Elvi bekötési rajz:
Az ESP D7 GPIO és a zümmer közé egy egyszerű 300 ohmos áramkorlátozó ellenállás került.
Az analóg értékek mérésére szolgáló A0 és az akku B+ sarka közé egy 100 Kohmos ellenállás, ami azért kell, mert mint megtudtam a D1 mini fejlesztői lapkán eleve van egy feszültségosztó ellenálláspár, egy 100k és egy 220k ellenállás formájában, ami a 3.3V-ot 1V-ra csökkenti le, ezt méri az A0 láb. Ha a meglévő 220k-t növeljük egy darab kézileg hozzáadott 100k ellenállással, akkor már a 4.2V-os akkumulátorok feszültségszintjét is biztonsággal mérhetjük.
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 | OLED SCL, AM SCL |
D2 | GPIO4/SDA | OLED SDA, AM SDA |
D3 | GPIO0 | - |
D4 | GPIO2 | - |
A0 | TOUT | akku + |
D0 | GPIO16/WAKE | - |
D5 | GPIO14 | - |
D6 | GPIO12 | - |
D7 | GPIO13 | Buzzer + |
D8 | GPIO15 | - |
Talán nem árulok el nagy meglepetést azzal, hogy az ESPEasy firmware került fel a kütyüre. Méghozzá TESTING vagy DEVELOPMENT binárist kell feltöltenünk, ha AM2320-at szeretnénk használni.
Az ESPEasy eszközbeállításai az alábbiak:
Az SSD1306-ot pedig így állítottam be:
- Rotation: Rotated
- Lines per Frame: 1
- Line 1: B:[glob#P]%:[glob#V]V
- Line 2: [homero#Temperature]{D}C
- Line 3: WiFi [glob#W]%
- Interval: 6 sec
Az értékek formázását végző szabályrendszer (Rules) pedig a következő:
on System#Boot do
taskrun,2
taskrun,3
taskrun,4
endon
on analog#Value do
if [analog#Value]>739.4 and [analog#Value]<1024
TaskValueSet,5,1,(([analog#Value]-739.4)/2.846)
TaskValueSet,5,2,([analog#Value]/249.15)
endif
if [analog#Value]>1023
TaskValueSet,5,1,100
TaskValueSet,5,2,4.2
endif
if [analog#Value]<739.4
TaskValueSet,5,1,0
TaskValueSet,5,2,3
rtttl,13:d=4,o=5,b=125:16c#6,2p,16c#6,2p,16c#6,
endif
endon
on RSSI#RSSI do
TaskValueSet,5,3,(([RSSI#RSSI]+100)*2)
if [glob#W] > 200 or [glob#W]<0
TaskValueSet,5,3,0
endif
if [glob#W] > 100
TaskValueSet,5,3,100
endif
if [glob#W] <11 and [glob#W] > 1
WifiDisconnect
Delay,50
WifiConnect
endif
endon
on WiFi#ChangedAccesspoint do
taskrun,3
rtttl,13:d=4,o=5,b=225:8e6,8d6,f#,g#,8c#6,8b,d,e,8b,8a,c#,e,2a
endon
Természetesen az akku feszültségszintjét érdemes kalibrálni. Tesztjeim során, körülbelül 3V-nál kapcsolta le a powerbank a tápot, ekkor állt le az ESP8266, ez nagyjából a 739-es analóg értéknél következett be, az 1024 pedig a teli 4.2V (ami multiméterrel egyébként 4.11V körüli értéknek mutatkozott az ESP bekapcsolása után), minden mást arányosítani kell. Persze az egyenes arányosság nem igazán áll fenn az akku kapacitása és az éppen mért feszültség között, de jobb mérési módszert nem találtam, ez szerintem egy jó közelítést ad.
Minden szükséges támpontot megadtam, így akinek tetszett, utánozzon, csináljon jobbat, vagy irigykedjen. A többiek meg úgyse jutottak el a cikk végéig.
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.
Kommentezéshez lépj be, vagy regisztrálj! ‐ Belépés Facebookkal