جدول المحتويات:

Arduino I2C Sniffer: 4 خطوات
Arduino I2C Sniffer: 4 خطوات

فيديو: Arduino I2C Sniffer: 4 خطوات

فيديو: Arduino I2C Sniffer: 4 خطوات
فيديو: How I2C Communication Works and How To Use It with Arduino 2024, يوليو
Anonim
اردوينو I2C الشم
اردوينو I2C الشم

I2C هو بروتوكول تسلسلي يستخدم لتوصيل متحكم دقيق بأجهزة طرفية خارجية متصلة بنفس الدائرة. يجب أن يكون لكل جهاز طرفي رقم معرف فريد يسمى العنوان الذي يتم استخدامه لتعريفه على أنه المستلم المقصود لرسالة معينة. يتم تعيين هذه العناوين من قبل الشركة المصنعة للجهاز ولا يمكن تغييرها في معظم الأحيان. يقوم المتشمم بمسح جميع العناوين المحتملة بحثًا عن الأجهزة المتصلة والإبلاغ عن تلك التي يعثر عليها. يساعد هذا في تحديد الرقائق غير المميزة حيث يمكن استخدام العنوان googled للحصول على مزيد من المعلومات بخصوص الشريحة.

يحاكي هذا الجهاز على Arduino UNO سلوك البرنامج النصي Raspberry Pi i2cdetect ، ويستنشق جميع عناوين i2c الممكنة بحثًا عن الأجهزة المتصلة ويطبع النتائج بشكل جيد على شاشة LCD مقاس 16x02.

لملائمة كل شيء على الشاشة ، تتم طباعة كل من الأجزاء العلوية والسفلية من العنوان فوق النتائج ، ويكون الجزء العلوي على محرف غامق. زران دفعان يسمحان بالتنقل بين العناوين ، مع إظهار 16 عنوانًا في المرة الواحدة. في حالة اكتشاف جهاز ، ستتم طباعة W لإظهاره كعنوان كتابة وسيظهر R في حالة كونه عنوان قراءة. في حالة عدم اكتشاف أي شيء في هذا العنوان ، ستظهر واصلة (-) على الشاشة.

الخطوة 1: المواد

المواد
المواد
المواد
المواد

الخيار 1

1 × اردوينو أونو

1 × 16x02 شاشة LCD

مقياس جهد 1x 10 كيلو

1x 330 أوم المقاوم

3 أزرار ضغط

كابلات توصيل

1x I2C مستوى شيفتر (ليس على صورة المواد)

الخيار 2

1 × اردوينو أونو

LCD Keypad Shield (لن يتم استخدام الأزرار الموجودة على الدرع)

3 أزرار انضغاطية

كابلات توصيل

1x I2C مستوى شيفتر (ليس على صورة المواد)

الخيار 2 هو الذي سيتم بناؤه لأن هذا هو ما لدي في الوقت الحالي. يعد مفتاح تغيير المستوى جزءًا مهمًا من الدائرة حيث تستخدم معظم الأجهزة في الوقت الحاضر منطق 3.3 فولت ويؤدي 5 فولت من Arduino إلى إتلافها.

(في الصور ، المادة المشطوبة غير مطلوبة.)

الخطوة 2: الدائرة

دائرة كهربائية
دائرة كهربائية
دائرة كهربائية
دائرة كهربائية
دائرة كهربائية
دائرة كهربائية

الدائرة مستقيمة جدًا للأمام ، باستخدام pinout القياسي لأمثلة Arduino لشاشة LCD ، والمسامير الافتراضية لـ I2C و 3 دبابيس احتياطية لأزرار الضغط.

في حالة استخدامك لـ LCD Keypad Shield ، يتغير طرف توصيل شاشة LCD ولكن هذا يعتبر بالفعل ضمن الكود. لا يتم استخدام أزرار LCD Keypad Shield لأنها تتطلب طريقة اقتراع تمثيلية تكسر التوافق بين دائرتي التنفيذ المحتملتين (Shield و LCD المستقل)

الخطوة 3: الكود

الشفرة
الشفرة

في حالة استخدام LCD Keypad Shield ، يجب ترك #define LCD_SHIELD بدون تعليق في بداية الرسم التخطيطي. خلاف ذلك ، علق عليه لاستخدام الرسم التخطيطي الأول.

الخطوة 4: الاستنتاجات

الاستنتاجات
الاستنتاجات
الاستنتاجات
الاستنتاجات
الاستنتاجات
الاستنتاجات

لاختبار الكود والدائرة ، تم استخدام شريحة BQ32000 RTC ومقياس تسارع MMA8452Q. كما يتضح من الصور ، يكتشف الجهاز 4 عناوين: 0x3A و 0xD0 كعناوين كتابة ، و 0x3B و 0xD1 كعناوين قراءة. تتوافق هذه العناوين مع أجهزة الاختبار حتى يعمل الرمز.

أود أن أشكر الفتيات اللطيفات في Beijing Makerspace ، فو ياو وليو شين ، لمساعدتي في الحصول على المواد اللازمة لاختبار هذا المشروع في مثل هذه المهلة القصيرة.

موصى به: