विषयसूची:

ESP32 Xiaomi Hack - वायरलेस तरीके से डेटा प्राप्त करें: 6 चरण (चित्रों के साथ)
ESP32 Xiaomi Hack - वायरलेस तरीके से डेटा प्राप्त करें: 6 चरण (चित्रों के साथ)

वीडियो: ESP32 Xiaomi Hack - वायरलेस तरीके से डेटा प्राप्त करें: 6 चरण (चित्रों के साथ)

वीडियो: ESP32 Xiaomi Hack - वायरलेस तरीके से डेटा प्राप्त करें: 6 चरण (चित्रों के साथ)
वीडियो: Smallest CCTV Camera | USB camera with wifi 2024, नवंबर
Anonim
Image
Image
ESP32 Xiaomi हैक - वायरलेस तरीके से डेटा प्राप्त करें
ESP32 Xiaomi हैक - वायरलेस तरीके से डेटा प्राप्त करें

प्रिय दोस्तों एक और इंस्ट्रक्शनल में आपका स्वागत है! आज हम यह सीखने जा रहे हैं कि यह डेटा कैसे प्राप्त करें कि यह Xiaomi तापमान और आर्द्रता मॉनिटर ESP32 बोर्ड की ब्लूटूथ कार्यक्षमता का उपयोग करके प्रसारित करता है।

जैसा कि आप देख सकते हैं, मैं एक ESP32 बोर्ड और एक 2.8”रंग TFT डिस्प्ले का उपयोग कर रहा हूँ। डिस्प्ले पर, हम तापमान और आर्द्रता प्रदर्शित करते हैं। अच्छी बात यह है कि मैंने किसी भी सेंसर को ESP32 बोर्ड से नहीं जोड़ा है। मुझे इस वाणिज्यिक Xiaomi तापमान और आर्द्रता मॉनिटर से वायरलेस रूप से तापमान और आर्द्रता मिलती है। वह कितना शांत है! Xiaomi डिवाइस पर डिस्प्ले हर सेकंड अपडेट किया जाता है लेकिन मैं Xiaomi डिवाइस पर पावर बचाने के लिए हर 10 सेकंड में ESP32 बोर्ड से जुड़े डिस्प्ले को अपडेट करता हूं।

यह शांत Xiaomi तापमान और आर्द्रता सेंसर अपने एलसीडी डिस्प्ले पर तापमान और आर्द्रता प्रदर्शित करता है और यह ब्लूटूथ प्रोटोकॉल का उपयोग करके डेटा को अन्य Xiaomi उपकरणों या ऐप्स पर भी प्रसारित कर सकता है। डिवाइस एकल AAA बैटरी का उपयोग करते हैं और चूंकि यह एक व्यावसायिक उत्पाद है, इसलिए डिवाइस की बैटरी लाइफ उत्कृष्ट है। यह एक एएए बैटरी पर महीनों तक चल सकता है, कुछ ऐसा जो हम अपने DIY प्रोजेक्ट्स पर हासिल नहीं कर सकते। कुछ हफ़्ते पहले, मुझे पता चला कि कुछ चतुर लोग उस प्रोटोकॉल को उलटने में कामयाब रहे जो Xiaomi सेंसर से डेटा संचारित करने के लिए उपयोग करता है और ESP32 बोर्ड का उपयोग करके उस डेटा को प्राप्त करने में कामयाब रहा। तो मैंने कोशिश की, और जैसा कि आप देख सकते हैं कि यह काम करता है!

चरण 1: सभी भागों को प्राप्त करें

सभी भागों को प्राप्त करें
सभी भागों को प्राप्त करें

आइए अब देखें कि इस परियोजना को कैसे बनाया जाए। हमें एक ESP32 बोर्ड, एक 2.8”ILI9341 डिस्प्ले, Xiaomi तापमान और आर्द्रता सेंसर, एक ब्रेडबोर्ड और कुछ तारों की आवश्यकता है।

यहाँ उन भागों के कुछ लिंक दिए गए हैं जिनका मैं इस निर्देश में उपयोग करने जा रहा हूँ।

  • ESP32 ▶
  • 2.8" डिस्प्ले
  • Xiaomi सेंसर ▶
  • ब्रेडबोर्ड ▶
  • तार ▶
  • यूएसबी मीटर ▶
  • पावरबैंक ▶

चरण 2: ESP32 बोर्ड

Image
Image
ESP32 बोर्ड
ESP32 बोर्ड

यदि आप इससे परिचित नहीं हैं, तो ESP32 चिप उस लोकप्रिय ESP8266 चिप का उत्तराधिकारी है जिसका हमने अतीत में कई बार उपयोग किया है। ESP32 एक जानवर है! यह दो 32 प्रोसेसिंग कोर प्रदान करता है जो 160 मेगाहर्ट्ज पर काम करते हैं, लगभग 7 डॉलर की लागत के साथ बड़ी मात्रा में मेमोरी, वाईफाई, ब्लूटूथ और कई अन्य सुविधाएं! अद्भुत सामान!

कृपया इस बोर्ड के लिए तैयार की गई विस्तृत समीक्षा देखें। मैंने इस निर्देश पर वीडियो संलग्न किया है। यह समझने में मदद करेगा कि यह चिप हमारे चीजों को हमेशा के लिए बनाने के तरीके को क्यों बदल देगी! ESP32 के बारे में सबसे रोमांचक चीजों में से एक यह है कि यह इतना शक्तिशाली होने के बावजूद, यह एक गहरी नींद मोड प्रदान करता है जिसके लिए केवल 10μΑ की धारा की आवश्यकता होती है। यह 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 डिस्प्ले आप इसे बहुत बड़ा देख सकते हैं। स्क्रीन स्पर्श कार्यक्षमता भी प्रदान करती है जो एक अतिरिक्त बोनस है और पीछे एक एसडी कार्ड स्लॉट है। यह SPI इंटरफ़ेस का उपयोग करता है, इसलिए Arduino या ESP32 बोर्ड के साथ कनेक्शन बहुत सीधा है। प्रदर्शन की लागत अपेक्षाकृत कम है; इसकी कीमत लगभग 11$ है जो मेरी राय में इस डिस्प्ले की पेशकश के लिए उचित मूल्य है।

इस डिस्प्ले के बारे में एक और बात यह है कि यह टच डिस्प्ले की तरह ढाल के रूप में नहीं आता है जिसे हम अभी तक इस्तेमाल कर रहे थे। इस तरह, हम डिस्प्ले को किसी भी बोर्ड, Arduino Pro मिनी, STM32, ESP8266 और ESP32 से कनेक्ट कर सकते हैं। यह बहुत महत्वपूर्ण है क्योंकि अब हमारे पास एक कम लागत वाला डिस्प्ले है जिसे हम हर बोर्ड के साथ उपयोग कर सकते हैं। अब तक, इन बोर्डों के साथ हम एकमात्र टच डिस्प्ले का उपयोग कर सकते थे, जो नेक्स्टियन डिस्प्ले थे जो अधिक महंगे हैं, और ईमानदार होने के बावजूद मैं समय-समय पर उनका उपयोग करता हूं, मैं वास्तव में उन्हें पसंद नहीं करता।

चरण 4: डिस्प्ले को कनेक्ट करना

डिस्प्ले कनेक्ट करना
डिस्प्ले कनेक्ट करना
डिस्प्ले कनेक्ट करना
डिस्प्ले कनेक्ट करना
डिस्प्ले कनेक्ट करना
डिस्प्ले कनेक्ट करना
डिस्प्ले कनेक्ट करना
डिस्प्ले कनेक्ट करना

सबसे पहले, हमें ESP32 बोर्ड को 2.8”डिस्प्ले से जोड़ना होगा। आप इंस्ट्रक्शनल से जुड़े योजनाबद्ध को पा सकते हैं। मैं इस DOIT ESP32 बोर्ड का उपयोग कर रहा हूं जो लगभग दो साल पहले जारी किया गया था। बोर्ड का यह संस्करण अब उपलब्ध नहीं है क्योंकि अब इसका एक नया संस्करण उपलब्ध है जो अधिक पिन प्रदान करता है, यह वाला। बोर्ड के पुराने संस्करण का उपयोग करने का एकमात्र कारण यह है कि बोर्ड का GND पिन SPI पिन के बगल में, बोर्ड के एक ही तरफ रखा जाता है, जो इसे ब्रेडबोर्ड के अनुकूल बनाता है।

डिस्प्ले को बोर्ड से जोड़ने के बाद हम प्रोजेक्ट को पावर दे सकते हैं। कुछ सेकंड के बाद, हमें पास के Xiaomi डिवाइस से लाइव डेटा प्राप्त होता है। चूंकि डिवाइस ब्लूटूथ 4 का उपयोग करता है, इसलिए इसकी रेंज काफी अच्छी है। हम आसानी से वह डेटा प्राप्त कर सकते हैं जो यह डिवाइस 10 मीटर या उससे अधिक की दूरी से प्रसारित करता है! हम Xiaomi डिवाइस का बैटरी स्तर भी प्राप्त कर सकते हैं लेकिन मैं इस मान को स्क्रीन पर प्रदर्शित नहीं करता।

यदि हम इस यूएसबी मीटर का उपयोग करते हैं, तो हम देख सकते हैं कि इस बड़े डिस्प्ले का उपयोग करके इस परियोजना का वर्तमान ड्रा लगभग 120-150 एमए है। यदि हम ई-पेपर डिस्प्ले का उपयोग करते हैं, ईएसपी32 बोर्ड को डीप स्लीप मोड में रखते हैं, और हर कुछ मिनटों में सेंसर से डेटा प्राप्त करते हैं तो हम इस प्रोजेक्ट को बैटरी के अनुकूल बना सकते हैं। मैं इसे भविष्य के वीडियो में आजमाऊंगा। यह प्रोजेक्ट सिर्फ एक प्रदर्शन है कि हम इस डिवाइस से वायरलेस तरीके से डेटा प्राप्त कर सकते हैं।

चरण 5: परियोजना का कोड

परियोजना का कोड
परियोजना का कोड

आइए अब परियोजना के सॉफ्टवेयर पक्ष को देखें।

परियोजना का कोड इस परियोजना पर आधारित है:

मैंने उस कोड का उपयोग किया जो Xiaomi डिवाइस से वह डेटा प्राप्त करता है और इसके साथ एक स्टैंडअलोन प्रोजेक्ट बनाया है।

इस चर में, हम घोषणा करते हैं कि हमें हर 10 सेकंड में ताजा डेटा प्राप्त करने की आवश्यकता है।

#SCAN_TIME 10 // सेकंड परिभाषित करें

यहां, हम घोषणा करते हैं कि हम तापमान को डिग्री सेल्सियस में प्रदर्शित करना चाहते हैं। यदि आप इंपीरियल सिस्टम का उपयोग करना चाहते हैं तो बस इस चर को गलत पर सेट करें।

बूलियन मेट्रिक = सच; // मीट्रिक सिस्टम के लिए सही सेट करें; शाही के लिए झूठा

सेटअप फंक्शन में हम ESP32 बोर्ड के डिस्प्ले और ब्लूटूथ मॉड्यूल को इनिशियलाइज़ करते हैं और फिर हम स्क्रीन पर यूजर इंटरफेस बनाते हैं।

व्यर्थ व्यवस्था() {

WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); // ब्राउनआउट डिटेक्टर को अक्षम करें

tft.begin ();

सीरियल.बेगिन (115200);

Serial.println ("ESP32 XIAOMI DISPLAY"); initब्लूटूथ ();

ड्रायूआई ();

}

इसके बाद, हम हर 10 सेकंड में आस-पास के ब्लूटूथ डिवाइस खोजते हैं। हम Xiaomi डिवाइस से कोई संबंध नहीं बनाते क्योंकि इसकी आवश्यकता नहीं है। हम केवल पास के ब्लूटूथ कम ऊर्जा बाह्य उपकरणों के लिए स्कैन करते हैं और प्रसारण विज्ञापन पैकेट की जांच करते हैं।

शून्य लूप () {चार प्रिंटलॉग [२५६]; Serial.printf ("%d सेकंड के लिए BLE स्कैन प्रारंभ करें…\n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); इंट काउंट = फाउंडडिवाइस.गेटकाउंट (); प्रिंटफ ("डिवाइस की संख्या मिली:% d / n", गिनती);

देरी (100);

}

आर्द्रता और तापमान मान उन पैकेटों में संग्रहीत होते हैं, इसलिए हमें केवल उन्हें पढ़ने की आवश्यकता होती है। मानों को पढ़ने के बाद हम उन्हें स्क्रीन पर प्रदर्शित करते हैं। हमेशा की तरह आप इस निर्देश के साथ संलग्न विवरण में इस परियोजना के कोड का लिंक पा सकते हैं।

चरण 6: अंतिम विचार और सुधार

अंतिम विचार और सुधार
अंतिम विचार और सुधार
अंतिम विचार और सुधार
अंतिम विचार और सुधार

अब जब हम जानते हैं कि इस सेंसर से वायरलेस तरीके से डेटा कैसे प्राप्त किया जाए तो हम एक पूर्ण बैटरी चालित मौसम स्टेशन बना सकते हैं। चूंकि यह Xiaomi डिवाइस एक व्यावसायिक उत्पाद है, इसलिए यह शानदार बैटरी जीवन प्रदान करता है। दुर्भाग्य से, हम अभी तक अपनी परियोजनाओं पर समान बैटरी खपत हासिल नहीं कर सके हैं। इसलिए, मैं इस सेंसर को एक मौसम स्टेशन परियोजना के लिए एक बाहरी सेंसर के रूप में उपयोग करने की योजना बना रहा हूं जो एक बड़े ई-पेपर डिस्प्ले का उपयोग करेगा। बढ़िया रहेगा। इसके अलावा, मैं अन्य Xiaomi ब्लूटूथ सक्षम उपकरणों की खोज करने जा रहा हूं जिन्हें हम इसी तरह से हैक कर सकते हैं। बने रहें।

मुझे इस परियोजना के बारे में आपकी राय जानना अच्छा लगेगा। क्या आपको यह उपयोगी लगता है कि हम कुछ व्यावसायिक ब्लूटूथ डिवाइस से डेटा प्राप्त कर सकते हैं? इस कार्यक्षमता का उपयोग करके आप क्या बनाने जा रहे हैं? मैं आपके विचारों को पढ़ना चाहता हूं इसलिए कृपया उन्हें नीचे टिप्पणी अनुभाग में पोस्ट करें। धन्यवाद!

सिफारिश की: