विषयसूची:
- चरण 1: सभी भागों को प्राप्त करें
- चरण 2: ESP32 बोर्ड
- चरण 3: 2.8 "Arduino और ESP32 के लिए TFT डिस्प्ले"
- चरण 4: डिस्प्ले को कनेक्ट करना
- चरण 5: परियोजना का कोड
- चरण 6: अंतिम विचार और सुधार
वीडियो: ESP32 Xiaomi Hack - वायरलेस तरीके से डेटा प्राप्त करें: 6 चरण (चित्रों के साथ)
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:19
प्रिय दोस्तों एक और इंस्ट्रक्शनल में आपका स्वागत है! आज हम यह सीखने जा रहे हैं कि यह डेटा कैसे प्राप्त करें कि यह 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 बोर्ड
यदि आप इससे परिचित नहीं हैं, तो ESP32 चिप उस लोकप्रिय ESP8266 चिप का उत्तराधिकारी है जिसका हमने अतीत में कई बार उपयोग किया है। ESP32 एक जानवर है! यह दो 32 प्रोसेसिंग कोर प्रदान करता है जो 160 मेगाहर्ट्ज पर काम करते हैं, लगभग 7 डॉलर की लागत के साथ बड़ी मात्रा में मेमोरी, वाईफाई, ब्लूटूथ और कई अन्य सुविधाएं! अद्भुत सामान!
कृपया इस बोर्ड के लिए तैयार की गई विस्तृत समीक्षा देखें। मैंने इस निर्देश पर वीडियो संलग्न किया है। यह समझने में मदद करेगा कि यह चिप हमारे चीजों को हमेशा के लिए बनाने के तरीके को क्यों बदल देगी! ESP32 के बारे में सबसे रोमांचक चीजों में से एक यह है कि यह इतना शक्तिशाली होने के बावजूद, यह एक गहरी नींद मोड प्रदान करता है जिसके लिए केवल 10μΑ की धारा की आवश्यकता होती है। यह ESP32 को कम बिजली के अनुप्रयोगों के लिए आदर्श चिप बनाता है।
चरण 3: 2.8 "Arduino और ESP32 के लिए TFT डिस्प्ले"
डिस्प्ले बड़ा है, और यह 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 ब्लूटूथ सक्षम उपकरणों की खोज करने जा रहा हूं जिन्हें हम इसी तरह से हैक कर सकते हैं। बने रहें।
मुझे इस परियोजना के बारे में आपकी राय जानना अच्छा लगेगा। क्या आपको यह उपयोगी लगता है कि हम कुछ व्यावसायिक ब्लूटूथ डिवाइस से डेटा प्राप्त कर सकते हैं? इस कार्यक्षमता का उपयोग करके आप क्या बनाने जा रहे हैं? मैं आपके विचारों को पढ़ना चाहता हूं इसलिए कृपया उन्हें नीचे टिप्पणी अनुभाग में पोस्ट करें। धन्यवाद!
सिफारिश की:
Arduino UNO और SD-Card के साथ आर्द्रता और तापमान रीयल टाइम डेटा रिकॉर्डर कैसे बनाएं - प्रोटीन में DHT11 डेटा-लॉगर सिमुलेशन: 5 चरण
Arduino UNO और SD-Card के साथ आर्द्रता और तापमान रीयल टाइम डेटा रिकॉर्डर कैसे बनाएं | प्रोटीन में DHT11 डेटा-लॉगर सिमुलेशन: परिचय: नमस्ते, यह लियोनो मेकर है, यहां YouTube लिंक है। हम Arduino के साथ रचनात्मक प्रोजेक्ट बना रहे हैं और एम्बेडेड सिस्टम पर काम कर रहे हैं। डेटा-लॉगर: डेटा लॉगर (डेटा-लॉगर या डेटा रिकॉर्डर भी) एक इलेक्ट्रॉनिक डिवाइस है जो समय के साथ डेटा रिकॉर्ड करता है
एक्सेल में मैक्रो कैसे बनाएं और डेटा को आसान तरीके से कॉपी करें।: 4 कदम
एक्सेल में मैक्रो कैसे बनाएं और डेटा को आसान तरीके से कॉपी करें: नमस्ते, यह निर्देश आपको सिखाएगा कि डेटा को कॉपी और पेस्ट करने के लिए एक आसान और बेहतर तरीके से मैक्रो कैसे बनाया जाए जो उदाहरण के रूप में दिखाई देगा
लगभग किसी भी (हाहा) वेबसाइट से संगीत कैसे प्राप्त करें (जब तक आप इसे सुन सकते हैं आप इसे प्राप्त कर सकते हैं ठीक है अगर यह फ्लैश में एम्बेड किया गया है तो आप शायद नहीं कर पाएंगे) संपादित !!!!! जोड़ी गई जानकारी: 4 कदम
लगभग किसी भी (हाहा) वेबसाइट से संगीत कैसे प्राप्त करें (जब तक आप इसे सुन सकते हैं आप इसे प्राप्त कर सकते हैं … ठीक है अगर यह फ्लैश में एम्बेड किया गया है तो आप शायद नहीं कर पाएंगे) संपादित !!!!! जोड़ी गई जानकारी: यदि आप कभी किसी वेबसाइट पर जाते हैं और यह एक गाना बजाता है जो आपको पसंद है और आप इसे चाहते हैं तो यहां आपके लिए निर्देश है कि अगर आप कुछ गड़बड़ करते हैं तो मेरी गलती नहीं है (ऐसा ही होगा यदि आप बिना किसी कारण के सामान हटाना शुरू कर देते हैं) ) ive संगीत प्राप्त करने में सक्षम है
अपना लेज़र पॉइंटर 'स्पॉट ऑन' प्राप्त करें: 3 चरण (चित्रों के साथ)
अपना लेज़र पॉइंटर 'स्पॉट ऑन' प्राप्त करें: अपने लेज़र पॉइंटर या मॉड्यूल के संरेखण की जाँच करें और समायोजित करें। यह एक अन्य 'ible से स्पिन-ऑफ है जो वर्तमान में निर्माणाधीन है। मैंने एक हरे रंग का लेज़र पॉइंटर खरीदा और 'आसान बिट्स' को अलग कर लिया जो इस मॉडल में केवल फ़ोकसिंग लेंस था
Windows XP या Vista पर व्यवस्थापकीय विशेषाधिकार प्राप्त करने के 3 अचूक तरीके: 3 चरण
विंडोज एक्सपी या विस्टा पर प्रशासक के विशेषाधिकार प्राप्त करने के 3 अचूक तरीके: यह निर्देश आपको कंप्यूटर पर किसी भी खाते के लिए कोई भी पासवर्ड खोजने के 3 तरीके दिखाएगा। ये 3 कार्यक्रम हैं कैन और एबेल, ओफक्रैक और ओफक्रैक लाइव सीडी