विषयसूची:

अपने गैराज का दरवाजा हैक करें: 5 कदम
अपने गैराज का दरवाजा हैक करें: 5 कदम

वीडियो: अपने गैराज का दरवाजा हैक करें: 5 कदम

वीडियो: अपने गैराज का दरवाजा हैक करें: 5 कदम
वीडियो: एक नया गैराज डोर ओपनर #home #garage #diy प्रोग्राम करें 2024, जुलाई
Anonim
अपने गैराज का दरवाजा हैक करें
अपने गैराज का दरवाजा हैक करें
अपने गैराज का दरवाजा हैक करें
अपने गैराज का दरवाजा हैक करें
अपने गैराज का दरवाजा हैक करें
अपने गैराज का दरवाजा हैक करें

सिर्फ एक फोन ऐप के साथ घर जाने का, या डेटा ट्राम को सुनने और फिर से कॉपी करने में सक्षम होने का सपना किसने नहीं देखा है? मैंने जो महसूस किया, और मैं कैसे आगे बढ़ा, उसे आपके साथ साझा करने में मुझे खुशी हो रही है। दूसरी बार जब मैं अपनी चाबियां भूल गया तो मैंने इस परियोजना को शुरू किया …

बेशक, एन्कोडिंग, मॉड्यूलेशन का प्रकार, वाहक की आवृत्ति, ब्लूटूथ कनेक्शन की जानकारी, और उदाहरण में जो डेटा मैं दिखाने जा रहा हूं, वे मूल नहीं हैं, मैं आगंतुकों को नहीं रखना पसंद करता हूं;-)।

यह एप्लिकेशन विद्युत चुम्बकीय तरंगों (गेराज के दरवाजे, कार, कुछ शटर …) द्वारा डिजिटल जानकारी प्राप्त करने में सक्षम किसी भी वस्तु पर लागू होता है। पूरे सिस्टम में ब्लूटूथ द्वारा एक फोन से जुड़ा एक ऑब्जेक्ट होता है, यह ऑब्जेक्ट उसी फ्रेम को भेजने में सक्षम होता है जिसे रिमोट से जुड़ा होता है जिसे हम हैक करना चाहते हैं। मैंने इस वस्तु को अपने गैरेज में रखा है, और मैं इसे बाहर से जोड़ सकता हूं।

चरण 1: उपकरण

Equipement
Equipement
Equipement
Equipement

उपयोग की जाने वाली भाषाएँ: C++, MATLAB, टाइपस्क्रिप्ट, C, html।

डिजिटल इलेक्ट्रॉनिक्स और दूरसंचार / सिग्नल प्रोसेसिंग में बुनियादी ज्ञान।

लागत: $ 35 से कम।

हार्डवेयर आवश्यकताएँ:

- NooELEC NESDR: डेटा कैप्चर करने के लिए। यह बहुत सस्ता मॉड्यूल एक डिजिटल डिमॉड्यूलेशन करता है, इसलिए इसकी उच्च पोर्टेबिलिटी है। यह मॉडल MATLAB के साथ संगत है। ($18.95)

www.noolec.com/store/sdr/sdr-receivers/nes…

- Wemos Lolin32 lite: यह esp32 एक सस्ता माइक्रोकंट्रोलर है, जो Wifi और ब्लूटूथ से लैस है। हम इस एप्लिकेशन में वाईफाई का उपयोग नहीं करेंगे, लेकिन यह काफी हद तक बोधगम्य है। ($4.74)

wiki.wemos.cc/products:lolin32:lolin32_lit…

- CDSENET cc1101: यह रेडियो ट्रांसमीटर हमें चुनी हुई वाहक आवृत्ति से लेकर मॉडुलन के प्रकार तक अत्यधिक लचीलापन देता है। ($2.63)

www.aliexpress.com/item/2PC-Lot-E07-868MS1…

- तार, हेडर, वेल्डिंग उपकरण, स्वायत्तता के लिए 3.7V लाइपो बैटरी, संभवतः आस्टसीलस्कप, और/या डिबग के लिए तर्क विश्लेषक, और संयोग से, एक स्मार्टफोन…

सॉफ़्टवेयर आवश्यकताएं:

- MATLAB/Simulink: डेटा कैप्चर करने के लिए। अन्य मुफ्त वैकल्पिक सॉफ्टवेयर का उपयोग किया जा सकता है, जैसे डेटा विज़ुअलाइज़ेशन के लिए ऑडेसिटी। (लाइसेंस)

fr.mathworks.com/products.html?s_tid=gn_ps

- esp-idf टूलचेन: इसका उपयोग esp32 की प्रोग्रामिंग के लिए किया जाएगा। Arduino ide का भी उपयोग किया जा सकता है, लेकिन यह उतनी स्वतंत्रता नहीं देता जितना हम उपयोग करेंगे। (नि: शुल्क)

esp-idf.readthedocs.io/en/latest/get-starte…

- टीआई स्मार्टआरएफ स्टूडियो: यह हमारे विनिर्देशों के अनुसार सीसी1101 रजिस्टरों को कॉन्फ़िगर करने में हमारी सहायता करेगा। (नि: शुल्क)

www.ti.com/tool/SMARTRFTM-स्टूडियो

- आयनिक: ऐप बनाने के लिए। आप देशी ऐप्स बनाने का चुनाव कर सकते हैं, लेकिन Ionic हमें केवल कोड के साथ Android और IOS दोनों डिवाइस पर अपना ऐप चलाने की अनुमति देता है। हमारे मामले में प्रदर्शन की मांग नहीं की गई है। (नि: शुल्क)

ionicframework.com/

- आपका पसंदीदा विचार …

चरण 2: रिमोट कंट्रोल की जासूसी करना

रिमोट कंट्रोल की जासूसी
रिमोट कंट्रोल की जासूसी
रिमोट कंट्रोल की जासूसी
रिमोट कंट्रोल की जासूसी
रिमोट कंट्रोल की जासूसी
रिमोट कंट्रोल की जासूसी

हम उस डेटा को देखकर शुरू करेंगे जो रिमोट कंट्रोल के कमांड उत्पन्न करते हैं। ऐसा करने के लिए, हम एक rtl-sdr डोंगल और एंटीना का उपयोग करेंगे:

fr.mathworks.com/hardware-support/rtl-sdr….

इस लिंक का अनुसरण करके, आपको MATLAB पैकेज मिलेगा, साथ ही सभी कीमतों को उनके स्पष्टीकरण के साथ समझाते हुए एक निःशुल्क पुस्तक भी मिलेगी। सारांशित करने के लिए कि हमें क्या चिंतित करता है, ट्रांज़िट डेटा एक IQ सिग्नल के रूप में होता है: एक "I" इन-फ़ेज़ डेटा, जिसे "Q" क्वाडरेचर डेटा के साथ जोड़ा जाता है। यह विधि दूरसंचार की सुविधा प्रदान करती है। हम केवल चरण में संकेत प्राप्त करने में रुचि लेंगे। अब हम रिमोट कंट्रोल पर भौतिक और डिजिटल जानकारी एकत्र करेंगे। यदि आप इस पर कुछ दस्तावेज पा सकते हैं, तो यह आसान हो जाएगा। मुझे कोई नहीं मिला। सिग्नल को अस्थायी रूप से देखने में सक्षम होने के लिए, हमें पहले यह जानना होगा कि उत्सर्जित सिग्नल की आवृत्ति वाहक क्या है। हम पैकेज प्रलेखन "आरटीएल-एसडीआर रेडियो के साथ स्पेक्ट्रल विश्लेषण" के साथ प्रदान किए गए उदाहरण का उपयोग करेंगे, यह जानने के लिए कि जब हम एक कमांड भेजते हैं तो हम किस आवृत्ति पर चरम शक्ति का निरीक्षण करते हैं। मेरे मामले में यह 868.22 मेगाहर्ट्ज है। इस तरह के अनुप्रयोगों के लिए "मानक" आवृत्तियों लगभग 868 मेगाहर्ट्ज हैं।

इन संकेतों के साथ, हम डेटा को पुनर्प्राप्त करने के लिए MATLAB कोड लिखने में सक्षम होंगे। यह फोटो में संलग्न है और टिप्पणी की गई है। परिणाम हमें मॉड्यूलेशन के प्रकार को खोजने की अनुमति देता है: कच्ची जानकारी प्राप्त करके, सिग्नल के वास्तविक भाग को पुनर्प्राप्त करने के बाद परिणाम प्रदर्शित करके, हम यह अनुमान लगा सकते हैं कि यह एक एएसके / ओओके है मॉडुलन वास्तव में, हम देखते हैं कि आवृत्ति अपरिवर्तनीय है, हालांकि, संकेत के केवल दो आयाम हैं: एक अशक्त, और एक निश्चित। शेष कोड हमें प्राप्त सिग्नल के लिफाफे को पुनर्प्राप्त करने की अनुमति देता है, जिससे ट्राम को जानने के लिए पढ़ना आसान हो जाता है। एक बार प्रदर्शित होने के बाद, हम बेसबैंड मॉड्यूलेशन निर्धारित कर सकते हैं: यह एक मैनचेस्टर कोडिंग है (संलग्न फोटो देखें)। हम बॉड दर (प्रति सेकंड प्रतीक) भी घटा सकते हैं। यह सारी जानकारी एकत्र की जा रही है, हम डेटा फ्रेम को जान सकते हैं। मेरे मामले में, पाए गए बाइट हैं: 249, 39, 75, 178, 45, 200, और कई बार दोहराया गया, यह सुनिश्चित करने के लिए कि कमांड अच्छी तरह से प्राप्त हुआ है। सौभाग्य से, कोड नहीं चल रहा है, डेटा फ्रेम हमेशा समान होता है।

चरण 3: समान डेटा फ़्रेम भेजें

वही डेटा फ़्रेम भेजें
वही डेटा फ़्रेम भेजें
वही डेटा फ़्रेम भेजें
वही डेटा फ़्रेम भेजें
वही डेटा फ़्रेम भेजें
वही डेटा फ़्रेम भेजें

टेक्सास इंस्ट्रूमेंट्स cc1101 इतना लचीला है कि आप अभी भी अपने लक्ष्य को प्राप्त करेंगे, भले ही पिछले चरण में आपको मिली सेटिंग्स मेरे से पूरी तरह से अलग हों। वास्तव में, आप दस्तावेज़ीकरण, पृष्ठ 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) में देखेंगे कि यह एनआरजेड, मैनचेस्टर, एफएसके, एएसके / ओओके मॉड्यूलेशन तक पहुंचने की अनुमति देता है। 433 मेगाहर्ट्ज या 868 मेगाहर्ट्ज, और कई अन्य चीजों के आसपास आवृत्तियों। मैं आपको इस मॉड्यूल से परिचित होने के लिए प्रलेखन पढ़ने की सलाह देता हूं।

इस लिंक पर आप इस मॉड्यूल का उपयोग करके कार्यों के निर्माण से संबंधित लोबोरिस के काम को एक उदाहरण के रूप में पाएंगे:

github.com/loboris/ESP32_CC1101/tree/maste…

हम अपने esp32 के लिए esp-idf टूलचेन के साथ अपना कोड लिखने जा रहे हैं (पहले चरण के लिंक देखें)। आप अपने प्रोजेक्ट के कंपोनेंट्स सबडायरेक्टरी में लिंक की फाइलें जोड़ सकते हैं। हमारे cc1101 को ठीक से कॉन्फ़िगर करने के लिए, हमें इसके रजिस्टरों को ठीक करने की आवश्यकता होगी। टेक्सास इंस्ट्रूमेंट्स हमें सॉफ्टवेयर प्रदान करता है जो हमें हमारे कॉन्फ़िगरेशन के अनुसार रजिस्टरों का मूल्य देता है: स्मार्टआरएफ स्टूडियो।

मेरे संबंध में, मैं सॉफ्टवेयर को इंगित करता हूं कि मैं मैनचेस्टर कोडिंग चाहता हूं, कि मेरी वाहक आवृत्ति 868.22 मेगाहर्ट्ज है, कि मेरा प्रकार का मॉड्यूलेशन एएसके / ओओके है … मैं आपको अपने पैरामीटर दर्ज करने देता हूं। ऐसे मामले में जहां आपका बेसबैंड एन्कोडिंग उपलब्ध नहीं है, आप एनआरजेड एन्कोडिंग पर विचार कर सकते हैं, बॉड दर को ठीक से बढ़ाकर, और डेटा को अनुकूलित कर सकते हैं।

एक बार जब आप अपने मूल्यों को परिभाषित कर लेते हैं, तो आपके पास मॉड्यूल के उपयोग से संबंधित कई विकल्प होते हैं: आप उन कार्यों का उपयोग कर सकते हैं जो मैंने आपसे लिंक किए हैं, या मैंने जो किया है, केवल इस कोड से प्रेरणा लें, ताकि सब कुछ और अधिक में कॉन्फ़िगर किया जा सके। क्रूर तरीका (संलग्न तस्वीरें देखें), और केवल वही उपयोग करें जो हमें चाहिए।

जैसा कि cc1101 चिप SPI द्वारा संचार करता है, आप उदाहरण कोड के लिंक में "spi_master_lobo.h" हेडर फ़ाइल पाएंगे, जिसमें SPI का उपयोग करने के लिए अधिक आसान कार्य होंगे, यदि आपको इसे केवल टूलचेन के साथ उपयोग करना था। मैं आपको फोटो में एसपीआई में सीसी११०१ संचार की योजना, सीसी११०१ डेटाशीट के पृष्ठ ३० से ली गई तस्वीर में शामिल करता हूं। प्रस्तुत चार तार हैं: CS (चिप सेलेक्ट, या SS: स्लेव सेलेक्ट, या यहाँ CSn), CLK (या SCLK, मास्टर द्वारा प्रदान की गई घड़ी), MISO (या SO, मास्टर इन स्लेव आउट), और MOSI (या एसआई, मास्टर आउट स्लेव इन)। हमारे मामले में, मास्टर ESP32 है, और दास CC1101 है। संचार तब शुरू होता है जब सीएस पिन सामान्य रूप से कम होता है।

मेन्यूकॉन्फिग के कंपाइलर विकल्पों में संकलन के लिए सी ++ अपवादों को सक्षम करना न भूलें।

चरण 4: सिस्टम से कनेक्ट करें

सिस्टम से कनेक्ट करें
सिस्टम से कनेक्ट करें
सिस्टम से कनेक्ट करें
सिस्टम से कनेक्ट करें
सिस्टम से कनेक्ट करें
सिस्टम से कनेक्ट करें

यदि आपका कोड काम करता है, तो आपने आवश्यक काम किया है। इस भाग में, हम इस बात पर ध्यान देंगे कि सिस्टम से जुड़ा एक फ़ोन ऐप कैसे बनाया जाए। सबसे दिलचस्प समाधान ब्लूटूथ द्वारा कनेक्ट करना है, क्योंकि यह कम-शक्ति प्रोटोकॉल के उपयोग की अनुमति देता है: ब्लूटूथ लो एनर्जी (बीएलई)। पदानुक्रम प्रोफ़ाइल संलग्न आरेख में दिखाया गया है: हम एक सेवा की विशेषता में कमांड को पढ़ेंगे और लिखेंगे। और हां, हमारा esp32 और हमारा स्मार्टफोन ब्लूटूथ से लैस हैं।

यह चरण दो भागों में विभाजित है: esp32 भाग, और ऐप भाग। फोटो संलग्न कोड के मुख्य भागों को दिखाता है और समझाता है।

आप इस लिंक का अनुसरण करके अपने यूयूआईडी उत्पन्न कर सकते हैं:

www.uuidgenerator.net/

ये वे पहचानकर्ता हैं जो हमारी BLE प्रोफ़ाइल की सेवाओं और सुविधाओं तक पहुँच प्रदान करेंगे।

एस्प 32 बीएलई कोड के बारे में, कोल्बन ने इन सभी उच्च स्तरीय सी ++ कार्यों को संगत बनाने के लिए एक अच्छा काम किया:

github.com/nkolban/esp32-snippets/tree/mas…

आप इन फ़ाइलों को घटक उपनिर्देशिका में रख सकते हैं। अन्यथा, आपको यह समझने के लिए अधिक समय की आवश्यकता होगी कि esp-idf टूलचेन के साथ BLE का उपयोग कैसे करें।

कोड में आप जो देखेंगे, उसके सारांश में, हम संबंधित UUIDs के साथ एक सर्वर, एक सेवा और एक विशेषता बनाते हैं, और हम एक पुनर्परिभाषित कॉलबैक क्लास जोड़ते हैं, जिसमें लिखने पर एक संबद्ध विधि होती है: जब हमें "O" प्राप्त होता है। चरित्र, हम cc1101 को एक लिखित आदेश भेजते हैं।

बेशक, Menuconfig के कंपोनेंट कॉन्फिगरेशन में ब्लूटूथ को इनेबल करना न भूलें।

ऐप भाग के बारे में, हम फ्रेमवर्क आयोनिक का उपयोग करेंगे। आप पहले चरण में प्रस्तुत लिंक में इसके बारे में अधिक जानकारी प्राप्त कर सकते हैं, और Ionic के साथ BLE का उपयोग करने के तरीके के बारे में अधिक जानकारी के लिए:

ionicframework.com/docs/native/ble/

और उदाहरण, डॉन द्वारा लिखित:

github.com/don/ionic-ble-examples/tree/mas…

उदाहरण के लिए आप "कनेक्ट" उदाहरण को संपादित कर सकते हैं। हम पहले पृष्ठ पर उपकरणों को स्कैन करते हैं, और यदि हम अपने उपकरण का चयन करते हैं तो दूसरे पृष्ठ पर पहुंच जाते हैं। फिर हम एक इंटरफ़ेस तक पहुँचते हैं जहाँ आप फोटो में प्रस्तुत विधि के साथ एक बटन जोड़ सकते हैं: यह हमारे कमांड "O" को उपयुक्त UUIDs के साथ भेजता है। आप पहले पृष्ठ के कंस्ट्रक्टर में "सक्षम करें" विधि भी जोड़ सकते हैं, एप्लिकेशन की शुरुआत में ब्लूटूथ को सक्रिय करने के लिए कह सकते हैं।

मैं आपको Ionic वेबसाइट को एक्सप्लोर करने और अपने एप्लिकेशन को बेहतर बनाने के लिए सभी घटकों (बटन, अलर्ट, चेकबॉक्स…) की खोज करने की अत्यधिक अनुशंसा करता हूं:

ionicframework.com/docs/components/#overvi…

चरण 5: बिजली की खपत का अनुकूलन करें

बिजली की खपत का अनुकूलन करें
बिजली की खपत का अनुकूलन करें
बिजली की खपत का अनुकूलन करें
बिजली की खपत का अनुकूलन करें

हमने कम खपत पर काम करना शुरू किया, तो चलिए काम करते हैं।

esp-idf टूलचेन हमें एक कॉन्फ़िगरेशन GUI, menuconfig का उपयोग करने की अनुमति देता है: कई पैरामीटर esp32 खपत को कम कर सकते हैं। सबसे पहले, चूंकि हमें वाईफ़ाई की आवश्यकता नहीं है, हम इसे घटक कॉन्फ़िगरेशन में अक्षम कर सकते हैं। उसी फ़ोल्डर में, फ्रीआरटीओएस में, आप "केवल पहले कोर पर फ्रीआरटीओएस चलाएं" का चयन कर सकते हैं। फिर, ईएसपी-विशिष्ट में, आप सीपीयू आवृत्ति को 80 मेगाहर्ट्ज तक कम कर सकते हैं। सभी कार्य अभी भी इस घड़ी की गति पर काम करते हैं। अंत में, आप कर सकते हैं चेक "अल्ट्रा लो पावर (ULP) कोप्रोसेसर सक्षम करें। यह कॉन्फ़िगरेशन वर्तमान खपत को लगभग सौ एमए से लगभग तीस एमए तक ले जाता है। यह अभी भी बहुत अधिक है …

ESP32 गहरी नींद को संभाल सकता है। केवल लो-एनर्जी कोर चालू है और जागने की प्रतीक्षा कर रहा है।

अधिक विवरण के लिए नीचे दिए गए इस लिंक को देखें:

esp-idf.readthedocs.io/en/latest/api-referre…

दुर्भाग्य से, esp-idf टूलचेन (3.0) के अंतिम उपलब्ध संस्करण में, केवल वेक अप उपलब्ध हैं जो टाइमर और GPIO व्यवधानों द्वारा उपलब्ध हैं। सौभाग्य से, एस्प्रेसिफ ने हमें अगले संस्करण (3.1) में BLE जगाने का वादा किया है।

आप सीसी११०१ को स्लीप मोड में भी डाल सकते हैं, एसपीआई में डिवाइस को बंद करने के लिए उचित आदेश भेजकर (सीसी११०१ डेटाशीट, एसपीडब्ल्यूडी कमांड, पृष्ठ ५१ देखें)। डिवाइस को स्लीप मोड में रखने के लिए या इसे जगाने के लिए, आप एसपीआई पिन के चिप सेलेक्ट पिन को कम और फिर हाई कर सकते हैं (डेटाशीट में अधिक जानकारी)।

ये अंतिम कॉन्फ़िगरेशन सिस्टम की खपत को मिली-एम्पीयर से नीचे करने में सक्षम होना चाहिए …

अंत में, सिस्टम को बिना रिचार्ज किए यथासंभव लंबे समय तक चलने के लिए, या यहां तक कि स्वायत्तता के एक महीने तक पहुंचने के लिए, प्रति घंटे सबसे अधिक मिली-एम्पीयर वाली 3.7V बैटरी चुनें। अपने सिस्टम की बिजली खपत को मापकर, अपने सिस्टम के + पोल से पहले श्रृंखला में जुड़े जनरेटर या एमीटर के प्रदर्शन के साथ, आप अनुमान लगा सकते हैं कि आपका सिस्टम कितने समय तक चलेगा!

सिफारिश की: