Régen írtam már barkács-projektről, de persze ez nem azt jelenti, hogy csak pihengettem volna az elmúlt hónapokban, csak mással foglalatoskodtam. Ezúttal egy aránylag speciális szenzort kaptam kézhez sok szeretettel Kínából: egy AMG8833-at, ami 8x8-as mátrixban képes hőmérsékletadatokat reprezentálni és ezt tesztelgettem. Persze az vitán felül áll, hogy a 8x8 pixel nem túl sok mindenre elég, de némi lineáris interpolációval meglepően jó eredményeket lehet elérni egy 128x128 pixeles kijelzőn megjelenítve az eredményt. A különböző hőmérsékleteket a színskálára vetítve, egy kezdetleges hőkamerához juthatunk.
Természetesen nincs új a nap alatt, nem én találtam ki először, az alábbi projektekre alapoztam:
Az általam némileg leegyszerűsített eredmény pedig ez lett:
Íme a szükséges eszközök listája és jelen áruk a nagy e-piacon:
Eszköz | Bruttó ár |
D1 Mini ESP8266 fejlesztői lap (*) | 673 Ft |
4x6cm protolap, kétoldalas (*) | 120 Ft |
Z79 ABS (79x89x38) Műszerdoboz, univerzális (*) | 457 Ft |
AMG8833 hőszenzor 8x8 felbontással (*) | 9005 Ft |
Bekapcsoló gomb / rocker switch (*) | 42 Ft |
100K ohmos ellenállás x1 | 20 Ft |
Műanyag 18650 akkutartó, fekete, 1db-os (*) | 208 Ft |
LG ICR18650-MF1 2150mAh (*) | 960 Ft |
DC-DC feszültség Step-Up átalakító 2V-5V-ról 5V 2A (*) | 360 Ft |
ST7735 128x128 1.44" SPI TFT modul (*) | 1015 Ft |
Összesen: | 12860 Ft |
Az rögtön látható, hogy az ár nagy részét az AMG8833 teszi ki.. hát nem olcsó azt kell mondjam, alaphangon 30 dollár körül van. De viszonyításképpen egy belépő kategóriás 206x156 felbontású hőkamera 150 ezer forint körül vásárolható meg, egy közepes 320x200-as felbontású pedig már fél millió forint. Igaz a 8x8-as felbontással nem lehet csodákat tenni, leginkább csak demonstrációs célokra, vagy esetleg okosan megtervezett jelenlét-érzékelő szenzornak egy okosotthonba lehet alkalmas (ez további teszteket igényel még). A mozgásérzékelőkkel szemben ezzel a jelenlétet ugyanis akkor is detektálhatjuk, ha nem mozgunk.
Így néz ki a bestia:
Az alábbi bekötési ábra szerint készítettem el a hordozható "kamerát" a fenti szenzor segédletével:
Ugyan nem feltétlen kellene WiFi képes chip erre az egyszerű feladatra, viszont olcsósága az ESP-t igen praktikussá teszi. Az interpoláció miatt pedig a számítási kapacitás is lényeges szempont, a 70MHz-nél lassabb Arduino-kat nyugodtan el is lehet felejteni erre a célra: eszméletlenül lassúak. Az ESP8266 esetében, fordításkor 160MHz-re állítva az órajelét, és a TFT_eSPI megjelenítőkönyvtárat használva egészen folyamatos megjelenést kaphatunk. Persze az AMG maximum 10 fps-el tudja az eredményeit továbbítani, és az emberi szem olyan 15fps-től kezdve látja folyamatosnak a mozgást, így nem tökéletes az eredmény, de - szerény véleményem szerint - tűrhető.
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 | AMG SCL |
D2 | GPIO4/SDA | AMG SDA |
D3 | GPIO0 | |
D4 | GPIO2 | ST7735 DC |
GND | - | DC-DC átalakító OUT-, ST7735 GND, AMG GND |
5V | - | DC-DC átalakító OUT+ |
RST | - | ST7735 RES |
A0 | TOUT | Akku+ 100kOhm-on keresztül! |
D0 | GPIO16/WAKE | - |
D5 | GPIO14 | ST7735 SCL/SCK |
D6 | GPIO12 | - |
D7 | GPIO13 | ST7735 SDA/MOSI |
D8 | GPIO15 | ST7735 CS |
3V3 | - | ST7735 VCC, ST7735 BL, AMG VCC |
3D nyomtató híján egy kész műszerdobozt szereztem be, és a meglévő alkatrészeket igyekeztem optimálisan elhelyezni benne. Felülnézetben látszik maga az AMG, ami egyébként eltávolítható/cserélhető a későbbiekben, mivel egyéb célokra tervezem majd felhasználni. A sorkapocsra érkezik az akku + és -, a + előbb meg van járatva egy kapcsolón keresztül.
A kétoldalas zöld protolapon alul látható az ESP és az 1.44"-os TFT kijelző szépen egymás mellé illesztve. Ami nem látszik, az a TFT kijelző alatt, direktben a protolapra forrasztott DC-DC átalakító, ami az akkumulátor feszültségét 5V-ra alakítja fixen a D1 mini számára.
A többi eszköz a D1 mini 3V3 lábáról kapja a tápot, ahogy a bekötési rajz is mutatja. Nem igazán találtam megfelelő átalakítót, ami 3.3V kimenetet adna 3.0-4.2V bemenetből, így inkább az 5V step-up átalakítóra szavaztam, bár tisztában vagyok vele, hogy az akkukapacitásra nincs jótékony hatással, hogy így két feszültségátalakító is van a körben, amik veszteségei így összeadódnak.
Plusz funkció még egy 100 kOhmos ellenálláson keresztül az A0-ra kötött akku +. Ez a wifis hordozható hőmérő projektnél már ismertetett módon a D1 mini meglévő feszültségosztó ellenállásait kiegészítve biztosítja a biztonságos mérését az akkufeszültségnek.
Mi hiányzik a működéshez? Hát a működtető program! Mivel ez meglehetősen erőforrás-igényes projekt, és meglehetősen speciális, ezúttal nem az ESPEasy-ből indulok ki, hanem a PJRC fórumon fellelhető forrásból gyomláltam ki a megjelenítésből minden felesleget és a nyomógomb-kezelést. Viszont cserébe beemeltem pár alapvető WiFi funkciót: Hotspotként üzemel a kütyü, amihez csatlakozhatunk "ThermoCam" SSID-re, "12345678" jelszóval is akár.
Az ESP8266-ra készített bináris firmware és a forráskód is az alábbi helyről tölthető le:
https://github.com/enesbcs/ThermalCameraMod
Egy állóképet (BMP formátumú) láthatunk a webes felületen (172.217.28.1), és alapvető hőmérsékleti információkat, illetve lehetőség van OTA frissítésre is.
A D1 minire könnyű módszerrel egy USB kábel segítségével küldhetjük fel a firmwaret, akár a nodeMCU-pyflasher, akár esptool segítségével. (flashelés)
Leginkább csak ötleteket akartam adni ezzel a demó projekttel, nem késztermékként gondolok rá. Sok sikert a barkácsoláshoz! :)
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.