فهرست مطالب:

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
Arduino I2C Sniffer
Arduino I2C Sniffer

I2C یک پروتکل سریال است که برای ارتباط یک میکروکنترلر با لوازم جانبی خارجی متصل به همان مدار استفاده می شود. هر وسیله جانبی باید دارای یک شماره شناسه منحصر به فرد به نام آدرس باشد که برای شناسایی آن به عنوان گیرنده مورد نظر یک پیام مورد استفاده قرار می گیرد. این آدرسها توسط سازنده دستگاه تعیین می شوند و اغلب اوقات نمی توان آنها را تغییر داد. یک اسنایفر تمام آدرس های ممکن را به دنبال دستگاه های متصل اسکن می کند و مواردی را که پیدا می کند گزارش می دهد. این به شناسایی تراشه های بدون علامت کمک می کند زیرا آدرس را می توان برای اطلاعات بیشتر در مورد تراشه در گوگل جستجو کرد.

این دستگاه در Arduino UNO رفتار اسکریپت Raspberry Pi i2cdetect را تقلید می کند و تمام آدرس های احتمالی i2c را که به دنبال دستگاه های متصل می گردند ، بو می کشد و نتایج را به زیبایی روی صفحه LCD 16x02 چاپ می کند.

برای تناسب همه چیز روی صفحه ، هر دو قسمت بالا و پایین آدرس در بالای نتایج چاپ می شود ، قسمت بالای آن روی حروف برجسته است. دو دکمه فشاری به شما امکان می دهد بین آدرس ها حرکت کنید و 16 آدرس را همزمان نشان دهید. در صورت تشخیص دستگاه ، W چاپ می شود تا به عنوان آدرس نوشتاری نشان داده شود و R در صورتی که آدرس خواندن باشد نشان داده می شود. در صورت عدم تشخیص چیزی در آن آدرس ، خط تیره (-) روی صفحه نمایش داده می شود.

مرحله 1: مواد

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

انتخاب 1

1 x آردوینو UNO

صفحه نمایش 1 x 16x02 LCD

پتانسیومتر 1x 10K

مقاومت 1x 330 اهم

3 دکمه فشاری

کابل های بلوز

تعویض کننده سطح 1x I2C (روی تصویر مواد نیست)

گزینه 2

1 x آردوینو UNO

محافظ صفحه کلید LCD (از دکمه های محافظ استفاده نمی شود)

3 دکمه فشاری

کابل های بلوز

تعویض کننده سطح 1x I2C (در تصویر مواد موجود نیست)

گزینه 2 گزینه ای است که ساخته می شود زیرا این همان چیزی است که من در حال حاضر در دست داشتم. تغییر سطح بخش مهمی از مدار است زیرا امروزه اکثر دستگاه ها از منطق 3.3 ولت استفاده می کنند و 5 ولت آردوینو به آنها آسیب می رساند.

(در تصاویر ، مطالب خط کشیده شده مورد نیاز نیست.)

مرحله 2: مدار

جریان
جریان
جریان
جریان
جریان
جریان

مدار تقریباً مستقیم است ، با استفاده از pinout استاندارد برای نمونه های Arduino برای LCD ، پین های پیش فرض برای I2C و 3 پین یدکی برای دکمه های فشار.

در صورت استفاده از محافظ صفحه کلید LCD ، pinout برای LCD تغییر می کند ، اما در حال حاضر در کد در نظر گرفته شده است. از دکمه های صفحه کلید LCD Shield استفاده نمی شود زیرا به روش نظرسنجی آنالوگ نیاز دارند که سازگاری بین دو مدار اجرایی احتمالی (LCD محافظ و مستقل) را از بین می برد.

مرحله 3: کد

کد
کد

در صورت استفاده از محافظ صفحه کلید LCD ، #LCD_SHIELD تعریف شده باید در ابتدای طرح بدون اظهار نظر باقی بماند. در غیر اینصورت ، برای استفاده از نمودار اول ، نظر دهید.

مرحله 4: نتیجه گیری

نتیجه گیری
نتیجه گیری
نتیجه گیری
نتیجه گیری
نتیجه گیری
نتیجه گیری

برای آزمایش کد و مدار ، از تراشه BQ32000 RTC و شتاب سنج MMA8452Q استفاده شد. همانطور که در تصاویر مشاهده می شود ، دستگاه 4 آدرس را تشخیص می دهد: 0x3A و 0xD0 به عنوان آدرس نوشتن ، و 0x3B و 0xD1 به عنوان آدرس های خوانده شده. این آدرس ها با دستگاه های تست مطابقت دارند بنابراین کد کار می کند.

من می خواهم از دختران مهربان در پکن Makerspace ، Fu Yao و Liu Xin تشکر کنم که به من کمک کردند تا مواد لازم برای آزمایش این پروژه را در این مدت کوتاه تهیه کنم.

توصیه شده: