INHOUDSOPGAWE:

ESP32 Xiaomi Hack - Kry data draadloos: 6 stappe (met foto's)
ESP32 Xiaomi Hack - Kry data draadloos: 6 stappe (met foto's)

Video: ESP32 Xiaomi Hack - Kry data draadloos: 6 stappe (met foto's)

Video: ESP32 Xiaomi Hack - Kry data draadloos: 6 stappe (met foto's)
Video: Jetson Nano Custom Object Detection — как обучить собственный ИИ 2024, November
Anonim
Image
Image
ESP32 Xiaomi Hack - Kry data draadloos
ESP32 Xiaomi Hack - Kry data draadloos

Geagte vriende, welkom by 'n ander instruksies! Vandag gaan ons leer hoe om die data te kry wat hierdie Xiaomi -temperatuur- en humiditeitsmonitor stuur met behulp van die Bluetooth -funksionaliteit van die ESP32 -bord.

Soos u kan sien, gebruik ek 'n ESP32 -bord en 'n 2.8”kleur TFT -skerm. Op die skerm vertoon ons die temperatuur en die humiditeit. Die lekkerste ding is dat ek geen sensors aan die ESP32 -kaart gekoppel het nie. Ek kry die temperatuur en die humiditeit draadloos van hierdie kommersiële Xiaomi temperatuur- en humiditeitsmonitor. Hoe gaaf is dit nie! Die skerm op die Xiaomi -toestel word elke sekonde opgedateer, maar ek werk die skerm wat elke 10 sekondes aan die ESP32 -bord gekoppel is, op om die krag van die Xiaomi -toestel te bespaar.

Hierdie koel Xiaomi -temperatuur- en humiditeitsensor vertoon die temperatuur en die humiditeit op sy LCD -skerm, en dit kan ook die data na ander Xiaomi -toestelle of programme oordra met behulp van die Bluetooth -protokol. Die toestelle gebruik 'n enkele AAA -battery, en aangesien dit 'n kommersiële produk is, is die batterylewe van die toestel uitstekend. Dit kan maande lank op 'n enkele AAA -battery hou, iets wat ons nie met ons selfdoenprojekte kan bereik nie. 'N Paar weke gelede het ek agtergekom dat 'n paar slim ouens daarin geslaag het om die protokol wat Xiaomi gebruik om die data van die sensor af te stuur, om te omskep, en ek kon dit kry met behulp van 'n ESP32 -bord. So ek het dit probeer, en soos u kan sien werk dit!

Stap 1: Kry al die onderdele

Kry al die onderdele
Kry al die onderdele

Kom ons kyk nou hoe u hierdie projek kan bou. Ons benodig 'n ESP32 -bord, 'n 2,8 -inch ILI9341 -skerm, die temperatuur- en humiditeitsensor van Xiaomi, 'n broodbord en 'n paar drade.

Hier is 'n paar skakels na die dele wat ek in hierdie instruksies gaan gebruik.

  • ESP32 ▶
  • 2.8 "skerm ▶
  • Xiaomi -sensor ▶
  • Breadboard ▶
  • Drade ▶
  • USB -meter ▶
  • Powerbank ▶

Stap 2: Die ESP32 -bord

Image
Image
Die ESP32 -raad
Die ESP32 -raad

As u dit nie ken nie, is die ESP32 -chip die opvolger van die gewilde ESP8266 -chip wat ons in die verlede baie keer gebruik het. Die ESP32 is 'n dier! Dit bied twee 32 verwerkingskerne wat op 160MHz werk, 'n groot hoeveelheid geheue, WiFi, Bluetooth en vele ander funksies teen 'n koste van ongeveer $ 7! Wonderlike goed!

Kyk na die gedetailleerde resensie wat ek vir hierdie bord voorberei het. Ek het die video aangeheg oor hierdie Instructable. Dit sal help om te verstaan waarom hierdie chip die manier waarop ons dinge vir altyd maak, sal verander! Een van die opwindendste dinge van die ESP32 is dat, hoewel dit so kragtig is, dit 'n diep slaapmodus bied wat slegs 10μΑ se stroom benodig. Dit maak die ESP32 die ideale chip vir toepassings met lae krag.

Stap 3: 2.8 "TFT -skerm vir Arduino en ESP32

Image
Image
2.8
2.8
2.8
2.8
2.8
2.8

Die skerm is groot en bied 'n resolusie van 320x240 pixels. In vergelyking met een van my gunsteling -skerms, kan u die 1.8”kleur TFT -skerm baie groter sien. Die skerm bied ook aanraakfunksies, wat 'n ekstra bonus is en 'n SD -kaartgleuf aan die agterkant. Dit gebruik die SPI -koppelvlak, dus die verbinding met die Arduino of die ESP32 -bord is baie eenvoudig. Die koste van die vertoning is relatief laag; dit kos ongeveer $ 11, wat na my mening 'n billike prys is vir wat hierdie skerm bied.

Nog iets soos hierdie skerm is dat dit nie 'n skild is soos die aanraakskerm wat ons tot dusver gebruik het nie. Op hierdie manier kan ons die skerm aansluit op enige bord, die Arduino Pro mini, die STM32, die ESP8266 en die ESP32. Dit is baie belangrik, want ons het nou 'n goedkoop skerm wat ons met elke bord kan gebruik. Tot dusver was die enigste aanraakskerm wat ons met hierdie borde kon gebruik, die Nextion -skerms wat duurder is, en om eerlik te wees, alhoewel ek dit af en toe gebruik, hou ek nie regtig daarvan nie.

Stap 4: Koppel die skerm aan

Koppel die skerm
Koppel die skerm
Koppel die skerm
Koppel die skerm
Koppel die skerm
Koppel die skerm
Koppel die skerm
Koppel die skerm

Eerstens moet ons die ESP32 -bord aan die 2,8”-skerm koppel. U kan die skematiese aanhangsel by Instructable vind. Ek gebruik hierdie DOIT ESP32 -bord wat ongeveer twee jaar gelede vrygestel is. Hierdie weergawe van die bord is nie meer beskikbaar nie, aangesien daar nou 'n nuwer weergawe is wat meer penne bied, hierdie een. Die enigste rede waarom ek die ou weergawe van die bord gebruik, is dat die GND -pen van die bord langs die SPI -penne aan dieselfde kant van die bord geplaas word, wat dit broodbordvriendelik maak.

Nadat die skerm aan die bord gekoppel is, kan ons die projek aanskakel. Na 'n paar sekondes ontvang ons lewendige data van die nabygeleë Xiaomi -toestel. Aangesien die toestel Bluetooth 4 gebruik, is die omvang daarvan redelik goed. Ons kan maklik die data kry wat hierdie toestel stuur vanaf afstande tot 10 meter of meer! Ons kan ook die batteryniveau van die Xiaomi -toestel ontvang, maar ek wys hierdie waarde nie op die skerm nie.

As ons hierdie USB-meter gebruik, kan ons sien dat die huidige trekking van hierdie projek ongeveer 120-150 mA is met behulp van hierdie groot skerm. As ons 'n e-papier-skerm gebruik, plaas die ESP32-bord in die diep slaapmodus en kry elke paar minute data van die sensor, sodat ons hierdie projek batteryvriendelik kan maak. Ek sal dit in 'n toekomstige video probeer. Hierdie projek is slegs 'n bewys dat ons data van hierdie toestel draadloos kan kry.

Stap 5: Die kode van die projek

Die kode van die projek
Die kode van die projek

Kom ons kyk nou na die sagtewarekant van die projek.

Die kode van die projek is gebaseer op hierdie projek:

Ek het die kode gebruik wat die data van die Xiaomi -toestel kry en 'n selfstandige projek daarmee saamgestel.

In hierdie veranderlike verklaar ons dat ons elke 10 sekondes vars data moet kry.

#defineer SCAN_TIME 10 // sekondes

Hier verklaar ons dat ons die temperatuur in grade Celsius wil vertoon. As u die Imperial -stelsel wil gebruik, stel hierdie veranderlike net op false.

boolean METRIC = true; // Stel waar vir metrieke stelsel; vals vir die keiser

By die opstelfunksie initialiseer ons die skerm en die Bluetooth -module van die ESP32 -bord en dan teken ons die gebruikerskoppelvlak op die skerm.

ongeldige opstelling () {

WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // deaktiveer bruin detektor

tft.begin ();

Serial.begin (115200);

Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();

drawUI ();

}

Vervolgens soek ons elke 10 sekondes na Bluetooth -toestelle in die omgewing. Ons maak geen verbinding met die Xiaomi -toestel nie, aangesien dit nie nodig is nie. Ons soek slegs na nabygeleë Bluetooth -lae -energie -randapparatuur en kyk na die advertensiepakkies.

leemte -lus () {char printLog [256]; Serial.printf ("Begin BLE -skandering vir %d sekondes … / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> begin (SCAN_TIME); int count = foundDevices.getCount (); printf ("Toestelgetal gevind: %d / n", telling);

vertraging (100);

}

Die humiditeits- en temperatuurwaardes word in die pakkies gestoor, dus hoef ons dit net te lees. Nadat ons die waardes gelees het, vertoon ons dit op die skerm. Soos altyd kan u 'n skakel na die kode van hierdie projek vind in die beskrywing wat by hierdie instruksies aangeheg is.

Stap 6: Laaste gedagtes en verbeterings

Laaste gedagtes en verbeterings
Laaste gedagtes en verbeterings
Laaste gedagtes en verbeterings
Laaste gedagtes en verbeterings

Noudat ons weet hoe om data draadloos van hierdie sensor af te haal, kan ons 'n volledige weerstasie met batterye bou. Aangesien hierdie Xiaomi -toestel 'n kommersiële produk is, bied dit 'n uitstekende batterylewe. Ongelukkig kan ons nog nie 'n soortgelyke batteryverbruik by ons projekte bereik nie. Ek is dus van plan om hierdie sensor te gebruik as 'n buitesensor vir 'n weerstasieprojek wat 'n groot e-papier-skerm sal gebruik. Dit sal gaaf wees. Ek gaan ook soek na ander Xiaomi Bluetooth -toestelle wat ons op dieselfde manier kan inbreek. Bly ingeskakel.

Ek sal graag u mening oor hierdie projek wil weet. Vind u dit nuttig dat ons data van sommige kommersiële Bluetooth -toestelle kan kry? Wat gaan u bou met behulp van hierdie funksie? Ek wil u idees lees, plaas dit asseblief in die kommentaarafdeling hieronder. Dankie!

Aanbeveel: