Projekt 9: WiFi-s hordozható hőmérő
2018. május 23. írta: eNeS

Projekt 9: WiFi-s hordozható hőmérő

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. wifithermo_2.jpg

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:

wifithermo_1.jpg

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)

ssd1306.jpg

Elvi bekötési rajz:

p9_bekotesi.jpg

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:

p9_devices.jpg

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:

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

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.