Mundarija:
- 1 -qadam: Barcha qismlarni oling
- 2 -qadam: ESP32 taxtasi
- 3 -qadam: Arduino va ESP32 uchun 2,8 dyuymli TFT displey
- 4 -qadam: displeyni ulash
- 5 -qadam: Loyihaning kodeksi
- 6 -qadam: yakuniy fikrlar va yaxshilanishlar
Video: ESP32 Xiaomi Hack - ma'lumotlarni simsiz olish: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Aziz do'stlar, yana bir ko'rsatmaga xush kelibsiz! Bugun biz Xiaomi harorat va namlik monitorining ESP32 platasining Bluetooth funksiyasidan foydalangan holda uzatadigan ma'lumotlarni qanday olishni o'rganamiz.
Ko'rib turganingizdek, men ESP32 kartasi va 2,8 dyuymli TFT displeyidan foydalanmoqdaman. Displeyda biz harorat va namlikni ko'rsatamiz. Qizig'i shundaki, men hech qanday sensorni ESP32 kartasiga ulamaganman. Men harorat va namlikni simsiz tijorat Xiaomi harorat va namlik monitoridan olaman. Bu qanday zo'r! Xiaomi qurilmasidagi displey har soniyada yangilanadi, lekin men Xiaomi qurilmasidagi quvvatni tejash uchun har 10 soniyada ESP32 platasiga ulangan displeyni yangilayman.
Bu salqin Xiaomi harorat va namlik sensori LCD displeyida harorat va namlikni aks ettiradi, shuningdek ma'lumotlarni Bluetooth protokoli yordamida boshqa Xiaomi qurilmalariga yoki ilovalariga uzatishi mumkin. Qurilmalar bitta AAA batareyasini ishlatadi va u tijorat mahsuloti bo'lgani uchun qurilmaning batareya quvvati juda yaxshi. U bitta AAA batareyasida bir necha oy turishi mumkin, bunga biz DIY loyihalarimizda erisha olmaymiz. Bir necha hafta oldin, men bildimki, ba'zi aqlli bolalar Xiaomi sensoridan ma'lumotlarni uzatish uchun foydalanadigan protokolni o'zgartirishga muvaffaq bo'lishdi va bu ma'lumotlarni ESP32 kartasi yordamida olishdi. Shunday qilib, men uni sinab ko'rdim va siz ko'rib turganingizdek, u ishlaydi!
1 -qadam: Barcha qismlarni oling
Keling, ushbu loyihani qanday qurishni ko'rib chiqaylik. Bizga ESP32 taxtasi, 2,8 dyuymli ILI9341 displeyi, Xiaomi harorat va namlik sensori, non paneli va ba'zi simlar kerak.
Mana, bu qo'llanmada foydalanmoqchi bo'lgan qismlarga havolalar.
- ESP32 ▶
- 2.8 "Ko'rsatish ▶
- Xiaomi sensori ▶
- Breadboard ▶
- Simlar ▶
- USB o'lchagich ▶
- Powerbank ▶
2 -qadam: ESP32 taxtasi
Agar siz u bilan tanish bo'lmasangiz, ESP32 chipi biz ilgari ko'p marta ishlatgan mashhur ESP8266 chipining vorisidir. ESP32 - bu hayvon! U 160 MGts chastotada ishlaydigan ikkita 32 yadroli yadro, katta hajmdagi xotira, WiFi, Bluetooth va boshqa 7 dollarlik boshqa funktsiyalarni taklif etadi! Ajoyib narsalar!
Iltimos, men ushbu taxtaga tayyorlagan batafsil sharhimni tomosha qiling. Men ushbu ko'rsatmaga videoni ilova qildim. Bu nima uchun bu chip bizning narsalarimizni abadiy o'zgartirishini tushunishga yordam beradi! ESP32-ning eng hayajonli jihatlaridan biri shundaki, u juda kuchli bo'lsa-da, u faqat 10 mikron oqim talab qiladigan chuqur uyqu rejimini taklif qiladi. Bu ESP32 ni past quvvatli ilovalar uchun ideal chipga aylantiradi.
3 -qadam: Arduino va ESP32 uchun 2,8 dyuymli TFT displey
Displey juda katta va o'lchamlari 320x240 piksel. Sevimli displeylarimdan biri bilan solishtirganda, 1,8 dyuymli TFT rangli displeyda siz uni ancha kattaroq ko'rishingiz mumkin. Ekran, shuningdek, sensorli funktsiyani taklif etadi, bu qo'shimcha bonus va SD -karta uyasi orqa tarafida. U SPI interfeysidan foydalanadi, shuning uchun Arduino yoki ESP32 platasi bilan ulanish juda oddiy. Displey narxi nisbatan past; uning narxi taxminan 11 dollarni tashkil qiladi, bu mening fikrimcha, bu displey taqdim etadigan narx.
Bu displeyga o'xshash yana bir narsa shundaki, u biz hozirgacha ishlatib kelayotgan sensorli displeyga o'xshamaydi. Shunday qilib, biz displeyni istalgan taxtaga, Arduino Pro mini, STM32, ESP8266 va ESP32 ga ulashimiz mumkin. Bu juda muhim, chunki bizda har bir taxtadan foydalanish mumkin bo'lgan arzon displey mavjud. Hozircha, biz bu taxtalarda foydalanish mumkin bo'lgan yagona sensorli displey Nextion displeylari edi, lekin men ularni vaqti -vaqti bilan ishlatsam ham, menga unchalik yoqmaydi.
4 -qadam: displeyni ulash
Birinchidan, biz ESP32 kartasini 2.8 dyuymli displeyga ulashimiz kerak. Siz Instructable -ga biriktirilgan sxemani topishingiz mumkin. Men taxminan ikki yil oldin chiqarilgan DOIT ESP32 taxtasidan foydalanayapman. Kengashning bu versiyasi endi mavjud emas, chunki uning yangi versiyasi mavjud, u ko'proq pinlarni taklif qiladi. Kengashning eski versiyasidan foydalanishimning yagona sababi shundaki, GND pinining yon tomonida, SPI pinlari yonida, taxtaning bir tomonida joylashganki, bu uni taxtaga qulay qiladi.
Displeyni taxtaga ulab bo'lgach, biz loyihani yoqishimiz mumkin. Bir necha soniyadan so'ng, biz yaqin atrofdagi Xiaomi qurilmasidan jonli ma'lumotlarni olamiz. Qurilma Bluetooth 4 -dan foydalanganligi uchun uning diapazoni juda yaxshi. Biz ushbu qurilma uzatadigan ma'lumotlarni 10 metrgacha va undan ko'p masofadan osongina olishimiz mumkin! Biz Xiaomi qurilmasining batareya quvvatini ham olishimiz mumkin, lekin men bu qiymatni ekranda ko'rsatmayman.
Agar biz ushbu USB o'lchagichdan foydalansak, bu katta displey yordamida loyihaning hozirgi chizig'i 120-150 mA atrofida ekanligini ko'rishimiz mumkin. Agar biz elektron qog'ozli displeydan foydalansak, ESP32 kartasini chuqur uyqu rejimiga o'tkazing va sensordan har bir necha daqiqada ma'lumot oling, biz bu loyihani batareyaga moslashtira olamiz. Men buni kelgusi videoda sinab ko'raman. Bu loyiha, biz ushbu qurilmadan ma'lumotlarni simsiz olishimiz mumkinligini ko'rsatib beradi.
5 -qadam: Loyihaning kodeksi
Keling, loyihaning dasturiy tomonini ko'rib chiqaylik.
Loyihaning kodi ushbu loyihaga asoslangan:
Men ushbu ma'lumotni Xiaomi qurilmasidan oladigan kodni ishlatdim va u bilan mustaqil loyiha tuzdim.
Ushbu o'zgaruvchida biz har 10 soniyada yangi ma'lumotlarni olishimiz kerakligini e'lon qilamiz.
#SCAN_TIME 10 // soniyani aniqlang
Bu erda biz haroratni Selsiy darajasida ko'rsatishni xohlayotganimizni e'lon qilamiz. Agar siz Imperial tizimidan foydalanmoqchi bo'lsangiz, bu o'zgaruvchini noto'g'ri deb belgilang.
boolean METRIC = to'g'ri; // Metrik tizim uchun rostni o'rnating; Imperator uchun yolg'on
O'rnatish funktsiyasida biz ESP32 kartasining displeyini va Bluetooth modulini ishga tushiramiz, so'ngra foydalanuvchi interfeysini ekranda chizamiz.
bo'sh o'rnatish () {
WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // jigarrang detektorni o'chiring
tft.begin ();
Serial.begin (115200);
Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();
drawUI ();
}
Keyin biz har 10 soniyada Bluetooth qurilmalarini qidiramiz. Biz Xiaomi qurilmasiga ulanmaymiz, chunki bu kerak emas. Biz faqat yaqin atrofdagi Bluetooth -ning past energiyali qurilmalarini qidiramiz va translyatsiya qilinadigan reklama paketlarini tekshiramiz.
void loop () {char printLog [256]; Serial.printf ("BLE skanerlashni %d soniya davomida boshlang… / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); int soni = foundDevices.getCount (); printf ("Topilgan qurilma soni: %d / n", hisoblash);
kechikish (100);
}
Namlik va harorat ko'rsatkichlari bu paketlarda saqlanadi, shuning uchun biz ularni o'qishimiz kerak. Qiymatlarni o'qib bo'lgach, biz ularni ekranda ko'rsatamiz. Har doimgidek, ushbu yo'riqnomaga biriktirilgan tavsifda siz ushbu loyihaning kodiga havolani topishingiz mumkin.
6 -qadam: yakuniy fikrlar va yaxshilanishlar
Endi biz bu sensordan simsiz ma'lumotlarni qanday olishni bilamiz va biz batareyadan ishlaydigan to'liq ob-havo stantsiyasini qura olamiz. Bu Xiaomi qurilmasi tijorat mahsuloti bo'lgani uchun, batareyaning ishlash muddatini oshiradi. Afsuski, biz hali ham loyihalarimizda shunga o'xshash batareya quvvatiga erisha olmaymiz. Shunday qilib, men ushbu sensorni ob-havo stantsiyasi loyihasi uchun ochiq elektron sensori sifatida ishlatishni rejalashtirmoqdaman, u katta elektron qog'ozli displeydan foydalanadi. Bu salqin bo'ladi. Shuningdek, men Xiaomi Bluetooth -ni yoqadigan boshqa qurilmalarni qidirmoqchiman, biz ham shunga o'xshash tarzda sindira olamiz. Yangiliklarni kuzatib boring, xabardor bo'lib boring; Biz bilan qoling.
Bu loyiha haqidagi fikringizni bilishni istardim. Ba'zi tijorat Bluetooth qurilmalaridan ma'lumotlarni olishimiz sizga foydali deb o'ylaysizmi? Ushbu funktsiyadan foydalanib nimani qurmoqchisiz? Men sizning fikrlaringizni o'qishni xohlayman, shuning uchun ularni quyidagi izohlar bo'limiga joylashtiring. Rahmat!
Tavsiya:
Arduino bilan DIY nafas olish sensori (Supero'tkazuvchilar trikotaj sensori): 7 qadam (rasmlar bilan)
Arduino bilan DIY nafas olish sensori (Supero'tkazuvchilar trikotaj sensori): Bu DIY sensori o'tkazgichli trikotaj cho'zish sensori shaklini oladi. U ko'kragingizni/oshqozoningizni o'rab oladi, va ko'kragingiz/oshqozoningiz kengayib, qisqarganda sensori ham, shuning uchun Arduino -ga uzatiladigan kirish ma'lumotlari ham kengayadi. Shunday qilib
Masofadan boshqarish pultidan simsiz simsiz klaviatura yasang: 10 qadam (rasmlar bilan)
Televizorni masofadan boshqarish pultidan simsiz mini klaviatura yarating: Siz hech qachon televizoringizning pultini buzib simsiz klaviatura yasashni o'ylab ko'rganmisiz? Shunday qilib, men ushbu ko'rsatmalarda qanday qilib arzon simsiz klaviatura qurishni tushuntiraman. Ushbu loyiha maxsus simsiz tarmoq yaratish uchun IQ (infraqizil) aloqasidan foydalanadi
Raspbian Stretch -dagi TP Link WN7200ND USB simsiz adapteri bilan ellik metrli simsiz kirish nuqtasi: 6 qadam
Raspbian Stretch -dagi TP Link WN7200ND USB simsiz adapteri bilan ellik metrli simsiz kirish nuqtasi: Raspberry Pi xavfsiz simsiz ulanish nuqtalarini yaratish uchun juda yaxshi, lekin u yaxshi diapazonga ega emas, men uni uzaytirish uchun TP Link WN7200ND USB simsiz adapteridan foydalanardim. Men buni qanday qilishni baham ko'rmoqchiman, nega men yo'riqnoma o'rniga malina pi ishlatmoqchiman?
Qanday qilib simni tortib olish mumkin (simsiz): 6 qadam
Qanday qilib simni tortib olish mumkin (simsiz tortgichsiz): Bu do'stlarimdan biri menga ko'rsatgan simni uzish usuli. Men payqadimki, men ko'p loyihalarda simdan foydalanaman va sim chiqaruvchi yo'q. Agar sizda sim chiqargich bo'lmasa va siz singan bo'lsangiz yoki uni olish uchun dangasa bo'lsangiz, bu usul foydali bo'ladi.
Qanday qilib simsiz tarmoq routerini sovutish va uning sekinlashishini oldini olish mumkin: 3 qadam
Qanday qilib simsiz tarmoq yo'riqchisini sovutish va uning sekinlashuviga yo'l qo'ymaslik kerak: bu sizga simsiz tarmoq routerini qanday sovutish va sekinlashmasligini ko'rsatuvchi ko'rsatma. Men simsiz sovutish, fanni simsiz tarmoqqa ulash uchun kompyuter fanatini ishlatardim. simsiz quvvat manbai (simsiz fan yoqilmagan, wi