Talaan ng mga Nilalaman:
- Hakbang 1: Kunin ang Lahat ng Mga Bahagi
- Hakbang 2: Ang Lupon ng ESP32
- Hakbang 3: 2.8 "TFT Display para sa Arduino at ESP32
- Hakbang 4: Pagkonekta sa Display
- Hakbang 5: Ang Code ng Project
- Hakbang 6: Pangwakas na Mga Pag-iisip at Pagpapabuti
Video: ESP32 Xiaomi Hack - Kumuha ng Data ng Wireless: 6 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Minamahal na mga kaibigan maligayang pagdating sa isa pang maituturo! Malalaman natin ngayon kung paano makukuha ang data na ipinapadala ng monitor ng Temperatura at Humidity na ito ng Xiaomi gamit ang pag-andar ng Bluetooth ng board ng ESP32.
Tulad ng nakikita mo, gumagamit ako ng isang board na ESP32 at isang display ng kulay na TFT na 2.8 . Sa display, ipinapakita namin ang temperatura at ang halumigmig. Ang cool na bagay ay hindi ako nakakonekta sa anumang mga sensor sa board ng ESP32. Nakukuha ko ang temperatura at ang kahalumigmigan nang wireless mula sa komersyal na Xiaomi Temperature at Humidity monitor na ito. Ang astig nito! Ang display sa aparatong Xiaomi ay nai-update bawat segundo ngunit ina-update ko ang display na konektado sa board ng ESP32 bawat 10 segundo upang makatipid ng kuryente sa Xiaomi device.
Ang cool na Xiaomi na temperatura at sensor ng kahalumigmigan na ito ay nagpapakita ng temperatura at halumigmig sa LCD display nito at maaari rin nitong maipasa ang data sa iba pang mga Xiaomi Device o app gamit ang Bluetooth protocol. Gumagamit ang mga aparato ng isang solong baterya ng AAA at dahil ito ay isang komersyal na produkto, mahusay ang buhay ng baterya ng aparato. Maaari itong tumagal sa isang solong baterya ng AAA sa loob ng maraming buwan, isang bagay na hindi natin makakamit sa aming mga proyekto sa DIY. Ilang linggo na ang nakakaraan, natuklasan ko na ang ilang mga matalino na lalaki ay pinamamahalaang baligtarin ang inhenyero ng protokol na ginagamit ng Xiaomi upang maipadala ang data mula sa sensor at nagawang makuha ang data na iyon gamit ang isang board ng ESP32. Kaya't sinubukan ko ito, at tulad ng nakikita mong gumagana!
Hakbang 1: Kunin ang Lahat ng Mga Bahagi
Tingnan natin ngayon kung paano mabuo ang proyektong ito. Kailangan namin ng isang ESP32 board, isang 2.8 ILI9341 display, ang temperatura ng Xiaomi at sensor ng halumigmig, isang breadboard at ilang mga wire.
Narito ang ilang mga link sa mga bahagi na gagamitin ko sa Instructable na ito.
- ESP32 ▶
- 2.8 "Ipakita ▶
- Xiaomi Sensor ▶
- Breadboard ▶
- Mga Wires ▶
- USB Meter ▶
- Powerbank ▶
Hakbang 2: Ang Lupon ng ESP32
Kung hindi ka pamilyar dito, ang ESP32 chip ay ang kahalili ng sikat na ESP8266 chip na ginamit namin ng maraming beses sa nakaraan. Ang ESP32 ay isang hayop! Nag-aalok ito ng dalawang 32 na core ng pagproseso na gumana sa 160MHz, isang napakalaking memorya, WiFi, Bluetooth at maraming iba pang mga tampok na may halagang 7 $! Kamangha-manghang bagay!
Mangyaring panoorin ang detalyadong pagsusuri na inihanda ko para sa board na ito. Inilakip ko ang video sa Instructable na ito. Makakatulong itong maunawaan kung bakit babaguhin ng chip na ito ang paraan ng paggawa natin ng mga bagay magpakailanman! Ang isa sa mga pinaka kapanapanabik na bagay tungkol sa ESP32 ay na kahit na napakalakas nito, nag-aalok ito ng isang mode na deep-sleep na nangangailangan lamang ng 10μΑs ng kasalukuyang. Ginagawa nitong perpektong chip ang ESP32 para sa mababang aplikasyon ng kuryente.
Hakbang 3: 2.8 "TFT Display para sa Arduino at ESP32
Malaki ang display, at nag-aalok ito ng isang resolusyon na 320x240 pixel. Kung ihahambing sa isa sa mga ipinapakita kong paborito, ang display na 1.8 Kulay ng TFT ay makikita mo ito nang mas malaki. Nag-aalok din ang screen ng pag-andar ng touch na isang idinagdag na bonus at isang puwang ng SD card sa likuran. Gumagamit ito ng interface ng SPI, kaya't ang koneksyon sa Arduino o sa board ng ESP32 ay napaka prangka. Ang gastos ng display ay medyo mababa; nagkakahalaga ito ng humigit-kumulang na 11 $ na kung saan sa palagay ko ay isang makatarungang presyo para sa inaalok ng display na ito.
Ang isa pang bagay tulad ng tungkol sa display na ito ay hindi ito dumating bilang isang kalasag tulad ng touch display na ginagamit namin sa ngayon. Sa ganitong paraan, maaari naming ikonekta ang display sa anumang board, ang Arduino Pro mini, ang STM32, ang ESP8266, at ang ESP32. Napakahalaga nito sapagkat mayroon kaming isang display na may mababang gastos na maaari naming magamit sa bawat board. Hanggang ngayon, ang tanging display sa ugnayan na maaari naming magamit sa mga board na ito ay ang mga ipinapakita na Nextion na mas mahal, at upang maging matapat kahit na ginagamit ko ang mga ito paminsan-minsan, hindi ko talaga sila gusto.
Hakbang 4: Pagkonekta sa Display
Una, kailangan naming ikonekta ang Lupon ng ESP32 sa 2.8 na display. Maaari mong makita ang eskematiko na nakakabit sa Instructable. Ginagamit ko ang board na ito ng DOIT ESP32 na inilabas mga dalawang taon na ang nakakalipas. Ang bersyon ng board na ito ay hindi na magagamit dahil mayroon na ngayong isang mas bagong bersyon na magagamit na nag-aalok ng maraming mga pin, ang isang ito. Ang tanging kadahilanan na ginagamit ko ang lumang bersyon ng board ay ang pin ng GND ng board na inilagay sa tabi ng mga SPI pin, sa parehong bahagi ng board, na ginagawang friendly ang breadboard.
Matapos ikonekta ang display sa board maaari naming paganahin ang proyekto. Pagkatapos ng ilang segundo, nakatanggap kami ng live na data mula sa kalapit na Xiaomi Device. Dahil ang aparato ay gumagamit ng Bluetooth 4 ang saklaw nito ay medyo maganda. Madali naming makukuha ang data na inililipat ng aparatong ito mula sa mga distansya hanggang 10 metro o higit pa! Maaari rin naming matanggap ang antas ng baterya ng Xiaomi Device ngunit hindi ko ipinapakita ang halagang ito sa screen.
Kung gagamitin namin ang USB meter na ito, maaari naming makita na ang kasalukuyang gumuhit ng proyektong ito ay nasa 120-150 mA gamit ang malaking display na ito. Kung gumagamit kami ng isang e-paper display, ilagay ang board ng ESP32 sa deep mode ng pagtulog, at kumuha ng data mula sa sensor bawat ilang minuto maaari naming gawing friendly ang baterya ng proyektong ito. Susubukan ko ito sa isang hinaharap na video. Ang proyektong ito ay isang pagpapakita lamang na makakakuha kami ng data mula sa aparatong ito nang wireless.
Hakbang 5: Ang Code ng Project
Tingnan natin ngayon ang bahagi ng software ng proyekto.
Ang code ng proyekto ay batay sa proyektong ito:
Ginamit ko ang code na nakakakuha ng data na iyon mula sa aparato ng Xiaomi at nagtayo ng isang nakapag-iisang proyekto kasama nito.
Sa variable na ito, ipinapahayag namin na kailangan naming makakuha ng sariwang data bawat 10 segundo.
# tukuyin ang SCAN_TIME 10 // segundo
Dito, ipinapahayag namin na nais naming ipakita ang temperatura sa degree Celsius. Kung nais mong gamitin ang Imperial system itakda lamang ang variable na ito sa hindi totoo.
boolean METRIC = totoo; // Itakda ang totoo para sa system ng panukat; hindi totoo para sa imperyal
Sa pag-andar ng pag-setup pinasimuno namin ang pagpapakita at ang module ng Bluetooth ng board ng ESP32 at pagkatapos ay iguhit namin ang interface ng gumagamit sa screen.
walang bisa ang pag-setup () {
WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // huwag paganahin ang brownout detector
tft.begin ();
Serial.begin (115200);
Serial.println ("ESP32 XIAOMI DISPLAY"); initBlu Bluetooth ();
drawUI ();
}
Susunod, naghahanap kami para sa mga aparatong Bluetooth sa malapit bawat 10 segundo. Hindi kami gumagawa ng isang koneksyon sa Xiaomi Device dahil hindi ito kinakailangan. Nag-scan lang kami para sa kalapit na Bluetooth na mga peripheral na mababang enerhiya at suriin ang mga packet ng ad ng broadcast.
void loop () {char printLog [256]; Serial.printf ("Simulan ang BLE scan para sa% d segundo … / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); int count = foundDevices.getCount (); printf ("Nahanap ang bilang ng aparato:% d / n", bilang);
pagkaantala (100);
}
Ang halumigmig at mga halagang temperatura ay nakaimbak sa mga packet na iyon, kaya kailangan lamang nating basahin ang mga ito. Matapos naming mabasa ang mga halagang ipinapakita namin ang mga ito sa screen. Tulad ng dati maaari kang makahanap ng isang link sa code ng proyektong ito sa paglalarawan na naka-attach sa Instructable na ito.
Hakbang 6: Pangwakas na Mga Pag-iisip at Pagpapabuti
Ngayon alam na namin kung paano makakuha ng data nang wireless mula sa sensor na ito maaari kaming bumuo ng isang kumpletong istasyon ng panahon na pinapatakbo ng baterya. Dahil ang Xiaomi Device na ito ay isang komersyal na produkto, nag-aalok ito ng mahusay na buhay ng baterya. Sa kasamaang palad, hindi pa namin makakamit ang katulad na pagkonsumo ng baterya sa aming mga proyekto. Kaya, plano kong gamitin ang sensor na ito bilang isang panlabas na sensor para sa isang proyekto ng istasyon ng panahon na gagamit ng isang malaking pagpapakita ng e-papel. Ito ay magiging cool. Gayundin, maghanap ako para sa iba pang mga aparatong pinagana ng Xiaomi Bluetooth na maaari naming i-hack sa katulad na paraan. Manatiling nakatutok.
Nais kong malaman ang iyong opinyon tungkol sa proyektong ito. Napapakinabangan mo ba na makakakuha kami ng data mula sa ilang mga komersyal na Bluetooth device? Ano ang itatayo mo gamit ang pagpapaandar na ito? Nais kong basahin ang iyong mga ideya kaya mangyaring i-post ang mga ito sa seksyon ng mga komento sa ibaba. Salamat!
Inirerekumendang:
XiaoMi Vacuum + Amazon Button = Paglilinis ng Dash: 5 Hakbang (na may Mga Larawan)
XiaoMi Vacuum + Amazon Button = Dash Cleaning: Ipinapaliwanag ng tagubiling ito kung paano gamitin ang iyong ekstrang Mga Button ng Amazon Dash upang Makontrol ang XiaoMi Vacuum. Nakuha ko ang isang bungkos ng mga Amazon Buttons na naglalagay mula sa mga oras na $ 1 sila at wala akong silbi sa kanila. Ngunit sa pagtanggap ng isang bagong Robot Vacuum nagpasya ako
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
IoT Pinagana ang Sensor Data Collection Center Na May ESP8266 & PubNub: 9 Mga Hakbang (na may Mga Larawan)
IoT Pinagana ang Sensor Data Collection Center Sa ESP8266 & PubNub: Karamihan sa mga tutorial sa ESP8266 ay nasa antas ng newbie (malayo na kumikislap ng isang led) o masyadong kumplikado para sa isang tao na naghahanap ng isang bagay upang mapabuti at mag-upgrade sa kanyang pinangunahan na mga kasanayan sa pagpikit. Ito itinuturo na naglalayong tulay ang puwang na ito sa lumikha
Wireless GPS Data Logger para sa Wildlife: 9 Mga Hakbang (na may Mga Larawan)
Ang Wireless GPS Data Logger para sa Wildlife: Sa itinuturo na ito, ipapakita namin sa iyo kung paano gumawa ng isang maliit at murang Arduino batay sa data logger ng GPS, na may wireless na kakayahan! Ang paggamit ng telemetry upang pag-aralan ang paggalaw ng wildlife ay maaaring maging isang napakahalagang tool para sa mga biologist. Maaari nitong sabihin sa iyo kung saan ang isang