Cuprins:

Sniffer Arduino I2C: 4 pași
Sniffer Arduino I2C: 4 pași

Video: Sniffer Arduino I2C: 4 pași

Video: Sniffer Arduino I2C: 4 pași
Video: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Noiembrie
Anonim
Sniffer Arduino I2C
Sniffer Arduino I2C

I2C este un protocol serial utilizat pentru a comunica un microcontroler cu periferice externe atașate la același circuit. Fiecare periferic trebuie să aibă un număr unic de identificare numit adresă, care este utilizat pentru a-l identifica ca destinatar destinat unui mesaj dat. Aceste adrese sunt atribuite de producătorul dispozitivului și de cele mai multe ori nu pot fi modificate. Un sniffer scanează toate adresele posibile în căutarea dispozitivelor conectate și le raportează pe cele pe care le găsește. Acest lucru ajută la identificarea cipurilor nemarcate, deoarece atunci adresa poate fi googled pentru mai multe informații cu privire la cip.

Acest dispozitiv imită pe un Arduino UNO comportamentul scriptului Raspberry Pi i2cdetect, adulmecând toate adresele i2c posibile în căutarea dispozitivelor conectate și imprimând rezultatele frumos pe un ecran LCD de 16x02.

Pentru a se potrivi cu totul pe ecran, atât partea înaltă, cât și cea inferioară a adresei sunt tipărite deasupra rezultatelor, partea superioară fiind pe un tipar îndrăzneț. Două butoane permit navigarea între adrese, afișând 16 adrese la un moment dat. În cazul în care un dispozitiv este detectat, W va fi tipărit pentru a-l afișa ca adresă de scriere și R va fi afișat în cazul în care este o adresă de citire. În cazul în care nu se detectează nimic la adresa respectivă, o cratimă (-) va fi afișată pe ecran.

Pasul 1: Materiale

Materiale
Materiale
Materiale
Materiale

Opțiunea 1

1 x Arduino UNO

1 x ecran LCD 16x02

1x potențiometru 10K

1x rezistor de 330 ohmi

3x Butoane

Cabluri jumper

1x schimbător de nivel I2C (nu pe imaginea materialelor)

Opțiunea 2

1 x Arduino UNO

Ecranul tastaturii LCD (butoanele de pe ecran nu vor fi utilizate)

3x Butoane

Cabluri jumper

1x schimbător de nivel I2C (nu pe imaginea materialelor)

Opțiunea 2 este cea care va fi construită, deoarece asta am avut la îndemână în acest moment. Schimbătorul de nivel este o parte importantă a circuitului, deoarece în zilele noastre majoritatea dispozitivelor folosesc logica de 3,3V, iar 5V de la Arduino le deteriorează.

(Pe imagini, materialul tăiat nu este necesar.)

Pasul 2: Circuit

Circuit
Circuit
Circuit
Circuit
Circuit
Circuit

Circuitul este destul de drept, folosind pinout-ul standard pentru exemplele Arduino pentru LCD, pinii impliciti pentru I2C și 3 pinii de rezervă pentru butoane.

În cazul în care utilizați ecranul tastaturii LCD, pinout-ul pentru LCD se schimbă, dar acest lucru este deja luat în considerare în cod. Butoanele ecranului tastaturii LCD nu sunt utilizate deoarece necesită o metodă de interogare analogică care rupe compatibilitatea între cele două circuite de implementare posibile (ecran ecran și ecran LCD autonom)

Pasul 3: Cod

Cod
Cod

În cazul utilizării ecranului tastaturii LCD, #define LCD_SHIELD trebuie lăsat necomentat la începutul schiței. În caz contrar, comentați-o pentru a utiliza prima diagramă.

Pasul 4: Concluzii

Concluzii
Concluzii
Concluzii
Concluzii
Concluzii
Concluzii

Pentru testarea codului și circuitului, s-au folosit un cip BQ32000 RTC și un accelerometru MMA8452Q. După cum se poate vedea pe imagini, dispozitivul detectează 4 adrese: 0x3A și 0xD0 ca adrese de scriere și 0x3B și 0xD1 ca adrese citite. Aceste adrese corespund dispozitivelor de test, astfel încât codul funcționează.

Aș dori să mulțumesc fetelor amabile de la Beijing Makerspace, Fu Yao și Liu Xin, pentru că m-au ajutat să obțin materialele necesare testării acestui proiect într-un termen atât de scurt.

Recomandat: