![ESP32 Xiaomi Hack - Få data trådlöst: 6 steg (med bilder) ESP32 Xiaomi Hack - Få data trådlöst: 6 steg (med bilder)](https://i.howwhatproduce.com/images/001/image-737-7-j.webp)
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10
![Image Image](https://i.howwhatproduce.com/images/001/image-737-9-j.webp)
![](https://i.ytimg.com/vi/Wef_bWNC2rY/hqdefault.jpg)
![ESP32 Xiaomi Hack - Få data trådlöst ESP32 Xiaomi Hack - Få data trådlöst](https://i.howwhatproduce.com/images/001/image-737-10-j.webp)
Kära vänner välkomna till en annan instruerbar! Idag ska vi lära oss hur vi får data som denna Xiaomi temperatur- och luftfuktighetsmonitor överför med hjälp av Bluetooth -funktionen på ESP32 -kortet.
Som du kan se använder jag ett ESP32 -kort och en 2,8”TFT -färgskärm. På displayen visar vi temperaturen och luftfuktigheten. Det coola är att jag inte har anslutit några sensorer till ESP32 -kortet. Jag får temperaturen och luftfuktigheten trådlöst från denna kommersiella Xiaomi temperatur- och fuktighetsmonitor. Hur coolt är inte det! Displayen på Xiaomi -enheten uppdateras varannan, men jag uppdaterar skärmen som är ansluten till ESP32 -kortet var 10: e sekund för att spara ström på Xiaomi -enheten.
Denna coola Xiaomi temperatur- och fuktighetssensor visar temperaturen och luftfuktigheten på dess LCD -skärm och den kan också överföra data till andra Xiaomi -enheter eller appar med Bluetooth -protokollet. Enheterna använder ett enda AAA -batteri och eftersom det är en kommersiell produkt är batteriets livslängd utmärkt. Det kan hålla på ett enda AAA -batteri i flera månader, något vi inte kan uppnå på våra DIY -projekt. För några veckor sedan upptäckte jag att några kluriga killar lyckades omkonstruera protokollet som Xiaomi använder för att överföra data från sensorn och lyckades få den med hjälp av ett ESP32 -kort. Så jag försökte det, och som ni ser fungerar det!
Steg 1: Skaffa alla delar
![Få alla delar Få alla delar](https://i.howwhatproduce.com/images/001/image-737-11-j.webp)
Låt oss nu se hur vi bygger detta projekt. Vi behöver ett ESP32 -kort, en 2,8”ILI9341 -skärm, Xiaomi temperatur- och fuktsensor, en brödbräda och några ledningar.
Här är några länkar till de delar jag kommer att använda i denna instruktionsbok.
- ESP32 ▶
- 2,8 "skärm ▶
- Xiaomi -sensor ▶
- Brödbräda ▶
- Ledningar ▶
- USB -mätare ▶
- Powerbank ▶
Steg 2: ESP32 -kortet
![Image Image](https://i.howwhatproduce.com/images/001/image-737-13-j.webp)
![](https://i.ytimg.com/vi/Mq1YhgS5VkY/hqdefault.jpg)
![ESP32 -styrelsen ESP32 -styrelsen](https://i.howwhatproduce.com/images/001/image-737-14-j.webp)
Om du inte känner till det är ESP32 -chipet efterföljaren till det populära ESP8266 -chipet som vi har använt många gånger tidigare. ESP32 är ett odjur! Den erbjuder två 32 processorkärnor som arbetar med 160 MHz, en enorm mängd minne, WiFi, Bluetooth och många andra funktioner till en kostnad av cirka 7 $! Fantastiska saker!
Se den detaljerade recensionen som jag har förberett för denna tavla. Jag har bifogat videon på denna Instructable. Det kommer att hjälpa till att förstå varför detta chip kommer att förändra hur vi gör saker för alltid! En av de mest spännande sakerna med ESP32 är att även om den är så kraftfull erbjuder den ett djupt sömnläge som bara kräver 10μΑs ström. Detta gör ESP32 till det idealiska chipet för applikationer med låg effekt.
Steg 3: 2,8 "TFT -skärm för Arduino och ESP32
![Image Image](https://i.howwhatproduce.com/images/001/image-737-16-j.webp)
![](https://i.ytimg.com/vi/beyDkTBhpgs/hqdefault.jpg)
![2.8 2.8](https://i.howwhatproduce.com/images/001/image-737-17-j.webp)
Displayen är stor och har en upplösning på 320x240 pixlar. Jämfört med en av mina favoritskärmar, 1,8 -tums färg TFT -skärm, du kan se den mycket större. Skärmen erbjuder också pekfunktion som är en extra bonus och en SD -kortplats på baksidan. Den använder SPI -gränssnittet, så anslutningen med Arduino eller ESP32 -kortet är mycket enkel. Kostnaden för displayen är relativt låg; det kostar cirka 11 $ vilket enligt mig är ett rimligt pris för vad den här skärmen erbjuder.
En annan sak som med den här skärmen är att den inte kommer som en skärm som den pekskärm vi använt hittills. På så sätt kan vi ansluta skärmen till valfritt kort, Arduino Pro mini, STM32, ESP8266 och ESP32. Detta är mycket viktigt eftersom vi nu har en billig bildskärm som vi kan använda med varje bräda. Fram till nu var den enda pekskärm vi kunde använda med dessa brädor Nextion -skärmarna som är dyrare, och om jag ska vara ärlig även om jag använder dem då och då, gillar jag dem inte riktigt.
Steg 4: Ansluta skärmen
![Ansluta skärmen Ansluta skärmen](https://i.howwhatproduce.com/images/001/image-737-18-j.webp)
![Ansluta skärmen Ansluta skärmen](https://i.howwhatproduce.com/images/001/image-737-19-j.webp)
![Ansluta skärmen Ansluta skärmen](https://i.howwhatproduce.com/images/001/image-737-20-j.webp)
![Ansluta skärmen Ansluta skärmen](https://i.howwhatproduce.com/images/001/image-737-21-j.webp)
Först måste vi ansluta ESP32 -kortet till 2,8”-skärmen. Du hittar schemat som bifogas Instructable. Jag använder detta DOIT ESP32 -kort som släpptes för ungefär två år sedan. Den här versionen av kortet är inte längre tillgänglig eftersom det nu finns en nyare version av den som erbjuder fler pins, den här. Den enda anledningen till att jag använder den gamla versionen av brädet är att GND -stiftet på brädet placeras bredvid SPI -stiften, på samma sida av brädet, vilket gör det brödbräda vänligt.
Efter att ha anslutit skärmen till kortet kan vi starta projektet. Efter några sekunder får vi levande data från den närliggande Xiaomi -enheten. Eftersom enheten använder Bluetooth 4 är räckvidden ganska bra. Vi kan enkelt få data som den här enheten överför från avstånd upp till 10 meter eller mer! Vi kan också ta emot batterinivån på Xiaomi -enheten men jag visar inte detta värde på skärmen.
Om vi använder denna USB-mätare kan vi se att den nuvarande dragningen av detta projekt är cirka 120-150 mA med denna stora display. Om vi använder en e-pappersdisplay, sätt ESP32-kortet i djupt viloläge och få data från sensorn varannan minut så kan vi göra detta projekt batterivänligt. Jag kommer att prova detta i en framtida video. Detta projekt är bara en demonstration av att vi kan få data från den här enheten trådlöst.
Steg 5: Koden för projektet
![Projektets kod Projektets kod](https://i.howwhatproduce.com/images/001/image-737-22-j.webp)
Låt oss nu se mjukvarusidan av projektet.
Projektets kod är baserad på detta projekt:
Jag använde koden som hämtar data från Xiaomi -enheten och byggde ett fristående projekt med den.
I denna variabel deklarerar vi att vi måste få färsk data var 10: e sekund.
#define SCAN_TIME 10 // sekunder
Här förklarar vi att vi vill visa temperaturen i grader Celsius. Om du vill använda det kejserliga systemet ställer du bara in denna variabel till falsk.
booleska METRIC = true; // Ställ in true för metriska system; falskt för kejserligt
Vid installationsfunktionen initierar vi displayen och Bluetooth -modulen på ESP32 -kortet och sedan ritar vi användargränssnittet på skärmen.
void setup () {
WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // inaktivera brownout -detektor
tft.begin ();
Serial.begin (115200);
Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();
drawUI ();
}
Därefter söker vi efter Bluetooth -enheter i närheten var 10: e sekund. Vi gör ingen anslutning till Xiaomi -enheten eftersom det inte behövs. Vi söker bara efter Bluetooth -kringutrustning i närheten och kontrollerar sändningsannonspaketen.
void loop () {char printLog [256]; Serial.printf ("Starta BLE -skanning i %d sekunder … / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); int count = foundDevices.getCount (); printf ("Antal enheter hittades: %d / n", count);
fördröjning (100);
}
Luftfuktigheten och temperaturvärdena lagras i dessa paket, så vi behöver bara läsa dem. När vi läst värdena visar vi dem på skärmen. Som alltid kan du hitta en länk till koden för detta projekt i beskrivningen som bifogas denna instruktionsbok.
Steg 6: Sista tankar och förbättringar
![Slutliga tankar och förbättringar Slutliga tankar och förbättringar](https://i.howwhatproduce.com/images/001/image-737-23-j.webp)
![Slutliga tankar och förbättringar Slutliga tankar och förbättringar](https://i.howwhatproduce.com/images/001/image-737-24-j.webp)
Nu när vi vet hur vi får data trådlöst från denna sensor kan vi bygga en komplett batteridriven väderstation. Eftersom denna Xiaomi -enhet är en kommersiell produkt erbjuder den bra batteritid. Tyvärr kan vi inte uppnå liknande batteriförbrukning på våra projekt än. Så jag planerar att använda den här sensorn som en utomhus sensor för ett väderstationprojekt som kommer att använda en stor e-pappersdisplay. Det kommer att bli coolt. Jag kommer också att söka efter andra Xiaomi Bluetooth -aktiverade enheter som vi kan hacka på ett liknande sätt. Håll ögonen öppna.
Jag skulle gärna vilja veta din åsikt om detta projekt. Tycker du det är bra att vi kan få data från vissa kommersiella Bluetooth -enheter? Vad ska du bygga med den här funktionen? Jag skulle vilja läsa dina idéer så lägg dem i kommentarsfältet nedan. Tack!
Rekommenderad:
WIDI - Trådlöst HDMI med Zybo (Zynq Development Board): 9 steg (med bilder)
![WIDI - Trådlöst HDMI med Zybo (Zynq Development Board): 9 steg (med bilder) WIDI - Trådlöst HDMI med Zybo (Zynq Development Board): 9 steg (med bilder)](https://i.howwhatproduce.com/images/001/image-311-44-j.webp)
WIDI - Trådlöst HDMI med Zybo (Zynq Development Board): Har du någonsin önskat att du kunde ansluta din TV till en dator eller bärbar dator som en extern bildskärm, men ville inte ha alla dessa irriterande sladdar i vägen? Om så är fallet är den här självstudien bara för dig! Även om det finns några produkter ute som uppnår detta mål, är en
Styr PC trådlöst med ögonblinkande;): 9 steg (med bilder)
![Styr PC trådlöst med ögonblinkande;): 9 steg (med bilder) Styr PC trådlöst med ögonblinkande;): 9 steg (med bilder)](https://i.howwhatproduce.com/images/003/image-6247-62-j.webp)
Styr datorn trådlöst med ögonblinkande;): Vad sägs om att gå utöver dina vanor ?? Vad sägs om att prova något nytt ?? !!!! Vad sägs om att styra din dator och göra vad du vill UTAN att använda tangentbordet och musen! Hmm … Men hur är detta möjligt ??? Med bara ett ögonblick !! Inte b
Trådlöst RFID -dörrlås med Nodemcu: 9 steg (med bilder)
![Trådlöst RFID -dörrlås med Nodemcu: 9 steg (med bilder) Trådlöst RFID -dörrlås med Nodemcu: 9 steg (med bilder)](https://i.howwhatproduce.com/images/003/image-7148-35-j.webp)
Trådlöst RFID-dörrlås med Nodemcu: --- Huvudfunktion --- Detta projekt byggdes som en del av en nätverkskommunikationsklass på Universidade do Algarve i samarbete med min kollega Lu í s Santos. Dess huvudsakliga syfte är att kontrollera tillgången till ett ellås via trådlöst wi
Arduino trådlöst kombinationslås med NRF24L01 och 4 -siffrors 7 -segmentskärm: 6 steg (med bilder)
![Arduino trådlöst kombinationslås med NRF24L01 och 4 -siffrors 7 -segmentskärm: 6 steg (med bilder) Arduino trådlöst kombinationslås med NRF24L01 och 4 -siffrors 7 -segmentskärm: 6 steg (med bilder)](https://i.howwhatproduce.com/images/005/image-14944-34-j.webp)
Arduino trådlöst kombinationslås med NRF24L01 och 4 -siffrors 7 -segmentskärm: Detta projekt började sitt liv som en övning för att göra något med en fyrsiffrig 7 -segmentskärm. Det jag kom på var möjligheten att ange fyrsiffrigt ett kombinationsnummer, men en gång det var klart, det var ganska tråkigt. Jag byggde den med en Arduino UNO.
Weatherized trådlöst nätverkskort med en vattenflaska: 4 steg (med bilder)
![Weatherized trådlöst nätverkskort med en vattenflaska: 4 steg (med bilder) Weatherized trådlöst nätverkskort med en vattenflaska: 4 steg (med bilder)](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10962306-weatherized-wireless-network-adapter-using-a-water-bottle-4-steps-with-pictures-j.webp)
Weatherized trådlös nätverksadapter med en vattenflaska: I Irak använde jag en vattenflaska för att väderbestämma mitt trådlösa nätverkskort. Det är ett enkelt förfarande, men det är mycket effektivt. Uppenbarligen kommer denna instruerbara att vara mest användbar för män och kvinnor i Mellanöstern, men kan också vara användbar