Obsah:
- Krok 1: Získajte všetky diely
- Krok 2: Doska ESP32
- Krok 3: 2,8 "TFT displej pre Arduino a ESP32
- Krok 4: Pripojenie displeja
- Krok 5: Kód projektu
- Krok 6: Záverečné myšlienky a vylepšenia
Video: ESP32 Xiaomi Hack - získajte údaje bezdrôtovo: 6 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:55
Milí priatelia, vitajte pri ďalšom pokyne! Dnes sa naučíme získať údaje, ktoré tento monitor teploty a vlhkosti Xiaomi prenáša, pomocou funkcie Bluetooth dosky ESP32.
Ako vidíte, používam dosku ESP32 a 2,8 -palcový farebný TFT displej. Na displeji zobrazujeme teplotu a vlhkosť. Skvelé je, že som k doske ESP32 nepripojil žiadne senzory. Teplotu a vlhkosť získavam bezdrôtovo z tohto komerčného monitora teploty a vlhkosti Xiaomi. Aké je to cool! Displej na zariadení Xiaomi sa aktualizuje každú sekundu, ale aktualizujem displej, ktorý je pripojený k doske ESP32 každých 10 sekúnd, aby sa šetrila energia v zariadení Xiaomi.
Tento chladný snímač teploty a vlhkosti Xiaomi zobrazuje teplotu a vlhkosť na svojom LCD displeji a pomocou protokolu Bluetooth môže tiež prenášať údaje do iných zariadení alebo aplikácií Xiaomi. Zariadenia používajú jednu batériu AAA a keďže ide o komerčný produkt, životnosť batérie je vynikajúca. Na jednu batériu AAA môže vydržať niekoľko mesiacov, čo v projektoch pre domácich majstrov nemôžeme dosiahnuť. Pred niekoľkými týždňami som zistil, že niektorým šikovným chlapcom sa podarilo spätne analyzovať protokol, ktorý spoločnosť Xiaomi používa na prenos údajov zo senzora, a podarilo sa im ich získať pomocou dosky ESP32. Skúsil som to a ako vidíte, funguje to!
Krok 1: Získajte všetky diely
Teraz sa pozrime, ako vytvoriť tento projekt. Potrebujeme dosku ESP32, 2,8 -palcový displej ILI9341, snímač teploty a vlhkosti Xiaomi, dosku a niekoľko vodičov.
Tu je niekoľko odkazov na diely, ktoré použijem v tomto návode.
- ESP32 ▶
- 2,8 "displej ▶
- Senzor Xiaomi ▶
- Breadboard ▶
- Drôty ▶
- Merač USB ▶
- Powerbank ▶
Krok 2: Doska ESP32
Ak ho nepoznáte, čip ESP32 je nástupcom populárneho čipu ESP8266, ktorý sme v minulosti mnohokrát použili. ESP32 je zver! Ponúka dve 32 procesorových jadier, ktoré pracujú na frekvencii 160 MHz, obrovské množstvo pamäte, WiFi, Bluetooth a mnoho ďalších funkcií za cenu približne 7 $! Úžasné veci!
Pozrite sa na podrobnú recenziu, ktorú som pre túto dosku pripravil. Pripojil som video k tomuto návodu. Pomôže to pochopiť, prečo tento čip navždy zmení spôsob, akým veci vyrábame! Jednou z najvzrušujúcejších vecí na ESP32 je, že aj keď je taký výkonný, ponúka režim hlbokého spánku, ktorý vyžaduje iba 10μΑs prúdu. Vďaka tomu je ESP32 ideálnym čipom pre aplikácie s nízkym výkonom.
Krok 3: 2,8 "TFT displej pre Arduino a ESP32
Displej je veľký a ponúka rozlíšenie 320 x 240 pixelov. V porovnaní s jedným z mojich obľúbených displejov, 1,8 palcovým farebným TFT displejom ho môžete vidieť oveľa väčší. Obrazovka tiež ponúka dotykové funkcie, ktoré sú ďalším bonusom, a slot na kartu SD na zadnej strane. Využíva rozhranie SPI, takže prepojenie s doskou Arduino alebo ESP32 je veľmi priamočiare. Náklady na displej sú relatívne nízke; stojí to okolo 11 $, čo je podľa mňa primeraná cena za to, čo tento displej ponúka.
Ďalšou vecou, ktorá sa týka tohto displeja, je to, že neprichádza ako štít ako dotykový displej, ktorý sme doteraz používali. Týmto spôsobom môžeme displej pripojiť k akejkoľvek doske, Arduino Pro mini, STM32, ESP8266 a ESP32. To je veľmi dôležité, pretože teraz máme lacný displej, ktorý môžeme použiť s každou doskou. Doteraz jediným dotykovým displejom, ktorý sme s týmito doskami mohli používať, boli displeje Nextion, ktoré sú drahšie, a aby som bol úprimný, aj keď ich čas od času používam, veľmi sa mi nepáčia.
Krok 4: Pripojenie displeja
Najprv musíme pripojiť dosku 2,8 palca k doske ESP32. Schému nájdete v prílohe k Instructable. Používam dosku DOIT ESP32, ktorá bola vydaná asi pred dvoma rokmi. Táto verzia dosky už nie je k dispozícii, pretože teraz je k dispozícii jej novšia verzia, ktorá ponúka viac pinov, túto. Jediný dôvod, prečo používam starú verziu dosky, je ten, že GND kolík dosky je umiestnený vedľa pinov SPI, na rovnakej strane dosky, čo ju robí priateľskou k doske.
Po pripojení displeja k doske môžeme projekt zapnúť. Po niekoľkých sekundách dostávame živé údaje z blízkeho zariadenia Xiaomi. Pretože zariadenie používa Bluetooth 4, jeho dosah je celkom dobrý. Údaje, ktoré toto zariadenie prenáša, môžeme ľahko získať zo vzdialenosti až 10 metrov alebo viac! Môžeme tiež získať úroveň batérie zariadenia Xiaomi, ale túto hodnotu nezobrazujem na obrazovke.
Ak použijeme tento USB merač, vidíme, že súčasný odber tohto projektu je okolo 120-150 mA pomocou tohto veľkého displeja. Ak použijeme displej z elektronického papiera, uvedieme dosku ESP32 do režimu hlbokého spánku a každých pár minút dostaneme údaje zo senzora, vďaka čomu bude tento projekt šetrný k batérii. Skúsim to v budúcom videu. Tento projekt je len ukážkou toho, že z tohto zariadenia môžeme bezdrôtovo získavať údaje.
Krok 5: Kód projektu
Pozrime sa teraz na softvérovú stránku projektu.
Kód projektu je založený na tomto projekte:
Použil som kód, ktorý tieto údaje získava zo zariadenia Xiaomi, a vytvoril som s ním samostatný projekt.
V tejto premennej vyhlasujeme, že musíme získavať nové údaje každých 10 sekúnd.
#define SCAN_TIME 10 // sekúnd
Tu vyhlasujeme, že chceme zobrazovať teplotu v stupňoch Celzia. Ak chcete používať systém Imperial, jednoducho nastavte túto premennú na false.
boolean METRIC = true; // Set true pre metrický systém; falošné pre imperiálne
Pri funkcii nastavenia inicializujeme displej a modul Bluetooth dosky ESP32 a potom nakreslíme na obrazovku používateľské rozhranie.
neplatné nastavenie () {
WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // vypnutie detektora vypnutia
tft.begin ();
Serial.begin (115200);
Serial.println ("DISPLEJ ESP32 XIAOMI"); initBluetooth ();
drawUI ();
}
Ďalej každých 10 sekúnd hľadáme zariadenia Bluetooth v okolí. Nepájame sa k zariadeniu Xiaomi, pretože nie je potrebné. Hľadáme iba blízke nízkoenergetické periférne zariadenia Bluetooth a kontrolujeme pakety vysielaných reklám.
void loop () {char printLog [256]; Serial.printf ("Spustiť skenovanie BLE na %d sekúnd … / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); int count = foundDevices.getCount (); printf ("Počet nájdených zariadení: %d / n", počet);
oneskorenie (100);
}
Hodnoty vlhkosti a teploty sú uložené v týchto paketoch, takže ich musíme iba prečítať. Keď prečítame hodnoty, zobrazíme ich na obrazovke. Ako vždy, odkaz na kód tohto projektu nájdete v popise priloženom k tomuto návodu.
Krok 6: Záverečné myšlienky a vylepšenia
Teraz, keď vieme, ako bezdrôtovo získavať údaje z tohto senzora, môžeme postaviť kompletnú meteorologickú stanicu napájanú z batérie. Pretože je toto zariadenie Xiaomi komerčným výrobkom, ponúka vynikajúcu výdrž batérie. Na našich projektoch bohužiaľ zatiaľ nemôžeme dosiahnuť podobnú spotrebu batérie. Plánujem teda použiť tento senzor ako vonkajší senzor pre projekt meteorologickej stanice, ktorý bude používať veľký displej z elektronického papiera. Bude to v pohode Tiež budem hľadať ďalšie zariadenia Xiaomi s podporou Bluetooth, ktoré môžeme hacknúť podobným spôsobom. Zostaňte naladení.
Rád by som poznal váš názor na tento projekt. Považujete za užitočné, že môžeme získavať údaje z niektorých komerčných zariadení Bluetooth? Čo budete stavať pomocou tejto funkcie? Rád by som si prečítal vaše nápady, preto ich prosím pošlite do sekcie komentárov nižšie. Vďaka!
Odporúča:
35 dolárov bezdrôtovo Sledujte zameranie z žeriavu 2: 5 krokov
Bezdrôtové zaostrovanie na sledovanie za 35 dolárov z žeriavu 2: Vytvorme pre váš fotoaparát zameranie na bezdrôtové sledovanie za 35 dolárov. To môže byť skvelé pre použitie na filmových súpravách s vyhradeným ťahačom zaostrovania a môže byť použité na bezdrôtové nastavenie priblíženia alebo zaostrenia akéhokoľvek fotoaparátu
Prenášajte elektrinu bezdrôtovo: 6 krokov
Prenášajte Electrcity bezdrôtovo: v tomto návode vám ukážem, ako prenášať elektrickú energiu pomocou veľmi jednoduchého obvodu
Hacknite myš pomocou Arduina. 2 500 Ft bezdrôtovo. PS/2: 5 krokov
Hacknite myš pomocou Arduina. 2 500 Ft bezdrôtovo. PS/2: V tomto návode vám ukážem, ako hacknúť myš, aby ste ju mohli používať ako ovládač pre LED diódy, motory, bezdrôtové aplikácie a podobne. Tento tutoriál sa bude zaoberať myšami, ktoré majú drôt. Väčšina týchto myší používa protokol PS/2. Nastavenie
Ovládajte Arduino bezdrôtovo pomocou MATLAB: 11 krokov
Ovládajte Arduino bezdrôtovo pomocou MATLAB: Videli sme niekoľko domácich kutilov o tom, ako nadviazať komunikáciu medzi aplikáciou MATLAB a Arduino, ktorá je pevne prepojená s počítačom. Nestretol som sa však s ničím, čo by bezdrôtovo ovládalo Arduino cez MATLAB pomocou ethernetového štítu kompatibilného s ENC28J60
Ovládajte počítač bezdrôtovo s blikaním očí;): 9 krokov (s obrázkami)
Ovládajte počítač bezdrôtovo žmurkaním očí;): Čo tak prekročiť svoje návyky ?? Čo tak skúsiť niečo nové ?? !!!! Čo tak ovládať počítač a robiť čokoľvek, čo chcete BEZ klávesnice a myši! Hmm … Ale ako je to možné ??? Jediným mrknutím oka !! Nebuď