Inhaltsverzeichnis:
- Schritt 1: Holen Sie sich alle Teile
- Schritt 2: Das ESP32-Board
- Schritt 3: 2,8" TFT-Display für Arduino und ESP32
- Schritt 4: Anschließen des Displays
- Schritt 5: Der Code des Projekts
- Schritt 6: Abschließende Gedanken und Verbesserungen
Video: ESP32 Xiaomi Hack - Daten drahtlos abrufen - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Liebe Freunde willkommen zu einem anderen Instructable! Heute werden wir lernen, wie man die Daten erhält, die dieser Xiaomi Temperatur- und Feuchtigkeitsmonitor mit der Bluetooth-Funktionalität der ESP32-Platine überträgt.
Wie Sie sehen, verwende ich ein ESP32-Board und ein 2,8-Zoll-Farb-TFT-Display. Auf dem Display zeigen wir die Temperatur und die Luftfeuchtigkeit an. Das Coole ist, dass ich keine Sensoren an die ESP32-Platine angeschlossen habe. Ich erhalte die Temperatur und die Luftfeuchtigkeit drahtlos von diesem kommerziellen Xiaomi Temperatur- und Feuchtigkeitsmonitor. Wie cool ist das! Das Display auf dem Xiaomi-Gerät wird jede Sekunde aktualisiert, aber ich aktualisiere das Display, das mit der ESP32-Platine verbunden ist, alle 10 Sekunden, um Strom auf dem Xiaomi-Gerät zu sparen.
Dieser coole Xiaomi Temperatur- und Feuchtigkeitssensor zeigt die Temperatur und die Luftfeuchtigkeit auf seinem LCD-Display an und kann die Daten auch über das Bluetooth-Protokoll an andere Xiaomi-Geräte oder Apps übertragen. Die Geräte verwenden eine einzelne AAA-Batterie und da es sich um ein kommerzielles Produkt handelt, ist die Akkulaufzeit des Geräts ausgezeichnet. Es kann monatelang mit einer einzigen AAA-Batterie betrieben werden, was wir bei unseren DIY-Projekten nicht erreichen können. Vor ein paar Wochen habe ich entdeckt, dass es einigen schlauen Jungs gelungen ist, das Protokoll, mit dem Xiaomi die Daten vom Sensor überträgt, zurückzuentwickeln und diese Daten mit einem ESP32-Board abzurufen. Also habe ich es ausprobiert und wie Sie sehen können, funktioniert es!
Schritt 1: Holen Sie sich alle Teile
Sehen wir uns nun an, wie dieses Projekt erstellt wird. Wir brauchen ein ESP32-Board, ein 2,8-Zoll-ILI9341-Display, den Xiaomi Temperatur- und Feuchtigkeitssensor, ein Steckbrett und einige Kabel.
Hier sind einige Links zu den Teilen, die ich in diesem Instructable verwenden werde.
- ESP32 ▶
- 2,8"-Display ▶
- Xiaomi Sensor ▶
- Steckbrett ▶
- Kabel ▶
- USB-Messgerät ▶
- Powerbank ▶
Schritt 2: Das ESP32-Board
Wenn Sie damit nicht vertraut sind, der ESP32-Chip ist der Nachfolger des beliebten ESP8266-Chips, den wir in der Vergangenheit oft verwendet haben. Der ESP32 ist ein Biest! Es bietet zwei 32-Prozessorkerne, die mit 160 MHz arbeiten, eine enorme Menge an Speicher, WLAN, Bluetooth und viele andere Funktionen zu einem Preis von etwa 7 $! Tolles Zeug!
Bitte sehen Sie sich die ausführliche Rezension an, die ich für dieses Board erstellt habe. Ich habe das Video auf diesem Instructable angehängt. Es wird Ihnen helfen zu verstehen, warum dieser Chip die Art und Weise, wie wir Dinge herstellen, für immer verändern wird! Eines der aufregendsten Dinge am ESP32 ist, dass er trotz seiner hohen Leistung einen Tiefschlafmodus bietet, der nur 10 μΑs Strom benötigt. Dies macht den ESP32 zum idealen Chip für Low-Power-Anwendungen.
Schritt 3: 2,8" TFT-Display für Arduino und ESP32
Das Display ist groß und bietet eine Auflösung von 320 x 240 Pixel. Im Vergleich zu einem meiner Lieblings-Displays, dem 1,8-Zoll-Farb-TFT-Display, kann man es viel größer sehen. Der Bildschirm bietet auch eine Touch-Funktionalität, die ein zusätzlicher Bonus ist, und einen SD-Kartensteckplatz auf der Rückseite. Es verwendet die SPI-Schnittstelle, sodass die Verbindung mit dem Arduino oder dem ESP32-Board sehr einfach ist. Die Kosten für das Display sind relativ gering; Es kostet etwa 11 $, was meiner Meinung nach ein fairer Preis für das ist, was dieses Display bietet.
Eine weitere Besonderheit dieses Displays ist, dass es nicht wie das bisher verwendete Touch-Display als Schutzschild geliefert wird. Auf diese Weise können wir das Display mit jedem Board verbinden, dem Arduino Pro mini, dem STM32, dem ESP8266 und dem ESP32. Dies ist sehr wichtig, da wir jetzt ein kostengünstiges Display haben, das wir mit jedem Board verwenden können. Bisher waren die einzigen Touch-Displays, die wir mit diesen Boards verwenden konnten, die teureren Nextion-Displays, und ehrlich gesagt, obwohl ich sie gelegentlich benutze, mag ich sie nicht wirklich.
Schritt 4: Anschließen des Displays
Zuerst müssen wir das ESP32 Board mit dem 2,8“Display verbinden. Sie können den Schaltplan finden, der an Instructable angehängt ist. Ich verwende dieses DOIT ESP32 Board, das vor etwa zwei Jahren veröffentlicht wurde. Diese Version des Boards ist nicht mehr verfügbar, da es jetzt eine neuere Version davon gibt, die mehr Pins bietet, diese. Der einzige Grund, warum ich die alte Version der Platine verwende, ist, dass der GND-Pin der Platine neben den SPI-Pins auf der gleichen Seite der Platine liegt, was sie steckbrettfreundlich macht.
Nachdem wir das Display an das Board angeschlossen haben, können wir das Projekt einschalten. Nach wenigen Sekunden erhalten wir Live-Daten vom nahegelegenen Xiaomi-Gerät. Da das Gerät Bluetooth 4 verwendet, ist die Reichweite ziemlich gut. Wir können die Daten, die dieses Gerät überträgt, problemlos aus Entfernungen von bis zu 10 Metern oder mehr abrufen! Wir können auch den Akkustand des Xiaomi-Geräts empfangen, aber ich zeige diesen Wert nicht auf dem Bildschirm an.
Wenn wir dieses USB-Messgerät verwenden, können wir mit diesem großen Display sehen, dass die Stromaufnahme dieses Projekts etwa 120-150 mA beträgt. Wenn wir ein E-Paper-Display verwenden, das ESP32-Board in den Tiefschlafmodus versetzen und alle paar Minuten Daten vom Sensor abrufen, können wir dieses Projekt batteriefreundlich gestalten. Ich werde dies in einem zukünftigen Video versuchen. Dieses Projekt ist nur eine Demonstration, dass wir Daten von diesem Gerät drahtlos abrufen können.
Schritt 5: Der Code des Projekts
Sehen wir uns nun die Softwareseite des Projekts an.
Der Code des Projekts basiert auf diesem Projekt:
Ich habe den Code verwendet, der diese Daten vom Xiaomi-Gerät erhält, und damit ein eigenständiges Projekt erstellt.
In dieser Variable geben wir an, dass wir alle 10 Sekunden neue Daten abrufen müssen.
#define SCAN_TIME 10 // Sekunden
Hier erklären wir, dass wir die Temperatur in Grad Celsius anzeigen wollen. Wenn Sie das imperiale System verwenden möchten, setzen Sie diese Variable einfach auf false.
boolescher METRISCH = wahr; //Für metrisches System auf true setzen; falsch für imperial
Bei der Setup-Funktion initialisieren wir das Display und das Bluetooth-Modul des ESP32-Boards und zeichnen dann die Benutzeroberfläche auf den Bildschirm.
Leere Einrichtung () {
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); // Brownout-Detektor deaktivieren
tft.begin();
Serial.begin(115200);
Serial.println ("ESP32 XIAOMI-ANZEIGE"); initBluetooth();
drawUI();
}
Als nächstes suchen wir alle 10 Sekunden nach Bluetooth-Geräten in der Nähe. Wir stellen keine Verbindung zum Xiaomi-Gerät her, da es nicht benötigt wird. Wir scannen nur nach nahegelegenen Bluetooth-Low-Energy-Peripheriegeräten und überprüfen die gesendeten Werbepakete.
Void Schleife () { char printLog [256]; Serial.printf("BLE-Scan für %d Sekunden starten…\n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan->start(SCAN_TIME); int count = foundDevices.getCount(); printf("Gefundene Geräteanzahl: %d\n", count);
Verzögerung (100);
}
Die Feuchtigkeits- und Temperaturwerte werden in diesen Paketen gespeichert, sodass wir sie nur auslesen müssen. Nachdem wir die Werte gelesen haben, zeigen wir sie auf dem Bildschirm an. Wie immer finden Sie einen Link zum Code dieses Projekts in der Beschreibung, die diesem Instructable beigefügt ist.
Schritt 6: Abschließende Gedanken und Verbesserungen
Da wir nun wissen, wie man drahtlos Daten von diesem Sensor erhält, können wir eine komplette batteriebetriebene Wetterstation bauen. Da es sich bei diesem Xiaomi-Gerät um ein kommerzielles Produkt handelt, bietet es eine hervorragende Akkulaufzeit. Leider können wir bei unseren Projekten noch keinen ähnlichen Batterieverbrauch erreichen. Also plane ich, diesen Sensor als Außensensor für ein Wetterstationsprojekt zu verwenden, das ein großes E-Paper-Display verwendet. Es wird cool sein. Außerdem werde ich nach anderen Bluetooth-fähigen Geräten von Xiaomi suchen, die wir auf ähnliche Weise hacken können. Bleiben Sie dran.
Ich würde gerne Ihre Meinung zu diesem Projekt erfahren. Finden Sie es nützlich, dass wir Daten von einigen kommerziellen Bluetooth-Geräten abrufen können? Was werden Sie mit dieser Funktionalität erstellen? Ich würde gerne Ihre Ideen lesen, also posten Sie sie bitte in den Kommentaren unten. Vielen Dank!
Empfohlen:
PCB-Adapter-Hack - schnell und praktisch:): 5 Schritte
PCB-Adapter-Hack - schnell und handlich:): Hallo e-Earthlings, Dieses anweisbare ist für alle Armaturen und Profis im Bereich der Elektronik. Notwendigkeit ist die Mutter der Erfindung. Dieser kleine Trick ist eine dieser Erfindungen: DI wollte eine Schaltung prototypisieren, die eine SMD-c
ESP-01 Programmier-Hack - der Einfache :): 6 Schritte
ESP-01 Programmierer Hack - der Einfache :): Hallo ESPer, In diesem anweisbaren zeige ich Ihnen einen einfachen Hack, um einen Programmierer für ESP-01 / ESP8266-01 / ES-01-Modul zu machen. Die meisten von uns haben ein Arduino-Board oder FTDI USB-TTL-Geräte als Programmierer für dieses Modul verwendet. Beide Methoden funktionieren gut. Aber t
Uhrzeit und Datum aus dem Internet abrufen - Tutorial: 9 Schritte
Abrufen von Uhrzeit und Datum aus dem Internet - Tutorial: In diesem Tutorial erfahren Sie, wie Sie mit M5Stack StickC und Visuino das Datum und die Uhrzeit vom NIST TIME-Server abrufen. Sehen Sie sich ein Demonstrationsvideo an
PC drahtlos mit Augenzwinkern steuern;): 9 Schritte (mit Bildern)
Steuern Sie den PC drahtlos mit Augenzwinkern;): Wie wäre es, über Ihre Gewohnheiten hinauszugehen? Wie wäre es, etwas Neues auszuprobieren??!!!!Wie wäre es, wenn Sie Ihren PC steuern und alles tun, was Sie wollen, OHNE Tastatur und Maus zu benutzen!Hmm… Aber wie ist das möglich??Mit nur einem Wimpernschlag!! Nicht b
So beheben Sie das Problem beim Scrollen mit der Xiaomi-Maus – wikiHow
So beheben Sie das Xiaomi-Maus-Scroll-Problem: Wie bei jedem anderen Tool würde eine Computermaus aufgrund ihrer ständigen Verwendung irgendwann gewartet werden müssen. Die typische Abnutzung des Produkts führt dazu, dass es weniger effizient funktioniert als zu der Zeit, als es einst