Sisällysluettelo:
- Vaihe 1: Hanki kaikki osat
- Vaihe 2: ESP32 -kortti
- Vaihe 3: 2,8 tuuman TFT -näyttö Arduinolle ja ESP32: lle
- Vaihe 4: Näytön liittäminen
- Vaihe 5: Projektin koodi
- Vaihe 6: Viimeiset ajatukset ja parannukset
Video: ESP32 Xiaomi Hack - Hanki tietoja langattomasti: 6 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Hyvät ystävät, tervetuloa toiseen Instructableen! Tänään aiomme oppia hankkimaan tiedot, jotka tämä Xiaomi -lämpötila- ja kosteusmonitori lähettää ESP32 -kortin Bluetooth -toiminnon avulla.
Kuten huomaat, käytän ESP32 -korttia ja 2,8 tuuman TFT -näyttöä. Näytössä näytämme lämpötilan ja kosteuden. Hieno asia on, että en ole yhdistänyt mitään antureita ESP32 -korttiin. Saan lämpötilan ja kosteuden langattomasti tästä kaupallisesta Xiaomi -lämpötila- ja kosteusmonitorista. Kuinka siistiä! Xiaomi -laitteen näyttö päivitetään joka sekunti, mutta päivitän ESP32 -korttiin liitetyn näytön 10 sekunnin välein säästääksesi Xiaomi -laitteen virtaa.
Tämä viileä Xiaomi -lämpötila- ja kosteusanturi näyttää lämpötilan ja kosteuden nestekidenäytöltä ja voi myös lähettää tiedot muille Xiaomi -laitteille tai -sovelluksille Bluetooth -protokollan avulla. Laitteet käyttävät yhtä AAA -paristoa, ja koska se on kaupallinen tuote, laitteen akunkesto on erinomainen. Se voi kestää yhdellä AAA -paristolla kuukausia, mitä emme voi saavuttaa DIY -projekteissamme. Muutama viikko sitten huomasin, että jotkut fiksut kaverit onnistuivat muuttamaan protokollan, jota Xiaomi käyttää tiedonsiirtoon anturista, ja onnistuivat saamaan tiedot ESP32 -kortin avulla. Joten kokeilin sitä, ja kuten näet, se toimii!
Vaihe 1: Hanki kaikki osat
Katsotaan nyt, miten tämä projekti rakennetaan. Tarvitsemme ESP32 -kortin, 2,8 tuuman ILI9341 -näytön, Xiaomin lämpötila- ja kosteusanturin, leipälevyn ja johdot.
Tässä on joitain linkkejä osiin, joita aion käyttää tässä oppaassa.
- ESP32 ▶
- 2,8 "Näyttö ▶
- Xiaomi -anturi ▶
- Leipälauta ▶
- Johdot ▶
- USB -mittari ▶
- Powerbank ▶
Vaihe 2: ESP32 -kortti
Jos et tunne sitä, ESP32 -siru on suositun ESP8266 -sirun seuraaja, jota olemme käyttäneet monta kertaa aiemmin. ESP32 on peto! Se tarjoaa kaksi 32 prosessointiytintä, jotka toimivat 160 MHz: llä, valtava määrä muistia, WiFi, Bluetooth ja monia muita ominaisuuksia, joiden hinta on noin 7 dollaria! Ihmeellistä tavaraa!
Katso yksityiskohtainen katsaus, jonka olen valmistellut tälle levylle. Olen liittänyt videon tähän oppaaseen. Se auttaa ymmärtämään, miksi tämä siru muuttaa tapaamme tehdä asioita ikuisesti! Yksi ESP32: n jännittävimmistä asioista on, että vaikka se on niin voimakas, se tarjoaa syvän lepotilan, joka vaatii vain 10μΑs virtaa. Tämä tekee ESP32: sta ihanteellisen sirun pienitehoisiin sovelluksiin.
Vaihe 3: 2,8 tuuman TFT -näyttö Arduinolle ja ESP32: lle
Näyttö on suuri ja sen resoluutio on 320x240 pikseliä. Verrattuna yhteen suosikkinäyttöihini, 1,8 tuuman värilliseen TFT -näyttöön näet sen paljon suurempana. Näytössä on myös kosketustoiminto, joka on lisäbonus ja SD -korttipaikka takana. Se käyttää SPI -rajapintaa, joten yhteys Arduinoon tai ESP32 -korttiin on erittäin suoraviivainen. Näytön hinta on suhteellisen alhainen; se maksaa noin 11 dollaria, mikä on mielestäni kohtuullinen hinta siitä, mitä tämä näyttö tarjoaa.
Toinen asia tässä näytössä on, että se ei tule suojaksi, kuten kosketusnäyttö, jota käytimme tähän mennessä. Tällä tavalla voimme liittää näytön mihin tahansa korttiin, Arduino Pro mini, STM32, ESP8266 ja ESP32. Tämä on erittäin tärkeää, koska meillä on nyt edullinen näyttö, jota voimme käyttää jokaisen levyn kanssa. Toistaiseksi ainoa kosketusnäyttö, jota voimme käyttää näiden levyjen kanssa, olivat Nextion -näytöt, jotka ovat kalliimpia, ja rehellisesti sanottuna, vaikka käytän niitä aika ajoin, en todellakaan pidä niistä.
Vaihe 4: Näytön liittäminen
Ensinnäkin meidän on liitettävä ESP32 -kortti 2,8 tuuman näyttöön. Löydät kaavion Instructable -ohjelman liitteenä. Käytän tätä DOIT ESP32 -levyä, joka julkaistiin noin kaksi vuotta sitten. Tämä kortin versio ei ole enää saatavilla, koska siitä on nyt saatavana uudempi versio, joka tarjoaa enemmän nastoja, tämä. Ainoa syy, miksi käytän levyn vanhaa versiota, on se, että levyn GND -tappi on sijoitettu SPI -nastojen viereen levyn samalle puolelle, mikä tekee siitä leipälautaystävällisen.
Kun näyttö on liitetty levyyn, voimme käynnistää projektin. Muutaman sekunnin kuluttua vastaanotamme reaaliaikaista tietoa läheiseltä Xiaomi -laitteelta. Koska laite käyttää Bluetooth 4: tä, sen kantama on melko hyvä. Saamme helposti laitteen lähettämät tiedot jopa 10 metrin etäisyydeltä tai kauemmas! Voimme myös vastaanottaa Xiaomi -laitteen akun varaustason, mutta en näytä tätä arvoa näytöllä.
Jos käytämme tätä USB-mittaria, voimme nähdä, että tämän projektin nykyinen kulutus on noin 120-150 mA tämän suuren näytön avulla. Jos käytämme sähköistä paperinäyttöä, laitamme ESP32-levyn syvään lepotilaan ja saamme tietoja anturista muutaman minuutin välein, jotta voimme tehdä projektista akun säästävän. Kokeilen tätä tulevassa videossa. Tämä projekti on vain osoitus siitä, että voimme saada tietoja tästä laitteesta langattomasti.
Vaihe 5: Projektin koodi
Katsotaan nyt projektin ohjelmistopuolta.
Projektin koodi perustuu tähän projektiin:
Käytin koodia, joka saa nämä tiedot Xiaomi -laitteesta, ja rakensin sen kanssa itsenäisen projektin.
Tässä muuttujassa ilmoitamme, että meidän on saatava uusia tietoja 10 sekunnin välein.
#define SCAN_TIME 10 // sekuntia
Ilmoitamme täällä, että haluamme näyttää lämpötilan celsiusasteina. Jos haluat käyttää Imperial -järjestelmää, aseta tämä muuttuja arvoon false.
boolean METRIC = tosi; // Aseta tosi metrijärjestelmälle; väärä imperialille
Asetustoiminnossa alustamme ESP32 -kortin näytön ja Bluetooth -moduulin ja piirrämme sitten käyttöliittymän näytölle.
void setup () {
WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // poista brownout -ilmaisin käytöstä
tft.begin ();
Sarja.alku (115200);
Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();
drawUI ();
}
Seuraavaksi etsimme lähellä olevia Bluetooth -laitteita 10 sekunnin välein. Emme muodosta yhteyttä Xiaomi -laitteeseen, koska sitä ei tarvita. Etsimme vain lähellä olevia vähäenergisia Bluetooth -oheislaitteita ja tarkistamme yleisradiomainospaketit.
void loop () {char printLog [256]; Serial.printf ("Aloita BLE -skannaus %d sekunnin ajan… / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); int count = foundDevices.getCount (); printf ("Löytyneiden laitteiden määrä: %d / n", count);
viive (100);
}
Kosteus- ja lämpötila -arvot tallennetaan näihin paketteihin, joten meidän tarvitsee vain lukea ne. Kun olemme lukeneet arvot, näytämme ne näytöllä. Kuten aina, löydät linkin tämän projektin koodiin tämän ohjeen liitteenä olevasta kuvauksesta.
Vaihe 6: Viimeiset ajatukset ja parannukset
Nyt kun tiedämme kuinka saada tietoja langattomasti tästä anturista, voimme rakentaa täydellisen paristokäyttöisen sääaseman. Koska tämä Xiaomi -laite on kaupallinen tuote, se tarjoaa erinomaisen akunkeston. Valitettavasti emme voi vielä saavuttaa samanlaista akun kulutusta projekteissamme. Joten aion käyttää tätä anturia ulkoanturina sääasemaprojektissa, joka käyttää suurta sähköistä paperinäyttöä. Siitä tulee siistiä. Aion myös etsiä muita Xiaomi Bluetooth -yhteensopivia laitteita, joita voimme hakata samalla tavalla. Pysy kanavalla.
Haluaisin tietää mielipiteenne tästä projektista. Onko mielestäsi hyödyllistä, että voimme saada tietoja joistakin kaupallisista Bluetooth -laitteista? Mitä aiot rakentaa käyttämällä tätä toimintoa? Haluaisin lukea ideasi, joten lähetä ne alla olevaan kommenttiosaan. Kiitos!
Suositeltava:
Langattomasti käytettävissä oleva Pi 5 minuutissa: 3 vaihetta
Langaton yhteys Pi 5 minuutissa: Hei kaikille! Näin voit tehdä vadelma Pi: stä langattoman pääsyn puhelimesta tai tabletista Huomaa, että arvioni 5 minuuttia on tarkoitettu henkilölle, jolla on tietotekniikka, ja se voi varmasti kestää kauemmin
Arduinon ohjelmointi langattomasti (OTA) - Ameba Arduino: 4 vaihetta
Arduinon ohjelmointi langattomasti (OTA)-Ameba Arduino: Markkinoilla on monia Wi-Fi-mikro-ohjaimia, monet valmistajat nauttivat Wi-Fi-mikrokontrollerin ohjelmoinnista Arduino IDE: n avulla. Kuitenkin yksi hienoimmista ominaisuuksista, joita Wi-Fi-mikrokontrolleri tarjoaa, jäävät yleensä huomiotta, eli
RC -servojen ohjaus langattomasti UDP: n kautta: 3 vaihetta
RC -servojen ohjaus langattomasti UDP: n kautta: Tässä projektissa haluan käyttää iPhoneani ohjaamaan RC -servoja. Käytän kiihtyvyysmittaria kahden servon ohjaamiseen UDP -yhteyden kautta. Tämä on Proof Of Concept -projekti, jolla varmistetaan, että iPhonen ja oheislaitteen välinen yhteys voi saavuttaa korkean
Ohjaa tietokonetta langattomasti silmänräpäyksellä;): 9 vaihetta (kuvien kanssa)
Ohjaa tietokonetta langattomasti silmänräpäyksellä;): Entä tapojen ylittäminen ?? Entä kokeilla jotain uutta ?? !!!! Entä tietokoneen ohjaaminen ja kaiken tekeminen ilman näppäimistöä ja hiirtä! Hmm … Mutta miten tämä on mahdollista ??? Vain silmänräpäyksellä !! Älä b
Tietoja OHM: stä ja hänen laistaan: 7 vaihetta (kuvilla)
Tietoja OHM: stä ja hänen laistaan: OHM: n laki - mitä se on. Kuinka se toimii. Henkilökohtainen oppimisapu kiinnostuneelle ja kärsivälliselle oppijalle. Lue vain seuraavat sivut huolellisesti tai kutsu ne esiin ohjelman HELP -toiminnon avulla. A) Opi vastuksen värikoodi