Isi kandungan:
- Langkah 1: Dapatkan Semua Bahagian
- Langkah 2: Papan ESP32
- Langkah 3: Paparan TFT 2.8 "untuk Arduino dan ESP32
- Langkah 4: Menyambungkan Paparan
- Langkah 5: Kod Projek
- Langkah 6: Pemikiran & Penambahbaikan Akhir
Video: ESP32 Xiaomi Hack - Dapatkan Data Tanpa Wayar: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Rakan-rakan yang terhormat selamat datang ke Instructable yang lain! Hari ini kita akan belajar bagaimana mendapatkan data yang dipancarkan oleh monitor Suhu dan Kelembapan Xiaomi ini menggunakan fungsi Bluetooth pada papan ESP32.
Seperti yang anda lihat, saya menggunakan papan ESP32 dan paparan TFT warna 2,8 . Pada paparan, kami memaparkan suhu dan kelembapan. Perkara yang menarik ialah saya tidak menyambungkan sensor ke papan ESP32. Saya mendapat suhu dan kelembapan tanpa wayar dari monitor Suhu dan Kelembapan Xiaomi komersial ini. Betapa hebatnya! Paparan pada peranti Xiaomi dikemas kini setiap saat tetapi saya mengemas kini paparan yang disambungkan ke papan ESP32 setiap 10 saat untuk menjimatkan kuasa pada peranti Xiaomi.
Sensor suhu dan kelembapan Xiaomi yang sejuk ini memperlihatkan suhu dan kelembapan pada paparan LCDnya dan juga dapat mengirimkan data ke Peranti atau aplikasi Xiaomi lain menggunakan protokol Bluetooth. Peranti menggunakan bateri AAA tunggal dan kerana ia adalah produk komersial, jangka hayat bateri peranti sangat baik. Ia boleh bertahan dengan bateri AAA tunggal selama berbulan-bulan, sesuatu yang tidak dapat kita capai pada projek DIY kita. Beberapa minggu yang lalu, saya dapati bahawa beberapa lelaki pintar berjaya membalikkan semula protokol yang digunakan Xiaomi untuk menghantar data dari sensor dan berjaya mendapatkan data tersebut menggunakan papan ESP32. Oleh itu, saya mencubanya, dan seperti yang anda lihat, ia berjaya!
Langkah 1: Dapatkan Semua Bahagian
Mari kita lihat bagaimana membina projek ini. Kami memerlukan papan ESP32, paparan ILI9341 2,8”, sensor suhu dan kelembapan Xiaomi, papan roti dan beberapa wayar.
Berikut adalah beberapa pautan ke bahagian yang akan saya gunakan dalam Instructable ini.
- ESP32 ▶
- Paparan 2.8 "ed
- Sensor Xiaomi ▶
- Papan Roti ▶
- Wayar ▶
- Meter USB ▶
- Powerbank ▶
Langkah 2: Papan ESP32
Sekiranya anda tidak biasa dengannya, cip ESP32 adalah penerus cip ESP8266 yang popular yang telah kami gunakan berkali-kali. ESP32 adalah binatang! Ia menawarkan dua 32 teras pemprosesan yang beroperasi pada 160MHz, sejumlah besar memori, WiFi, Bluetooth dan banyak lagi ciri lain dengan kos sekitar 7 $! Barang yang luar biasa!
Sila lihat ulasan terperinci yang telah saya sediakan untuk papan ini. Saya telah melampirkan video di Instructable ini. Ini akan membantu memahami mengapa cip ini akan mengubah cara kita membuat sesuatu selamanya! Salah satu perkara yang paling menggembirakan mengenai ESP32 ialah walaupun sangat kuat, ia menawarkan mod tidur nyenyak yang hanya memerlukan 10μΑ arus. Ini menjadikan ESP32 cip yang ideal untuk aplikasi kuasa rendah.
Langkah 3: Paparan TFT 2.8 "untuk Arduino dan ESP32
Layarnya besar, dan menawarkan resolusi 320x240 piksel. Berbanding dengan salah satu paparan kegemaran saya, paparan TFT Warna 1.8 anda dapat melihatnya jauh lebih besar. Layar juga menawarkan fungsi sentuhan yang merupakan bonus tambahan dan slot kad SD di bahagian belakang. Ia menggunakan antara muka SPI, jadi hubungan dengan Arduino atau papan ESP32 sangat mudah. Kos paparannya agak rendah; harganya sekitar 11 $ yang pada pendapat saya adalah harga yang berpatutan untuk apa yang ditawarkan paparan ini.
Perkara lain seperti paparan ini adalah bahawa ia tidak menjadi perisai seperti paparan sentuh yang kita gunakan selama ini. Dengan cara ini, kita dapat menyambungkan paparan ke papan apa pun, Arduino Pro mini, STM32, ESP8266, dan ESP32. Ini sangat penting kerana kita sekarang mempunyai paparan kos rendah yang dapat kita gunakan dengan setiap papan. Sehingga kini, satu-satunya paparan sentuhan yang dapat kami gunakan dengan papan ini adalah paparan Nextion yang lebih mahal, dan jujur walaupun saya menggunakannya dari semasa ke semasa, saya tidak begitu menyukainya.
Langkah 4: Menyambungkan Paparan
Pertama, kita harus menyambungkan Papan ESP32 ke paparan 2.8”. Anda boleh mendapatkan skema yang dilampirkan di Instructable. Saya menggunakan papan DOIT ESP32 ini yang dilancarkan kira-kira dua tahun yang lalu. Versi papan ini tidak lagi tersedia kerana kini terdapat versi yang lebih baru yang menawarkan lebih banyak pin, yang satu ini. Satu-satunya sebab saya menggunakan versi papan yang lama adalah bahawa pin GND papan diletakkan di sebelah pin SPI, di sisi papan yang sama, yang menjadikannya papan roti yang mesra.
Setelah menyambungkan paparan ke papan, kami dapat menghidupkan projek. Selepas beberapa saat, kami menerima data langsung dari Peranti Xiaomi yang berdekatan. Oleh kerana peranti menggunakan Bluetooth 4, julatnya cukup bagus. Kami dapat dengan mudah mendapatkan data yang dihantar oleh peranti ini dari jarak hingga 10 meter atau lebih! Kami juga dapat menerima tahap bateri Peranti Xiaomi tetapi saya tidak menunjukkan nilai ini di layar.
Sekiranya kita menggunakan meter USB ini, kita dapat melihat bahawa tarikan semasa projek ini adalah sekitar 120-150 mA menggunakan paparan besar ini. Sekiranya kita menggunakan paparan e-kertas, pasangkan papan ESP32 dalam mod tidur nyenyak, dan dapatkan data dari sensor setiap beberapa minit, kita dapat menjadikan projek ini mesra bateri. Saya akan mencuba ini dalam video yang akan datang. Projek ini hanyalah demonstrasi bahawa kita dapat memperoleh data dari peranti ini secara wayarles.
Langkah 5: Kod Projek
Mari kita lihat bahagian perisian projek ini.
Kod projek berdasarkan projek ini:
Saya menggunakan kod yang mendapat data dari peranti Xiaomi dan membina projek yang berdiri sendiri dengannya.
Dalam pemboleh ubah ini, kami menyatakan bahawa kami perlu mendapatkan data baru setiap 10 saat.
#tentukan SCAN_TIME 10 // saat
Di sini, kami menyatakan bahawa kami ingin memaparkan suhu dalam darjah Celsius. Sekiranya anda ingin menggunakan sistem Imperial, tetapkan pemboleh ubah ini ke false.
METRIK boolean = benar; // Tetapkan untuk sistem metrik; palsu untuk imperial
Pada fungsi penyediaan kami menginisialisasi paparan dan modul Bluetooth papan ESP32 dan kemudian kami menarik antara muka pengguna di skrin.
batal persediaan () {
WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // lumpuhkan pengesan brownout
tft.begin ();
Serial.begin (115200);
Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();
drawUI ();
}
Seterusnya, kami mencari peranti Bluetooth yang berdekatan setiap 10 saat. Kami tidak membuat sambungan ke Peranti Xiaomi kerana tidak diperlukan. Kami hanya mencari periferal tenaga rendah Bluetooth yang berdekatan dan memeriksa paket iklan siaran.
gelung kosong () {char printLog [256]; Serial.printf ("Mulakan imbasan BLE selama% d saat… / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); int count = foundDevices.getCount (); printf ("Jumlah peranti yang dijumpai:% d / n", kiraan);
kelewatan (100);
}
Nilai kelembapan dan suhu disimpan dalam paket tersebut, jadi kami hanya perlu membacanya. Selepas kami membaca nilai-nilai kami memaparkannya di skrin. Seperti biasa anda boleh mendapatkan pautan ke kod projek ini dalam keterangan yang dilampirkan di Instructable ini.
Langkah 6: Pemikiran & Penambahbaikan Akhir
Setelah mengetahui bagaimana mendapatkan data tanpa wayar dari sensor ini, kita dapat membina stesen cuaca berkuasa bateri yang lengkap. Oleh kerana Peranti Xiaomi ini adalah produk komersial, ia menawarkan jangka hayat bateri yang hebat. Malangnya, kami belum dapat mencapai penggunaan bateri yang serupa pada projek kami. Jadi, saya merancang untuk menggunakan sensor ini sebagai sensor luar untuk projek stesen cuaca yang akan menggunakan paparan e-kertas yang besar. Ia akan menjadi sejuk. Juga, saya akan mencari peranti berkemampuan Bluetooth Xiaomi lain yang boleh kita hack dengan cara yang serupa. Nantikan.
Saya ingin mengetahui pendapat anda mengenai projek ini. Adakah anda merasa berguna bahawa kita dapat memperoleh data dari beberapa peranti Bluetooth komersial? Apa yang akan anda bina menggunakan fungsi ini? Saya ingin membaca idea anda, jadi sila hantarkannya di bahagian komen di bawah. Terima kasih!
Disyorkan:
Robot Arduino Tanpa Wayar Menggunakan Modul Tanpa Wayar HC12: 7 Langkah
Robot Arduino Tanpa Wayar Menggunakan Modul Tanpa Wayar HC12: Hai kawan-kawan, selamat datang kembali. Dalam catatan sebelumnya, saya telah menjelaskan apa itu H Bridge Circuit, IC pemandu motor L293D, IC pemandu L293D piggybacking untuk memandu pemandu motor semasa yang tinggi dan bagaimana anda boleh merancang dan membuat Papan Pemandu motor L293D anda sendiri
Pencatat Data GPS Tanpa Wayar untuk Hidupan Liar: 9 Langkah (dengan Gambar)
Logger Data GPS Tanpa Wayar untuk Hidupan Liar: Dalam arahan ini, kami akan menunjukkan kepada anda bagaimana membuat logger data GPS berasaskan Arduino yang kecil dan murah, dengan kemampuan tanpa wayar! Menggunakan telemetri untuk mengkaji pergerakan hidupan liar boleh menjadi alat yang sangat penting bagi ahli biologi. Ia dapat memberitahu anda di mana
Penyejuk / Dudukan Laptop Kos Sifar (Tanpa Lem, Tanpa Penggerudian, Tanpa Mur & Baut, Tanpa Skru): 3 Langkah
Penyejuk / Dudukan Laptop Kos Sifar (Tanpa Lem, Tanpa Penggerudian, Tanpa Mur & Baut, Tanpa Skru): KEMASKINI: SILA KINDLY VOTE FOR MY INSTRUCTABLE, TERIMA KASIH ^ _ ^ ANDA JUGA MUNGKIN MENGUNDI LAIN MASUK DI www.instructables.com/id/Zero-Cost-Aluminium-Furnace-No-Propane-No-Glue-/ ATAU MUNGKIN MEMBERIKAN suara untuk rakan baik saya
Peretas Pintu Tanpa Wayar ke Suis Penggera Tanpa Wayar atau Suis Hidup / Mati: 4 Langkah
Peretas Pintu Tanpa Wayar ke Suis Penggera Tanpa Wayar atau Suis Hidup / Mati: Saya baru-baru ini membina sistem penggera dan memasangnya di rumah saya. Saya menggunakan suis magnet di pintu dan memasang kabel melalui loteng. Tingkap adalah kisah lain dan pendawaian keras bukan pilihan. Saya memerlukan penyelesaian tanpa wayar dan ini
Tukar Penghala Tanpa Wayar ke Jalur Akses 2x Ekstensi Tanpa Wayar: 5 Langkah
Tukar Penghala Tanpa Wayar ke Jalur Akses 2x Ekstensi Tanpa Wayar: Saya mempunyai sambungan internet tanpa wayar yang lemah di rumah saya disebabkan oleh RSJ (rasuk sokongan logam di siling) dan ingin meningkatkan isyarat atau menambah pemanjang tambahan untuk seluruh rumah. Saya telah melihat pemanjangan sekitar & £ 50 dalam sebuah elektro