Мазмуну:

ESP32 Xiaomi Hack - Зымсыз маалымат алуу: 6 кадам (Сүрөттөр менен)
ESP32 Xiaomi Hack - Зымсыз маалымат алуу: 6 кадам (Сүрөттөр менен)

Video: ESP32 Xiaomi Hack - Зымсыз маалымат алуу: 6 кадам (Сүрөттөр менен)

Video: ESP32 Xiaomi Hack - Зымсыз маалымат алуу: 6 кадам (Сүрөттөр менен)
Video: Знакомство с платой разработки Heltec LoRa CubeCell HTCC-AB01 2024, Ноябрь
Anonim
Image
Image
ESP32 Xiaomi Hack - Маалыматтарды зымсыз алуу
ESP32 Xiaomi Hack - Маалыматтарды зымсыз алуу

Урматтуу достор, дагы бир инструкцияга кош келиңиздер! Бүгүн биз бул Xiaomi Температура жана Нымдуулук монитору ESP32 тактасынын Bluetooth функциясын колдонуп өткөргөн маалыматтарды кантип алууну үйрөнөбүз.

Көрүнүп тургандай, мен ESP32 тактасын жана 2.8”түстүү TFT дисплейин колдонуп жатам. Дисплейде биз температураны жана нымдуулукту көрсөтөбүз. Эң сонун нерсе, мен эч кандай сенсорлорду ESP32 тактасына туташтыра элекмин. Мен бул коммерциялык Xiaomi Температура жана Нымдуулук мониторунан температураны жана нымдуулукту зымсыз алам. Бул кандай сонун! Xiaomi түзмөгүндөгү дисплей секунд сайын жаңыртылып турат, бирок мен Xiaomi түзмөгүндө кубаттуулукту үнөмдөө үчүн ESP32 тактасына 10 секунд сайын туташып турган дисплейди жаңыртып турам.

Бул салкын Xiaomi температурасы жана нымдуулугу сенсору LCD дисплейинде температураны жана нымдуулукту көрсөтөт, ошондой эле Bluetooth протоколу аркылуу башка Xiaomi түзмөктөрүнө же колдонмолоруна маалыматтарды өткөрө алат. Түзмөктөр бир эле AAA батареясын колдонушат жана ал коммерциялык продукт болгондуктан, батареянын иштөө мөөнөтү эң сонун. Бул бир эле AAA батарейкасында бир нече ай иштей алат, бул биздин DIY долбоорлорубузга жете албайт. Бир нече жума мурун, мен кээ бир акылдуу балдар Xiaomi сенсордон маалыматтарды берүү үчүн колдонгон протоколду кайра иштетип, ESP32 тактасын колдонуу менен ошол маалыматты алууга жетишкенин билдим. Ошентип, мен аны сынап көрдүм, жана ал көрүп тургандай, ал иштейт!

1 -кадам: Бардык бөлүктөрдү алыңыз

Бардык бөлүктөрдү алыңыз
Бардык бөлүктөрдү алыңыз

Эми бул долбоорду кантип курууну карап көрөлү. Бизге ESP32 тактайы, 2,8 дюймдук ILI9341 дисплейи, Xiaomi температурасы жана нымдуулугу сенсору, нан тактасы жана кээ бир зымдар керек.

Бул инструкцияда колдоно турган бөлүктөргө шилтемелер бар.

  • ESP32 ▶
  • 2.8 "Дисплей ▶
  • Xiaomi сенсор ▶
  • Breadboard ▶
  • Зымдар ▶
  • USB Метр ▶
  • Powerbank ▶

2 -кадам: ESP32 тактасы

Image
Image
ESP32 тактасы
ESP32 тактасы

Эгерде сиз аны жакшы билбесеңиз, ESP32 чипи - биз мурда көп жолу колдонгон популярдуу ESP8266 чиптин мураскери. ESP32 - бул жырткыч! Бул 160 МГцте иштеген 32 32 өзөктү, эс тутумдун чоң көлөмүн, WiFi, Bluetooth жана баасы 7 доллардын тегерегиндеги көптөгөн башка функцияларды сунуштайт! Укмуш нерселер!

Сураныч, мен бул такта үчүн даярдаган деталдуу кароону көрүңүз. Мен бул Нускамага видеону тиркеп койдум. Бул чип эмне үчүн түбөлүккө нерселерди жасообузду өзгөртөөрүн түшүнүүгө жардам берет! ESP32 жөнүндө эң кызыктуу нерселердин бири-бул абдан күчтүү болгонуна карабастан, терең уйку режимин сунуштайт, ал үчүн 10μΑs гана ток керектелет. Бул ESP32ди аз кубаттуулуктагы тиркемелер үчүн идеалдуу чипке айландырат.

3 -кадам: 2.8 "Arduino жана ESP32 үчүн TFT дисплейи

Image
Image
2.8
2.8
2.8
2.8
2.8
2.8

Дисплей чоң жана 320x240 пиксел чечимин сунуштайт. Менин сүйүктүү дисплейлеримдин бирине салыштырмалуу, 1.8 дюймдук TFT дисплейи сиз аны бир топ чоңураак көрө аласыз. Экран дагы тийүү функциясын сунуштайт, бул кошумча бонус жана арткы жагында 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 мА айланасында экенин көрө алабыз. Эгерде биз электрондук кагаз дисплейин колдонсок, ESP32 тактасын терең уйку режимине коюп, бир нече мүнөттө сенсордон маалымат алып турсаңыз, биз бул долбоордун батареясын достукка айландыра алабыз. Мен муну келечектеги видеодо сынап көрөм. Бул проект жөн эле бул түзмөктөн маалыматты зымсыз ала аларыбызды көрсөтөт.

5 -кадам: Долбоордун коду

Долбоордун коду
Долбоордун коду

Эми долбоордун программалык жагын карап көрөлү.

Долбоордун коду бул долбоорго негизделген:

Мен Xiaomi түзмөгүнөн ошол маалыматты алган кодду колдондум жана аны менен өз алдынча долбоор түздүм.

Бул өзгөрмөдө, биз ар бир 10 секунд сайын жаңы маалыматтарды алуубуз керек деп жарыялайбыз.

#аныктоо SCAN_TIME 10 // секунд

Бул жерде биз температураны Цельсий градусында көрсөтүүнү каалайбыз деп жарыялайбыз. Эгерде сиз империялык системаны колдонууну кааласаңыз, анда бул өзгөрмөнү жалган деп коюңуз.

логикалык METRIC = чыныгы; // Метрикалык система үчүн чындыкты коюңуз; император үчүн жалган

Орнотуу функциясында биз ESP32 тактасынын дисплейин жана Bluetooth модулун баштапкы абалга келтиребиз, андан кийин экранда колдонуучу интерфейсин тартабыз.

жараксыз орнотуу () {

WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // brownout детекторун өчүрүү

tft.begin ();

Serial.begin (115200);

Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();

drawUI ();

}

Андан кийин, ар бир 10 секунд сайын Bluetooth түзмөктөрүн издейбиз. Биз Xiaomi түзмөгүнө туташпайбыз, анткени ал керек эмес. Биз жакынкы Bluetooth аз энергия бөлүкчөлөрүн гана издейбиз жана эфир жарнак пакеттерин текшеребиз.

void loop () {char printLog [256]; Serial.printf ("BLE скандоону %d секундага баштаңыз… / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> баштоо (SCAN_TIME); int count = foundDevices.getCount (); printf ("Табылган түзмөктөрдүн саны: %d / n", эсептөө);

кечиктирүү (100);

}

Нымдуулук жана температура баалуулуктары ошол пакеттерде сакталат, ошондуктан биз аларды окуубуз керек. Биз баалуулуктарды окугандан кийин аларды экранда көрсөтөбүз. Адаттагыдай эле, бул Нускамага тиркелген сүрөттөөдөн бул долбоордун кодуна шилтемени таба аласыз.

6 -кадам: Акыркы нерселер жана жакшыртуулар

Final Thoughs & жакшыртуу
Final Thoughs & жакшыртуу
Final Thoughs & жакшыртуу
Final Thoughs & жакшыртуу

Эми биз бул сенсордон зымсыз маалыматты кантип алууну билсек, биз батарейка менен иштеген аба ырайынын толук станциясын кура алабыз. Бул Xiaomi түзмөгү коммерциялык продукт болгондуктан, батарейканын иштөө мөөнөтүн сунуштайт. Тилекке каршы, биз азырынча биздин долбоорлордо окшош батарея керектөөсүнө жете албайбыз. Ошентип, мен бул сенсорду чоң электрондук кагаз дисплейин колдоно турган метеостанциянын долбоору үчүн сырткы сенсор катары колдонууну пландап жатам. Бул сонун болот. Ошондой эле, мен башка Xiaomi Bluetooth иштетилген түзмөктөрдү издейм, биз дагы ушундай жол менен бузуп алабыз. Бар болуңуз.

Мен бул долбоор боюнча сиздин пикириңизди билгим келет. Кээ бир коммерциялык Bluetooth түзмөктөрүнөн маалыматтарды ала алганыбыз пайдалуу деп ойлойсузбу? Бул функцияны колдонуу менен эмнени курмакчысыз? Мен сиздин идеяларыңызды окугум келет, андыктан аларды төмөндөгү комментарийлер бөлүмүнө жазыңыз. Рахмат!

Сунушталууда: