विषयसूची:

Arduino I2C स्निफ़र: 4 चरण
Arduino I2C स्निफ़र: 4 चरण

वीडियो: Arduino I2C स्निफ़र: 4 चरण

वीडियो: Arduino I2C स्निफ़र: 4 चरण
वीडियो: KeySweeper - covert Microsoft wireless keyboard sniffer using Arduino and nRF24L01+ 2024, जुलाई
Anonim
Arduino I2C स्निफ़र
Arduino I2C स्निफ़र

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

यह डिवाइस एक Arduino UNO पर रास्पबेरी पाई i2cdetect स्क्रिप्ट के व्यवहार की नकल करता है, कनेक्टेड डिवाइसों की तलाश में सभी संभावित i2c पतों को सूँघता है और 16x02 एलसीडी स्क्रीन पर परिणामों को अच्छी तरह से प्रिंट करता है।

स्क्रीन पर सब कुछ फिट करने के लिए, पते के उच्च और निम्न दोनों हिस्सों को परिणामों के ऊपर मुद्रित किया जाता है, उच्च भाग बोल्ड टाइपफेस पर होता है। दो पुश बटन एक बार में 16 पते दिखाते हुए पतों के बीच नेविगेट करने की अनुमति देते हैं। यदि किसी उपकरण का पता चलता है, तो W को एक लेखन पते के रूप में दिखाने के लिए मुद्रित किया जाएगा और यदि यह एक पठन पता है तो R दिखाया जाएगा। यदि उस पते पर कुछ भी नहीं मिलता है, तो स्क्रीन पर एक हाइफ़न (-) दिखाया जाएगा।

चरण 1: सामग्री

सामग्री
सामग्री
सामग्री
सामग्री

विकल्प 1

1 एक्स अरुडिनो यूएनओ

1 एक्स 16x02 एलसीडी स्क्रीन

1x 10K पोटेंशियोमीटर

1x 330 ओम रोकनेवाला

3x पुश बटन

जंपर केबल

1x I2C स्तर का मज़दूर (सामग्री चित्र पर नहीं)

विकल्प 2

1 एक्स अरुडिनो यूएनओ

एलसीडी कीपैड शील्ड (शील्ड के बटनों का उपयोग नहीं किया जाएगा)

3x पुश बटन

जंपर केबल

1x I2C स्तर का मज़दूर (सामग्री चित्र पर नहीं)

विकल्प 2 वह है जिसे बनाया जाएगा क्योंकि इस समय मेरे पास यही था। लेवल शिफ्टर सर्किट का एक महत्वपूर्ण हिस्सा है क्योंकि आजकल ज्यादातर डिवाइस 3.3V लॉजिक का उपयोग करते हैं और Arduino से 5V उन्हें नुकसान पहुंचाता है।

(तस्वीरों में, क्रास आउट सामग्री की आवश्यकता नहीं है।)

चरण 2: सर्किट

सर्किट
सर्किट
सर्किट
सर्किट
सर्किट
सर्किट

एलसीडी के लिए Arduino उदाहरणों के लिए मानक पिनआउट, I2C के लिए डिफ़ॉल्ट पिन और पुशबटन के लिए 3 अतिरिक्त पिन का उपयोग करते हुए सर्किट बहुत सीधे आगे है।

यदि आप एलसीडी कीपैड शील्ड का उपयोग करते हैं, तो एलसीडी के लिए पिनआउट बदल जाता है, लेकिन यह पहले से ही कोड के भीतर माना जाता है। एलसीडी कीपैड शील्ड बटन का उपयोग नहीं किया जाता है क्योंकि उन्हें एक एनालॉग मतदान पद्धति की आवश्यकता होती है जो दो संभावित कार्यान्वयन सर्किट (शील्ड और स्टैंड अलोन एलसीडी) के बीच संगतता को तोड़ती है।

चरण 3: कोड

कोड
कोड

यदि LCD कीपैड शील्ड का उपयोग किया जाता है, तो स्केच की शुरुआत में #define LCD_SHIELD को बिना किसी टिप्पणी के छोड़ दिया जाना चाहिए। अन्यथा, पहले आरेख का उपयोग करने के लिए टिप्पणी करें।

चरण 4: निष्कर्ष

निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष
निष्कर्ष

कोड और सर्किट के परीक्षण के लिए, एक BQ32000 RTC चिप और एक MMA8452Q एक्सेलेरोमीटर का उपयोग किया गया था। जैसा कि तस्वीरों में देखा जा सकता है, डिवाइस 4 पतों का पता लगा रहा है: 0x3A और 0xD0 लिखने के पते के रूप में, और 0x3B और 0xD1 रीड एड्रेस के रूप में। यह पता परीक्षण उपकरणों से मेल खाता है इसलिए कोड काम कर रहा है।

मैं बीजिंग मेकर्सस्पेस, फू याओ और लियू शिन की दयालु लड़कियों को धन्यवाद देना चाहता हूं, जिन्होंने इतने कम समय में इस परियोजना के परीक्षण के लिए आवश्यक सामग्री प्राप्त करने में मेरी मदद की।

सिफारिश की: