Përmbajtje:

Arduino I2C Sniffer: 4 hapa
Arduino I2C Sniffer: 4 hapa

Video: Arduino I2C Sniffer: 4 hapa

Video: Arduino I2C Sniffer: 4 hapa
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Korrik
Anonim
Arduino I2C Sniffer
Arduino I2C Sniffer

I2C është një protokoll serik i përdorur për të komunikuar një mikrokontrollues me pajisje të jashtme të bashkangjitura në të njëjtin qark. Çdo pajisje periferike duhet të ketë një numër unik ID të quajtur adresë që përdoret për ta identifikuar atë si marrësi i synuar i një mesazhi të caktuar. Ato adresa caktohen nga prodhuesi i pajisjes dhe shumicën e kohës nuk mund të ndryshohen. Një sniffer skanon të gjitha adresat e mundshme duke kërkuar pajisje të lidhura dhe raporton ato që gjen. Kjo ndihmon në identifikimin e patate të skuqura të pashënuara pasi atëherë adresa mund të kërkohet në Google për më shumë informacion në lidhje me çipin.

Kjo pajisje imiton në një Arduino UNO sjelljen e shkrimit të Raspberry Pi i2cdetect, duke nuhatur të gjitha adresat e mundshme i2c duke kërkuar pajisje të lidhura dhe duke printuar rezultatet bukur në një ekran LCD 16x02.

Për të përshtatur gjithçka në ekran, të dy pjesët e larta dhe të ulëta të adresës janë të shtypura mbi rezultatet, pjesa e lartë është në një shkronjë të fortë. Dy butona shtypi ju lejojnë të lundroni midis adresave, duke treguar 16 adresa në të njëjtën kohë. Në rast se një pajisje zbulohet, W do të printohet për ta treguar atë si një adresë shkrimi dhe R do të shfaqet në rast se është një adresë leximi. Në rast se asgjë nuk zbulohet në atë adresë, një vizë (-) do të shfaqet në ekran.

Hapi 1: Materialet

Materiale
Materiale
Materiale
Materiale

opsioni 1

1 x Arduino UNO

1 x ekran LCD 16x02

Potenciometër 1x 10K

Rezistencë 1x 330 ohm

3x Shtypni butonat

Kabllo kërcyes

Zhvendosës 1x I2C i nivelit (jo në figurën e materialeve)

Opsioni 2

1 x Arduino UNO

Mburoja e tastierës LCD (butonat në mburojën nuk do të përdoren)

3x Shtypni butonat

Kabllo kërcyes

Zhvendosës 1x I2C i nivelit (jo në figurën e materialeve)

Opsioni 2 është ai që do të ndërtohet sepse kjo është ajo që kisha në dorë për momentin. Zhvendosësi i nivelit është një pjesë e rëndësishme e qarkut pasi në ditët e sotme shumica e pajisjeve përdorin logjikë 3.3V dhe 5V nga Arduino i dëmton ato.

(Në fotografi, materiali i kryqëzuar nuk kërkohet.)

Hapi 2: Qarku

Qarku
Qarku
Qarku
Qarku
Qarku
Qarku

Qarku është shumë i drejtë përpara, duke përdorur pinoutin standard për shembujt Arduino për LCD, kunjat e paracaktuar për I2C dhe 3 kunjat rezervë për butonat.

Në rast se përdorni mburojën e tastierës LCD, pinout për LCD ndryshon, por që tashmë konsiderohet brenda kodit. Butonat e Mburojës së tastierës LCD nuk përdoren sepse kërkojnë një metodë analize analoge që prish pajtueshmërinë midis dy qarqeve të mundshme të zbatimit (Mburoja dhe LCD i vetëm)

Hapi 3: Kodi

Kodi
Kodi

Në rast se përdoret Mburoja e tastierës LCD, #cakto LCD_SHIELD duhet të lihet pa u komentuar në fillim të skicës. Përndryshe, komentoni atë për të përdorur diagramin e parë.

Hapi 4: Përfundime

Përfundimet
Përfundimet
Përfundimet
Përfundimet
Përfundimet
Përfundimet

Për testimin e kodit dhe qarkut, u përdor një çip BQ32000 RTC dhe një përshpejtues matës MMA8452Q. Siç mund të shihet në fotografi, pajisja po zbulon 4 adresa: 0x3A dhe 0xD0 si adresa shkrimi, dhe 0x3B dhe 0xD1 si adresa leximi. Këto adresa korrespondojnë me pajisjet e provës kështu që kodi po punon.

Unë do të doja të falënderoja vajzat e mira në Pekin Makerspace, Fu Yao dhe Liu Xin, që më ndihmuan të merrja materialet e kërkuara për testimin e këtij projekti në një njoftim kaq të shkurtër.

Recommended: