Πίνακας περιεχομένων:
- Βήμα 1: Αποκτήστε όλα τα μέρη
- Βήμα 2: Ο πίνακας ESP32
- Βήμα 3: Οθόνη TFT 2,8 "για Arduino και ESP32
- Βήμα 4: Σύνδεση της οθόνης
- Βήμα 5: Ο Κώδικας του Έργου
- Βήμα 6: Τελικά αν και βελτιώσεις
Βίντεο: ESP32 Xiaomi Hack - Λήψη δεδομένων ασύρματα: 6 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Αγαπητοί φίλοι καλώς ήλθατε σε ένα άλλο εκπαιδευτικό! Σήμερα θα μάθουμε πώς να λαμβάνουμε τα δεδομένα που μεταδίδει αυτή η οθόνη θερμοκρασίας και υγρασίας της Xiaomi χρησιμοποιώντας τη λειτουργικότητα Bluetooth της πλακέτας ESP32.
Όπως μπορείτε να δείτε, χρησιμοποιώ έναν πίνακα ESP32 και μια έγχρωμη οθόνη TFT 2,8”. Στην οθόνη, εμφανίζουμε τη θερμοκρασία και την υγρασία. Το ωραίο είναι ότι δεν έχω συνδέσει αισθητήρες στην πλακέτα ESP32. Λαμβάνω τη θερμοκρασία και την υγρασία ασύρματα από αυτήν την εμπορική οθόνη θερμοκρασίας και υγρασίας της Xiaomi. Τι ωραίο που είναι! Η οθόνη στη συσκευή Xiaomi ενημερώνεται κάθε δευτερόλεπτο, αλλά ενημερώνω την οθόνη που είναι συνδεδεμένη στην πλακέτα ESP32 κάθε 10 δευτερόλεπτα για εξοικονόμηση ενέργειας στη συσκευή Xiaomi.
Αυτός ο δροσερός αισθητήρας θερμοκρασίας και υγρασίας Xiaomi εμφανίζει τη θερμοκρασία και την υγρασία στην οθόνη LCD και μπορεί επίσης να μεταφέρει τα δεδομένα σε άλλες συσκευές ή εφαρμογές Xiaomi χρησιμοποιώντας το πρωτόκολλο Bluetooth. Οι συσκευές χρησιμοποιούν μία μπαταρία AAA και δεδομένου ότι είναι εμπορικό προϊόν, η διάρκεια ζωής της μπαταρίας είναι εξαιρετική. Μπορεί να διαρκέσει με μία μπαταρία AAA για μήνες, κάτι που δεν μπορούμε να επιτύχουμε στα DIY έργα μας. Πριν από μερικές εβδομάδες, ανακάλυψα ότι μερικοί έξυπνοι τύποι κατάφεραν να αντιστρέψουν το πρωτόκολλο που χρησιμοποιεί η Xiaomi για τη μετάδοση των δεδομένων από τον αισθητήρα και κατάφεραν να λάβουν αυτά τα δεδομένα χρησιμοποιώντας έναν πίνακα ESP32. Το δοκίμασα λοιπόν και όπως βλέπετε λειτουργεί!
Βήμα 1: Αποκτήστε όλα τα μέρη
Ας δούμε τώρα πώς να φτιάξουμε αυτό το έργο. Χρειαζόμαστε έναν πίνακα ESP32, μια οθόνη ILI9341 2,8”, τον αισθητήρα θερμοκρασίας και υγρασίας της Xiaomi, μια σανίδα ψωμιού και μερικά καλώδια.
Ακολουθούν ορισμένοι σύνδεσμοι για τα μέρη που πρόκειται να χρησιμοποιήσω σε αυτό το Instructable.
- ESP32 ▶
- 2,8 "Οθόνη ▶
- Αισθητήρας Xiaomi ▶
- Breadboard ▶
- Καλώδια ▶
- Μετρητής USB ▶
- Powerbank ▶
Βήμα 2: Ο πίνακας ESP32
Εάν δεν είστε εξοικειωμένοι με αυτό, το τσιπ ESP32 είναι ο διάδοχος του δημοφιλούς τσιπ ESP8266 που έχουμε χρησιμοποιήσει πολλές φορές στο παρελθόν. Το ESP32 είναι κτήνος! Προσφέρει δύο 32 πυρήνες επεξεργασίας που λειτουργούν στα 160MHz, τεράστιο όγκο μνήμης, WiFi, Bluetooth και πολλές άλλες δυνατότητες με κόστος περίπου 7 $! Καταπληκτικά πράγματα!
Παρακαλούμε δείτε τη λεπτομερή κριτική που έχω ετοιμάσει για αυτόν τον πίνακα. Επισυνάπτω το βίντεο σε αυτό το Instructable. Θα σας βοηθήσει να καταλάβετε γιατί αυτό το τσιπ θα αλλάξει τον τρόπο που φτιάχνουμε τα πράγματα για πάντα! Ένα από τα πιο συναρπαστικά πράγματα σχετικά με το ESP32 είναι ότι παρόλο που είναι τόσο ισχυρό, προσφέρει μια λειτουργία ύπνου που απαιτεί μόνο 10μΑ ρεύματος. Αυτό καθιστά το ESP32 το ιδανικό τσιπ για εφαρμογές χαμηλής ισχύος.
Βήμα 3: Οθόνη TFT 2,8 "για Arduino και ESP32
Η οθόνη είναι μεγάλη και προσφέρει ανάλυση 320x240 pixel. Σε σύγκριση με μία από τις αγαπημένες μου οθόνες, την έγχρωμη οθόνη TFT 1,8”μπορείτε να την δείτε πολύ μεγαλύτερη. Η οθόνη προσφέρει επίσης λειτουργικότητα αφής που είναι ένα επιπλέον μπόνους και μια υποδοχή κάρτας SD στο πίσω μέρος. Χρησιμοποιεί τη διασύνδεση SPI, οπότε η σύνδεση με το Arduino ή την πλακέτα ESP32 είναι πολύ απλή. Το κόστος της οθόνης είναι σχετικά χαμηλό. κοστίζει περίπου 11 $ που κατά τη γνώμη μου είναι μια δίκαιη τιμή για αυτό που προσφέρει αυτή η οθόνη.
Ένα άλλο πράγμα όπως σε αυτήν την οθόνη είναι ότι δεν έρχεται ως ασπίδα όπως η οθόνη αφής που χρησιμοποιούσαμε μέχρι τώρα. Με αυτόν τον τρόπο, μπορούμε να συνδέσουμε την οθόνη σε οποιαδήποτε πλακέτα, το Arduino Pro mini, το STM32, το ESP8266 και το ESP32. Αυτό είναι πολύ σημαντικό γιατί έχουμε τώρα μια οθόνη χαμηλού κόστους που μπορούμε να χρησιμοποιήσουμε με κάθε πίνακα. Μέχρι τώρα, η μόνη οθόνη αφής που μπορούσαμε να χρησιμοποιήσουμε με αυτούς τους πίνακες ήταν οι οθόνες Nextion που είναι πιο ακριβές και για να είμαι ειλικρινής παρόλο που τις χρησιμοποιώ κατά καιρούς, δεν μου αρέσουν πολύ.
Βήμα 4: Σύνδεση της οθόνης
Πρώτον, πρέπει να συνδέσουμε την πλακέτα ESP32 στην οθόνη 2,8”. Μπορείτε να βρείτε το σχηματικό που επισυνάπτεται στο Instructable. Χρησιμοποιώ αυτόν τον πίνακα DOIT ESP32 που κυκλοφόρησε πριν από περίπου δύο χρόνια. Αυτή η έκδοση του πίνακα δεν είναι πλέον διαθέσιμη, δεδομένου ότι τώρα υπάρχει μια νεότερη έκδοση του που προσφέρει περισσότερες καρφίτσες, αυτή. Ο μόνος λόγος που χρησιμοποιώ την παλιά έκδοση του πίνακα είναι ότι ο πείρος GND του πίνακα τοποθετείται δίπλα στις καρφίτσες SPI, στην ίδια πλευρά του πίνακα, γεγονός που το καθιστά φιλικό προς το ψωμί.
Αφού συνδέσουμε την οθόνη στην πλακέτα, μπορούμε να ενεργοποιήσουμε το έργο. Μετά από μερικά δευτερόλεπτα, λαμβάνουμε ζωντανά δεδομένα από την κοντινή συσκευή Xiaomi. Δεδομένου ότι η συσκευή χρησιμοποιεί Bluetooth 4, το εύρος της είναι αρκετά καλό. Μπορούμε εύκολα να πάρουμε τα δεδομένα που μεταδίδει αυτή η συσκευή από αποστάσεις έως και 10 μέτρα ή περισσότερο! Μπορούμε επίσης να λάβουμε το επίπεδο μπαταρίας της συσκευής Xiaomi, αλλά δεν εμφανίζω αυτήν την τιμή στην οθόνη.
Εάν χρησιμοποιούμε αυτόν τον μετρητή USB, μπορούμε να δούμε ότι η τρέχουσα κλήρωση αυτού του έργου είναι περίπου 120-150 mA χρησιμοποιώντας αυτήν τη μεγάλη οθόνη. Εάν χρησιμοποιούμε οθόνη ηλεκτρονικού χαρτιού, θέτουμε την πλακέτα ESP32 σε κατάσταση βαθιάς αναστολής λειτουργίας και λαμβάνουμε δεδομένα από τον αισθητήρα κάθε λίγα λεπτά, ώστε να κάνουμε αυτό το έργο φιλικό προς την μπαταρία. Θα το δοκιμάσω σε μελλοντικό βίντεο. Αυτό το έργο είναι απλώς μια επίδειξη ότι μπορούμε να λάβουμε δεδομένα από αυτήν τη συσκευή ασύρματα.
Βήμα 5: Ο Κώδικας του Έργου
Ας δούμε τώρα την πλευρά του λογισμικού του έργου.
Ο κώδικας του έργου βασίζεται σε αυτό το έργο:
Χρησιμοποίησα τον κώδικα που λαμβάνει αυτά τα δεδομένα από τη συσκευή Xiaomi και έχτισα ένα αυτόνομο έργο με αυτήν.
Σε αυτήν τη μεταβλητή, δηλώνουμε ότι πρέπει να λαμβάνουμε νέα δεδομένα κάθε 10 δευτερόλεπτα.
#define SCAN_TIME 10 // δευτερόλεπτα
Εδώ, δηλώνουμε ότι θέλουμε να εμφανίσουμε τη θερμοκρασία σε βαθμούς Κελσίου. Εάν θέλετε να χρησιμοποιήσετε το Imperial σύστημα, απλώς ορίστε αυτήν τη μεταβλητή σε false.
boolean METRIC = true? // Ορισμός true για μετρικό σύστημα. ψευδές για αυτοκρατορικό
Στη λειτουργία ρύθμισης αρχικοποιούμε την οθόνη και τη μονάδα Bluetooth της πλακέτας ESP32 και στη συνέχεια σχεδιάζουμε τη διεπαφή χρήστη στην οθόνη.
void setup () {
WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // απενεργοποίηση ανιχνευτή brownout
tft.begin ();
Serial.begin (115200);
Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();
drawUI ();
}
Στη συνέχεια, αναζητούμε κοντινές συσκευές Bluetooth κάθε 10 δευτερόλεπτα. Δεν πραγματοποιούμε σύνδεση με τη Συσκευή Xiaomi αφού δεν χρειάζεται. Σαρώνουμε μόνο για κοντινά περιφερειακά χαμηλής κατανάλωσης Bluetooth και ελέγχουμε τα πακέτα διαφημίσεων μετάδοσης.
void loop () {char printLog [256]; Serial.printf ("Έναρξη σάρωσης BLE για %d δευτερόλεπτα… / n", SCAN_TIME); BLEScanΑποτελέσματα βρέθηκανΣυσκευές = pBLEScan-> έναρξη (SCAN_TIME); int count = foundDevices.getCount (); printf ("Βρέθηκε αριθμός συσκευών: %d / n", αριθμός);
καθυστέρηση (100)?
}
Οι τιμές υγρασίας και θερμοκρασίας αποθηκεύονται σε αυτά τα πακέτα, οπότε πρέπει μόνο να τα διαβάσουμε. Αφού διαβάσουμε τις τιμές τις εμφανίζουμε στην οθόνη. Όπως πάντα, μπορείτε να βρείτε έναν σύνδεσμο προς τον κώδικα αυτού του έργου στην περιγραφή που επισυνάπτεται σε αυτό το Instructable.
Βήμα 6: Τελικά αν και βελτιώσεις
Τώρα που γνωρίζουμε πώς να λαμβάνουμε δεδομένα ασύρματα από αυτόν τον αισθητήρα, μπορούμε να δημιουργήσουμε έναν πλήρη μετεωρολογικό σταθμό με μπαταρία. Δεδομένου ότι αυτή η συσκευή Xiaomi είναι εμπορικό προϊόν, προσφέρει μεγάλη διάρκεια ζωής της μπαταρίας. Δυστυχώς, δεν μπορούμε ακόμη να επιτύχουμε παρόμοια κατανάλωση μπαταρίας στα έργα μας. Έτσι, σχεδιάζω να χρησιμοποιήσω αυτόν τον αισθητήρα ως εξωτερικό αισθητήρα για ένα έργο μετεωρολογικού σταθμού που θα χρησιμοποιεί μια μεγάλη οθόνη ηλεκτρονικού χαρτιού. Θα είναι δροσερό. Επίσης, θα ψάξω για άλλες συσκευές με δυνατότητα Xiaomi Bluetooth που μπορούμε να χακάρουμε με παρόμοιο τρόπο. Μείνετε συντονισμένοι.
Θα ήθελα πολύ να μάθω τη γνώμη σας για αυτό το έργο. Θεωρείτε χρήσιμο το ότι μπορούμε να λαμβάνουμε δεδομένα από ορισμένες εμπορικές συσκευές Bluetooth; Τι πρόκειται να δημιουργήσετε χρησιμοποιώντας αυτήν τη λειτουργικότητα; Θα ήθελα να διαβάσω τις ιδέες σας, γι 'αυτό δημοσιεύστε τις στην παρακάτω ενότητα σχολίων. Ευχαριστώ!
Συνιστάται:
Ανάγνωση δεδομένων υπερηχητικού αισθητήρα (HC-SR04) Δεδομένων σε οθόνη LCD 128 × 128 και οπτικοποίηση χρησιμοποιώντας Matplotlib: 8 βήματα
Ανάγνωση δεδομένων υπερηχητικού αισθητήρα (HC-SR04) Δεδομένων σε LCD 128 × 128 και οπτικοποίηση χρησιμοποιώντας Matplotlib: Σε αυτό το διδακτικό, θα χρησιμοποιήσουμε το MSP432 LaunchPad + BoosterPack για την εμφάνιση δεδομένων υπερήχων αισθητήρων (HC-SR04) σε 128 × 128 LCD και στείλτε τα δεδομένα στον Η / Υ σειριακά και οπτικοποιήστε τα χρησιμοποιώντας το Matplotlib
Σύστημα απόκτησης δεδομένων και απεικόνισης δεδομένων για ηλεκτρικό ποδήλατο MotoStudent: 23 βήματα
Σύστημα απόκτησης δεδομένων και απεικόνισης δεδομένων για MotoStudent Electric Racing Bike: Ένα σύστημα απόκτησης δεδομένων είναι μια συλλογή υλικού και λογισμικού που συνεργάζονται για τη συλλογή δεδομένων από εξωτερικούς αισθητήρες, την αποθήκευση και την επεξεργασία τους στη συνέχεια, έτσι ώστε να μπορούν να απεικονιστούν γραφικά και να αναλυθούν, επιτρέποντας στους μηχανικούς να κάνουν
Ελέγξτε τον υπολογιστή ασύρματα με το μάτι που αναβοσβήνει;): 9 βήματα (με εικόνες)
Ελέγξτε τον υπολογιστή ασύρματα με το μάτι που αναβοσβήνει;): Τι γίνεται με το να ξεπερνάτε τις συνήθειές σας ;; Τι γίνεται με το να δοκιμάσετε κάτι καινούργιο ;; !!!! Τι γίνεται με τον έλεγχο του υπολογιστή σας και να κάνετε ό, τι θέλετε ΧΩΡΙΣ να χρησιμοποιήσετε το πληκτρολόγιο και το ποντίκι σας! Χμμ … Αλλά πώς είναι δυνατόν αυτό; Μην β
Φορητή κονσόλα με ασύρματα χειριστήρια και αισθητήρες (Arduino MEGA & UNO): 10 βήματα (με εικόνες)
Φορητή κονσόλα με ασύρματα χειριστήρια και αισθητήρες (Arduino MEGA & UNO): Τι χρησιμοποίησα:- Arduino MEGA- 2x Arduino UNO- Adafruit 3.5 " TFT 320x480 Touchscreen HXD8357D- Buzzer- 4Ohm 3W Speaker- 5mm LED lights- Ultimaker 2+ Printer w/ Black PLA Filament- Lasercutter w/ MDF wood- Black spray spray (for the wood)- 3x nRF24
IRecoil - Ασύρματα ακουστικά IPhone: 6 βήματα (με εικόνες)
IRecoil - Ασύρματα ακουστικά IPhone: Τα ακουστικά iPhone είναι υπέροχα, με ενσωματωμένο μικρόφωνο και έλεγχο μουσικής, αλλά κάθε φορά που τα έβγαζα από την τσέπη μου είχα έναν μεγάλο μπερδεμένο κόμπο που χρειάστηκε λίγος χρόνος για να αναιρεθεί. Έχω δει τα ακουστικά τρίτου μέρους που έχουν τον μηχανισμό αναδίπλωσης, αλλά