Агуулгын хүснэгт:

ESP32 Xiaomi Hack - Мэдээллийг утасгүй авах: 6 алхам (зурагтай)
ESP32 Xiaomi Hack - Мэдээллийг утасгүй авах: 6 алхам (зурагтай)

Видео: ESP32 Xiaomi Hack - Мэдээллийг утасгүй авах: 6 алхам (зурагтай)

Видео: ESP32 Xiaomi Hack - Мэдээллийг утасгүй авах: 6 алхам (зурагтай)
Видео: P2 ESP01 4CH Relay Module (Subtittled) 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 процессорын цөм, асар их санах ой, WiFi, Bluetooth болон 7 долларын үнэтэй бусад олон боломжуудыг санал болгодог. Гайхамшигтай зүйлс!

Энэхүү самбар дээр миний бэлтгэсэн дэлгэрэнгүй тоймыг үзээрэй. Би энэ зааварчилгааны видеог хавсаргав. Энэ чип яагаад бидний үүрд хийх арга барилаа өөрчилдгийг ойлгоход тусална! ESP32-ийн хамгийн сэтгэл хөдөлгөм зүйлсийн нэг бол энэ нь маш хүчирхэг ч гэсэн гүн нойрны горимыг санал болгодог бөгөөд энэ нь ердөө 10 мΑ гүйдэл шаарддаг. Энэ нь ESP32 -ийг бага чадлын хэрэглээнд хамгийн тохиромжтой чип болгодог.

Алхам 3: Arduino болон ESP32 -д зориулсан 2.8 "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 инчийн дэлгэцтэй холбох ёстой. Та зааварчилгаанд хавсаргасан схемийг олох боломжтой. Би хоёр жилийн өмнө гаргасан DOIT ESP32 хавтанг ашиглаж байна. ТУЗ -ийн энэ хувилбарыг ашиглахаа больсон, учир нь энэ нь илүү олон тээглүүрийг санал болгодог шинэ хувилбар байгаа юм. ТУЗ -ийн хуучин хувилбарыг ашиглаж байгаа цорын ганц шалтгаан бол ТУЗ -ийн хажуугийн дэргэдэх самбарын GND зүүг самбарын яг хажуу талд байрлуулсан нь талхны хавтанг ээлтэй болгодог явдал юм.

Дэлгэцийг самбар дээр холбосны дараа бид төслийг идэвхжүүлж чадна. Хэдэн секундын дараа бид ойролцоох Xiaomi төхөөрөмжөөс шууд өгөгдлийг хүлээн авдаг. Төхөөрөмж нь Bluetooth 4 ашигладаг тул хүрээ нь маш сайн байдаг. Бид энэ төхөөрөмжөөс 10 метр ба түүнээс дээш зайд дамжуулдаг өгөгдлийг хялбархан авах боломжтой! Бид мөн Xiaomi төхөөрөмжийн батерейны түвшинг хүлээн авах боломжтой боловч би энэ утгыг дэлгэц дээр харуулдаггүй.

Хэрэв бид энэхүү USB тоолуурыг ашиглавал энэхүү том дэлгэцийг ашигласнаар одоогийн төслийн зураг 120-150 мА байна. Хэрэв бид цахим цаасан дэлгэц ашигладаг бол ESP32 самбарыг гүн нойрны горимд оруулаад хэдэн минут тутамд мэдрэгчээс мэдээлэл авснаар энэхүү төслийг батерейнд ээлтэй болгож чадна. Би үүнийг ирээдүйн видеон дээр туршиж үзэх болно. Энэхүү төсөл нь бид энэ төхөөрөмжөөс утасгүй мэдээлэл авах боломжтойг харуулсан жишээ юм.

Алхам 5: Төслийн код

Төслийн код
Төслийн код

Одоо төслийн програм хангамжийн талыг авч үзье.

Төслийн кодыг энэ төсөл дээр үндэслэсэн болно:

Би энэ өгөгдлийг Xiaomi төхөөрөмжөөс авдаг кодыг ашиглаж, түүнтэй хамт бие даасан төсөл боловсруулсан.

Энэ хувьсагчийн хувьд бид 10 секунд тутамд шинэ мэдээлэл авах шаардлагатай гэж мэдэгдэж байна.

#тодорхойлох SCAN_TIME 10 // секунд

Энд бид температурыг Цельсийн градусаар харуулахыг хүсч байгаагаа мэдэгдэж байна. Хэрэв та Эзэн хааны системийг ашиглахыг хүсвэл энэ хувьсагчийг худал гэж тохируулаарай.

логик хэмжигдэхүүн = үнэн; // Метрийн системийн хувьд үнэнийг тохируулах; эзэн хааны хувьд хуурамч

Тохируулах функц дээр бид ESP32 хавтангийн дэлгэц ба Bluetooth модулийг эхлүүлж, хэрэглэгчийн интерфэйсийг дэлгэц дээр зурна.

хүчингүй тохиргоо () {

WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // хүрэн детекторыг идэвхгүй болгох

tft.begin ();

Цуваа.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); BLEScanResults foundDevices = pBLEScan-> эхлэх (SCAN_TIME); int count = foundDevices.getCount (); printf ("Олсон төхөөрөмжийн тоо: %d / n", тоо);

саатал (100);

}

Чийглэг ба температурын утгыг тэдгээр пакетэд хадгалдаг тул бид зөвхөн тэдгээрийг унших хэрэгтэй. Бид утгыг уншсаны дараа тэдгээрийг дэлгэц дээр харуулдаг. Үргэлж энэ зааврын хавсаргасан тайлбараас энэ төслийн кодын холбоосыг олж болно.

Алхам 6: Эцсийн дүгнэлт ба сайжруулалт

Эцсийн дүгнэлт ба сайжруулалт
Эцсийн дүгнэлт ба сайжруулалт
Эцсийн дүгнэлт ба сайжруулалт
Эцсийн дүгнэлт ба сайжруулалт

Энэхүү мэдрэгчээс хэрхэн утасгүй мэдээлэл авахаа мэддэг болсон тул бид батерейгаар ажилладаг цаг уурын станц барьж болно. Энэхүү Xiaomi төхөөрөмж нь арилжааны бүтээгдэхүүн тул батерейны ашиглалтын хугацааг уртасгадаг. Харамсалтай нь бид төслүүддээ ижил төстэй батерей зарцуулж чадахгүй байна. Тиймээс би энэ мэдрэгчийг том цахим цаасан дэлгэц ашиглах цаг уурын станцын төсөлд гадаа мэдрэгч болгон ашиглахаар төлөвлөж байна. Энэ нь дажгүй байх болно. Түүнчлэн, бид ижил төстэй аргаар хакердах боломжтой Xiaomi Bluetooth идэвхжүүлсэн бусад төхөөрөмжийг хайж олох гэж байна. Хүлээж байгаарай.

Энэ төслийн талаархи таны санал бодлыг мэдэхийг хүсч байна. Зарим арилжааны Bluetooth төхөөрөмжөөс мэдээлэл авах нь танд ашигтай гэж бодож байна уу? Та энэ функцийг ашиглан юу бүтээх гэж байна вэ? Би таны санааг уншихыг хүсч байгаа тул доорх сэтгэгдлүүдийн хэсэгт байрлуулна уу. Баярлалаа!

Зөвлөмж болгож буй: