Daftar Isi:
- Langkah 1: Dapatkan Semua Bagian
- Langkah 2: Papan ESP32
- Langkah 3: 2.8 "TFT Display untuk Arduino dan ESP32
- Langkah 4: Menghubungkan Tampilan
- Langkah 5: Kode Proyek
- Langkah 6: Pemikiran & Perbaikan Terakhir
Video: ESP32 Xiaomi Hack - Dapatkan Data Secara Nirkabel: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Teman-teman terkasih, selamat datang di Instructable lain! Hari ini kita akan belajar cara mendapatkan data yang ditransmisikan oleh monitor Suhu dan Kelembaban Xiaomi ini menggunakan fungsionalitas Bluetooth dari papan ESP32.
Seperti yang Anda lihat, saya menggunakan papan ESP32 dan layar TFT berwarna 2,8”. Di layar, kami menampilkan suhu dan kelembaban. Yang keren adalah saya belum menghubungkan sensor apa pun ke papan ESP32. Saya mendapatkan suhu dan kelembaban secara nirkabel dari monitor Suhu dan Kelembaban Xiaomi komersial ini. Betapa kerennya itu! Tampilan pada perangkat Xiaomi diperbarui setiap detik tetapi saya memperbarui tampilan yang terhubung ke papan ESP32 setiap 10 detik untuk menghemat daya pada perangkat Xiaomi.
Sensor suhu dan kelembaban Xiaomi yang keren ini menampilkan suhu dan kelembaban pada layar LCD-nya dan juga dapat mengirimkan data ke Perangkat atau aplikasi Xiaomi lainnya menggunakan protokol Bluetooth. Perangkat menggunakan baterai AAA tunggal dan karena ini adalah produk komersial, masa pakai baterai perangkat sangat baik. Itu dapat bertahan dengan satu baterai AAA selama berbulan-bulan, sesuatu yang tidak dapat kami capai pada proyek DIY kami. Beberapa minggu yang lalu, saya menemukan bahwa beberapa orang pintar berhasil merekayasa balik protokol yang digunakan Xiaomi untuk mengirimkan data dari sensor dan berhasil mendapatkan data tersebut menggunakan papan ESP32. Jadi saya mencobanya, dan seperti yang Anda lihat itu berhasil!
Langkah 1: Dapatkan Semua Bagian
Sekarang mari kita lihat bagaimana membangun proyek ini. Kami membutuhkan papan ESP32, layar ILI9341 2,8”, sensor suhu dan kelembaban Xiaomi, papan tempat memotong roti, dan beberapa kabel.
Berikut adalah beberapa tautan ke bagian-bagian yang akan saya gunakan dalam Instructable ini.
- ESP32
- 2.8" Tampilan
- Sensor Xiaomi
- Papan tempat memotong roti
- Kabel
- Pengukur USB
- Powerbank
Langkah 2: Papan ESP32
Jika Anda belum mengetahuinya, chip ESP32 adalah penerus chip ESP8266 populer yang telah kami gunakan berkali-kali di masa lalu. ESP32 adalah binatang buas! Ia menawarkan dua 32 inti pemrosesan yang beroperasi pada 160MHz, sejumlah besar memori, WiFi, Bluetooth, dan banyak fitur lainnya dengan biaya sekitar $7! Hal-hal yang menakjubkan!
Silakan tonton ulasan terperinci yang telah saya siapkan untuk forum ini. Saya telah melampirkan video di Instructable ini. Ini akan membantu memahami mengapa chip ini akan mengubah cara kita membuat sesuatu selamanya! Salah satu hal yang paling menarik tentang ESP32 adalah meskipun sangat bertenaga, ia menawarkan mode deep-sleep yang hanya membutuhkan 10μΑs arus. Ini menjadikan ESP32 chip yang ideal untuk aplikasi daya rendah.
Langkah 3: 2.8 "TFT Display untuk Arduino dan ESP32
Layarnya besar, dan menawarkan resolusi 320x240 piksel. Dibandingkan dengan salah satu layar favorit saya, layar TFT Warna 1,8” Anda dapat melihatnya jauh lebih besar. Layar juga menawarkan fungsionalitas sentuh yang merupakan bonus tambahan dan slot kartu SD di bagian belakang. Ini menggunakan antarmuka SPI, sehingga koneksi dengan Arduino atau papan ESP32 sangat mudah. Biaya tampilan relatif rendah; harganya sekitar $ 11 yang menurut saya adalah harga yang wajar untuk apa yang ditawarkan oleh tampilan ini.
Hal lain seperti tentang tampilan ini adalah tidak hadir sebagai pelindung seperti layar sentuh yang kami gunakan selama ini. Dengan cara ini, kita dapat menghubungkan layar ke papan apa pun, Arduino Pro mini, STM32, ESP8266, dan ESP32. Ini sangat penting karena kami sekarang memiliki layar murah yang dapat kami gunakan dengan setiap papan. Sampai sekarang, satu-satunya layar sentuh yang dapat kami gunakan dengan papan ini adalah layar Nextion yang lebih mahal, dan sejujurnya meskipun saya menggunakannya dari waktu ke waktu, saya tidak terlalu menyukainya.
Langkah 4: Menghubungkan Tampilan
Pertama, kita harus menghubungkan Papan ESP32 ke layar 2,8”. Anda dapat menemukan skema yang dilampirkan ke Instructable. Saya menggunakan papan DOIT ESP32 ini yang dirilis sekitar dua tahun lalu. Versi papan ini tidak lagi tersedia karena sekarang tersedia versi yang lebih baru yang menawarkan lebih banyak pin, yang ini. Satu-satunya alasan saya menggunakan papan versi lama adalah bahwa pin GND papan ditempatkan di sebelah pin SPI, di sisi papan yang sama, yang membuatnya ramah papan tempat memotong roti.
Setelah menghubungkan layar ke papan, kami dapat menghidupkan proyek. Setelah beberapa detik, kami menerima data langsung dari Perangkat Xiaomi terdekat. Karena perangkat ini menggunakan Bluetooth 4 jangkauannya cukup bagus. Kami dapat dengan mudah mendapatkan data yang dikirimkan perangkat ini dari jarak hingga 10 meter atau lebih! Kami juga dapat menerima tingkat baterai Perangkat Xiaomi tetapi saya tidak menampilkan nilai ini di layar.
Jika kita menggunakan USB meter ini, kita dapat melihat bahwa arus yang mengalir dari proyek ini adalah sekitar 120-150 mA menggunakan layar besar ini. Jika kami menggunakan tampilan e-paper, menempatkan papan ESP32 dalam mode tidur nyenyak, dan mendapatkan data dari sensor setiap beberapa menit, kami dapat membuat proyek ini ramah baterai. Saya akan mencoba ini di video mendatang. Proyek ini hanyalah demonstrasi bahwa kita bisa mendapatkan data dari perangkat ini secara nirkabel.
Langkah 5: Kode Proyek
Sekarang mari kita lihat sisi perangkat lunak dari proyek.
Kode proyek didasarkan pada proyek ini:
Saya menggunakan kode yang mendapatkan data itu dari perangkat Xiaomi dan membangun proyek mandiri dengannya.
Dalam variabel ini, kami menyatakan bahwa kami perlu mendapatkan data baru setiap 10 detik.
#define SCAN_TIME 10 // detik
Di sini, kami menyatakan bahwa kami ingin menampilkan suhu dalam derajat Celcius. Jika Anda ingin menggunakan sistem Imperial cukup atur variabel ini ke false.
boolean METRIC = benar; //Tetapkan true untuk sistem metrik; palsu untuk kekaisaran
Pada fungsi pengaturan kami menginisialisasi tampilan dan modul Bluetooth dari papan ESP32 dan kemudian kami menggambar antarmuka pengguna di layar.
batalkan pengaturan() {
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //nonaktifkan detektor brownout
tft.mulai();
Serial.begin(115200);
Serial.println("TAMPILAN XIAOMI ESP32"); initBluetooth();
drawUI();
}
Selanjutnya, kami mencari perangkat Bluetooth terdekat setiap 10 detik. Kami tidak membuat koneksi ke Perangkat Xiaomi karena tidak diperlukan. Kami hanya memindai periferal Bluetooth hemat energi terdekat dan memeriksa paket iklan siaran.
void loop() { char printLog[256]; Serial.printf("Mulai pemindaian BLE selama %d detik…\n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan->start(SCAN_TIME); int hitung = foundDevices.getCount(); printf("Jumlah perangkat yang ditemukan: %d\n", hitung);
penundaan(100);
}
Nilai kelembaban dan suhu disimpan dalam paket tersebut, jadi kita hanya perlu membacanya. Setelah kami membaca nilainya, kami menampilkannya di layar. Seperti biasa, Anda dapat menemukan tautan ke kode proyek ini dalam deskripsi yang dilampirkan pada Instruksi ini.
Langkah 6: Pemikiran & Perbaikan Terakhir
Sekarang setelah kita mengetahui cara mendapatkan data secara nirkabel dari sensor ini, kita dapat membangun stasiun cuaca bertenaga baterai yang lengkap. Karena Perangkat Xiaomi ini adalah produk komersial, ia menawarkan daya tahan baterai yang luar biasa. Sayangnya, kami belum dapat mencapai konsumsi baterai serupa pada proyek kami. Jadi, saya berencana menggunakan sensor ini sebagai sensor luar ruangan untuk proyek stasiun cuaca yang akan menggunakan tampilan e-paper besar. Ini akan menjadi keren. Juga, saya akan mencari perangkat berkemampuan Bluetooth Xiaomi lainnya yang dapat kami retas dengan cara yang sama. Pantau terus.
Saya ingin tahu pendapat Anda tentang proyek ini. Apakah menurut Anda bermanfaat bahwa kami dapat memperoleh data dari beberapa perangkat Bluetooth komersial? Apa yang akan Anda bangun menggunakan fungsi ini? Saya ingin membaca ide-ide Anda jadi silakan posting di bagian komentar di bawah. Terima kasih!
Direkomendasikan:
Cara Membuat Perekam Data Kelembaban dan Suhu Secara Real Time Dengan Arduino UNO dan SD-Card - Simulasi Data-logger DHT11 di Proteus: 5 Langkah
Cara Membuat Perekam Data Kelembaban dan Suhu Secara Real Time Dengan Arduino UNO dan SD-Card | Simulasi Data-logger DHT11 di Proteus: Pendahuluan: hai, ini Liono Maker, ini tautan YouTube. Kami membuat proyek kreatif dengan Arduino dan bekerja pada sistem tertanam. Data-Logger: Data logger (juga data-logger atau perekam data) adalah perangkat elektronik yang merekam data dari waktu ke waktu dengan
Program MicroPython: Perbarui Data Penyakit Coronavirus (COVID-19) secara Real Time: 10 Langkah (dengan Gambar)
Program MicroPython: Perbarui Data Penyakit Coronavirus (COVID-19) secara Real Time: Dalam beberapa minggu terakhir, jumlah kasus penyakit coronavirus (COVID 19) yang dikonfirmasi di seluruh dunia telah melebihi 100.000, dan organisasi kesehatan dunia (WHO) telah mengumumkan wabah pneumonia coronavirus baru menjadi pandemi global. Aku sangat
Kontrol Arduino Secara Nirkabel Dengan MATLAB: 11 Langkah
Kontrol Arduino Secara Nirkabel Dengan MATLAB: Telah melihat beberapa DIY tentang cara membangun komunikasi antara aplikasi MATLAB dan Arduino yang di-hardwire ke PC. Namun, saya belum menemukan apa pun yang mengontrol Arduino melalui MATLAB secara nirkabel menggunakan perisai Ethernet yang kompatibel dengan ENC28J60
Kontrol PC Secara Nirkabel Dengan Mata Berkedip;): 9 Langkah (dengan Gambar)
Kontrol PC Secara Nirkabel Dengan Mata Berkedip;): Bagaimana dengan melampaui kebiasaan Anda?? Bagaimana dengan mencoba sesuatu yang baru??!!!!Bagaimana dengan mengendalikan PC Anda dan melakukan apapun yang Anda inginkan TANPA menggunakan keyboard dan mouse Anda!Hmm… Tapi bagaimana mungkin???Hanya dengan sekejap mata Anda!! Jangan b
Pencatat Data GPS Nirkabel untuk Satwa Liar: 9 Langkah (dengan Gambar)
Pencatat Data GPS Nirkabel untuk Satwa Liar: Dalam instruksi ini, kami akan menunjukkan kepada Anda cara membuat pencatat data GPS berbasis Arduino yang kecil dan murah, dengan kemampuan nirkabel! Menggunakan telemetri untuk mempelajari pergerakan satwa liar dapat menjadi alat yang sangat penting bagi ahli biologi. Ini dapat memberi tahu Anda di mana