Tartalomjegyzék:
- 1. lépés: Szerezze be az összes alkatrészt
- 2. lépés: Az ESP32 kártya
- 3. lépés: 2,8 hüvelykes TFT kijelző Arduino és ESP32 készülékekhez
- 4. lépés: A kijelző csatlakoztatása
- 5. lépés: A projekt kódja
- 6. lépés: Végső gondolatok és fejlesztések
Videó: ESP32 Xiaomi Hack - Vezeték nélküli adatgyűjtés: 6 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Kedves barátaink, üdvözöljük egy másik Instructable -ban! Ma megtanuljuk, hogyan szerezhetjük be azokat az adatokat, amelyeket ez a Xiaomi hőmérséklet- és páratartalom -monitor továbbít az ESP32 kártya Bluetooth funkciójának használatával.
Mint látható, ESP32 kártyát és 2,8 hüvelykes színes TFT kijelzőt használok. A kijelzőn a hőmérsékletet és a páratartalmat jelenítjük meg. A jó dolog az, hogy nem csatlakoztattam semmilyen érzékelőt az ESP32 kártyához. A hőmérsékletet és a páratartalmat vezeték nélkül kapom ettől a Xiaomi hőmérséklet- és páratartalom -figyelőtől. Milyen klassz ez! A Xiaomi készülék kijelzője másodpercenként frissül, de az ESP32 kártyához csatlakoztatott kijelzőt 10 másodpercenként frissítem, hogy a Xiaomi eszköz energiatakarékos legyen.
Ez a hűvös Xiaomi hőmérséklet- és páratartalom -érzékelő kijelzi a hőmérsékletet és a páratartalmat az LCD -kijelzőjén, és továbbítja az adatokat más Xiaomi eszközökhöz vagy alkalmazásokhoz a Bluetooth protokoll használatával. Az eszközök egyetlen AAA elemet használnak, és mivel kereskedelmi termékről van szó, az eszköz élettartama kiváló. Hónapokig tart egyetlen AAA elemmel, amit nem tudunk elérni barkácsprojektjeinkkel. Néhány héttel ezelőtt felfedeztem, hogy néhány okos fickónak sikerült megváltoztatnia azt a protokollt, amelyet a Xiaomi használ az adatok érzékelőből történő továbbítására, és sikerült ezeket az adatokat egy ESP32 kártya segítségével beszerezni. Szóval kipróbáltam, és ahogy látod működik!
1. lépés: Szerezze be az összes alkatrészt
Most nézzük meg, hogyan építsük fel ezt a projektet. Szükségünk van egy ESP32 kártyára, egy 2,8 hüvelykes ILI9341 kijelzőre, a Xiaomi hőmérséklet- és páratartalom -érzékelőre, egy kenyérlapra és néhány vezetékre.
Íme néhány link azokra az alkatrészekre, amelyeket ebben az utasításban fogok használni.
- ESP32 ▶
- 2,8 "Kijelző ▶
- Xiaomi szenzor ▶
- Breadboard ▶
- Vezetékek ▶
- USB -mérő ▶
- Powerbank ▶
2. lépés: Az ESP32 kártya
Ha még nem ismerné, az ESP32 chip a népszerű ESP8266 chip utódja, amelyet a múltban sokszor használtunk. Az ESP32 egy vadállat! Két 32 processzormagot kínál, amelyek 160 MHz -en működnek, hatalmas mennyiségű memóriát, WiFi -t, Bluetooth -ot és sok más funkciót kínál, körülbelül 7 dollár költséggel! Elképesztő dolgok!
Kérjük, nézze meg a részletes áttekintést, amelyet erre a táblára készítettem. Csatoltam a videót ehhez az Instructable -hez. Segít megérteni, hogy ez a chip miért változtatja meg örökre a dolgok elkészítésének módját! Az egyik legizgalmasabb dolog az ESP32-ben az, hogy annak ellenére, hogy annyira erős, mély alvó üzemmódot kínál, amely mindössze 10μΑs áramot igényel. Ez teszi az ESP32 -t ideális lapkává az alacsony teljesítményű alkalmazásokhoz.
3. lépés: 2,8 hüvelykes TFT kijelző Arduino és ESP32 készülékekhez
A kijelző nagy, felbontása 320x240 pixel. Az egyik kedvenc kijelzőmhöz képest az 1,8 hüvelykes színes TFT kijelző sokkal nagyobb méretű. A képernyő érintő funkciókat is kínál, ami plusz bónusz, és SD kártyahely a hátlapon. Az SPI interfészt használja, így a kapcsolat az Arduino vagy az ESP32 kártyával nagyon egyszerű. A kijelző ára viszonylag alacsony; körülbelül 11 dollárba kerül, ami véleményem szerint korrekt ár ahhoz, amit ez a kijelző kínál.
Egy másik dolog, mint ez a kijelző, az, hogy nem olyan pajzs, mint az eddig használt érintőképernyő. Így bármilyen kijelzőhöz csatlakoztathatjuk a kijelzőt, az Arduino Pro mini -t, az STM32 -et, az ESP8266 -ot és az ESP32 -t. Ez nagyon fontos, mert most van egy olcsó kijelzőnk, amelyet minden táblával használhatunk. Eddig az egyetlen érintőképernyő, amelyet ezekkel a táblákkal használhattunk, a Nextion kijelzők voltak, amelyek drágábbak, és őszintén szólva, bár időnként használom őket, nem igazán szeretem őket.
4. lépés: A kijelző csatlakoztatása
Először az ESP32 kártyát kell csatlakoztatnunk a 2,8 hüvelykes kijelzőhöz. A vázlatot az Instructable csatolásában találja. Ezt a DOIT ESP32 kártyát használom, amely körülbelül két éve jelent meg. A tábla ezen verziója már nem érhető el, mivel most már rendelkezésre áll egy újabb verziója, amely több tűt kínál, ez az egyik. Az egyetlen ok, amiért a tábla régi verzióját használom, az, hogy a tábla GND csapja az SPI csapok mellé, a tábla ugyanazon oldalára van helyezve, ami kenyérpirítóbarát.
Miután csatlakoztattuk a kijelzőt a táblához, bekapcsolhatjuk a projektet. Néhány másodperc múlva élő adatokat kapunk a közeli Xiaomi eszközről. Mivel a készülék Bluetooth 4 -et használ, a hatótávolsága elég jó. Könnyen beszerezhetjük az eszköz által továbbított adatokat akár 10 méteres vagy annál nagyobb távolságból is! Fogadhatjuk a Xiaomi eszköz akkumulátorának töltöttségi szintjét is, de ezt az értéket nem jelenítem meg a képernyőn.
Ha ezt az USB-mérőt használjuk, láthatjuk, hogy a projekt jelenlegi húzása 120-150 mA körül van ezzel a nagy kijelzővel. Ha e-papír kijelzőt használunk, tegyük az ESP32 kártyát mély alvás üzemmódba, és néhány percenként lekérjük az érzékelő adatait, így barátságosabbá tehetjük ezt a projektet. Ezt egy későbbi videóban kipróbálom. Ez a projekt csak demonstráció, hogy vezeték nélkül tudunk adatokat szerezni erről az eszközről.
5. lépés: A projekt kódja
Nézzük most a projekt szoftveres oldalát.
A projekt kódja ezen a projekten alapul:
Azt a kódot használtam, amely ezeket az adatokat a Xiaomi eszközről kapja, és önálló projektet építettem vele.
Ebben a változóban kijelentjük, hogy 10 másodpercenként friss adatokat kell beszereznünk.
#define SCAN_TIME 10 // másodperc
Itt kijelentjük, hogy a hőmérsékletet Celsius fokban szeretnénk megjeleníteni. Ha az Imperial rendszert szeretné használni, állítsa ezt a változót hamis értékre.
boolean METRIC = igaz; // Igazítsa be a metrikus rendszerhez; hamis a császári
A beállítási funkciónál inicializáljuk az ESP32 kártya kijelzőjét és Bluetooth modulját, majd rajzoljuk a felhasználói felületet a képernyőn.
void setup () {
WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // letiltja a barnulásérzékelőt
tft.begin ();
Sorozat.kezdet (115200);
Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();
drawUI ();
}
Ezután 10 másodpercenként keressük a közelben lévő Bluetooth -eszközöket. Nem hozunk létre kapcsolatot a Xiaomi készülékkel, mivel nincs rá szükség. Csak a közeli Bluetooth alacsony energiájú perifériákat keressük, és ellenőrizzük a sugárzott reklámcsomagokat.
void loop () {char printLog [256]; Serial.printf ("Indítsa el a BLE vizsgálatot %d másodpercig… / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); int count = foundDevices.getCount (); printf ("Talált eszközök száma: %d / n", count);
késleltetés (100);
}
A páratartalom és a hőmérséklet értékei ezekben a csomagokban vannak tárolva, ezért csak ki kell olvasnunk őket. Az értékek elolvasása után megjelenítjük azokat a képernyőn. Mint mindig, az útmutatóhoz csatolt leírásban talál linket a projekt kódjára.
6. lépés: Végső gondolatok és fejlesztések
Most, hogy tudjuk, hogyan lehet vezeték nélkül adatokat szerezni erről az érzékelőről, felépíthetünk egy teljes, akkumulátorral működő időjárás-állomást. Mivel ez a Xiaomi készülék kereskedelmi termék, nagy akkumulátor -élettartamot kínál. Sajnos a projektjeinkben még nem tudunk hasonló akkumulátor -fogyasztást elérni. Tehát azt tervezem, hogy ezt az érzékelőt kültéri érzékelőként fogom használni egy időjárás-állomás projektnél, amely nagy e-papír kijelzőt fog használni. Hűvös lesz. Ezenkívül más Xiaomi Bluetooth -kompatibilis eszközöket fogok keresni, amelyeket hasonló módon feltörhetünk. Maradjon velünk.
Szeretném tudni a véleményét erről a projektről. Hasznosnak tartja, hogy bizonyos kereskedelmi Bluetooth -eszközökről adatokat szerezhetünk? Mit fogsz építeni ezzel a funkcióval? Szeretném elolvasni ötleteit, ezért kérjük, tegye közzé őket az alábbi megjegyzések részben. Kösz!
Ajánlott:
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: 7 lépés (képekkel)
Útmutató: A Raspberry PI 4 fej nélküli (VNC) telepítése Rpi-képalkotóval és képekkel: Ezt a Rapsberry PI-t tervezem használni egy csomó szórakoztató projektben a blogomban. Nyugodtan nézd meg. Vissza akartam kezdeni a Raspberry PI használatát, de nem volt billentyűzetem vagy egér az új helyen. Rég volt, hogy beállítottam egy málnát
EAL - Ipar 4.0 GPS adatgyűjtés az Rc autón: 4 lépés
EAL - Ipar 4.0 GPS adatgyűjtés az Rc Car -on: Ebben az utasításban arról fogunk beszélni, hogyan állítunk be egy GPS modult egy RC autóra, és az összegyűjtött adatokat közzétettük egy weboldalon az egyszerű ellenőrzés érdekében. Előzőleg megtanítottuk az RC autónk elkészítésének módját, amely itt található. Ez használja a
XiaoMi vákuum + Amazon gomb = műszerfal tisztítása: 5 lépés (képekkel)
XiaoMi Vákuum + Amazon gomb = Vezérlőtisztítás: Ez az utasítás elmagyarázza, hogyan kell használni a tartalék Amazon Dash gombokat a XiaoMi vákuum vezérléséhez. Kaptam egy csomó Amazon gombot, amikor 1 dollár volt, és nem használtam őket. De egy új robotporszívó kézhezvételekor úgy döntök
Drone Quadcopter kefe nélküli egyenáramú motor futtatása a HW30A kefe nélküli motor fordulatszám -szabályozó és szervo tesztelő segítségével: 3 lépés
Drone Quadcopter kefe nélküli egyenáramú motor futtatása a HW30A kefe nélküli motor fordulatszám -szabályozó és szervo tesztelő használatával: Leírás: Ezt az eszközt szervomotor -tesztelőnek hívják, amely a szervomotor működtetésére használható a szervomotor egyszerű csatlakoztatásával és tápellátásával. A készülék az elektromos fordulatszám -szabályozó (ESC) jelgenerátoraként is használható, akkor
Hőmérséklet és páratartalom kijelző és adatgyűjtés Arduino -val és feldolgozás: 13 lépés (képekkel)
Hőmérséklet- és páratartalom -kijelzés és adatgyűjtés Arduino -val és feldolgozással: Intro: Ez egy olyan projekt, amely Arduino -táblát, érzékelőt (DHT11), Windows -számítógépet és Processing (ingyenes letölthető) programot használ a hőmérséklet-, páratartalom -adatok digitális és oszlopdiagram formát, megjeleníti az időt és a dátumot, és lefuttat egy visszaszámlálási időt