Sisällysluettelo:

Arduino I2C Sniffer: 4 vaihetta
Arduino I2C Sniffer: 4 vaihetta

Video: Arduino I2C Sniffer: 4 vaihetta

Video: Arduino I2C Sniffer: 4 vaihetta
Video: How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial 2024, Heinäkuu
Anonim
Arduino I2C Sniffer
Arduino I2C Sniffer

I2C on sarjaprotokolla, jota käytetään kommunikoimaan mikro -ohjaimen kanssa samaan piiriin liitettyjen ulkoisten oheislaitteiden kanssa. Jokaisella oheislaitteella on oltava yksilöllinen tunnistenumero, jota kutsutaan osoitteeksi, jota käytetään tunnistamaan se tietyn viestin aiotuksi vastaanottajaksi. Laitteen valmistaja on määrittänyt nämä osoitteet, eikä useimmiten voi muuttaa niitä. Haistelija skannaa kaikki mahdolliset osoitteet ja etsii yhdistettyjä laitteita ja ilmoittaa löytämistään. Tämä auttaa tunnistamaan merkitsemättömiä siruja, koska osoite voidaan googlettaa saadaksesi lisätietoja sirusta.

Tämä laite jäljittelee Arduino UNO: lla Raspberry Pi i2cdetect -skriptin käyttäytymistä, haistaa kaikki mahdolliset i2c -osoitteet, jotka etsivät yhdistettyjä laitteita, ja tulostaa tulokset hienosti 16x02 LCD -näytölle.

Jotta kaikki ruudulle mahtuvat, sekä osoitteen ylä- että alaosa tulostetaan tulosten yläpuolelle, ja yläosa on lihavoitu. Kahdella painikkeella voit navigoida osoitteiden välillä ja näyttää 16 osoitetta kerrallaan. Jos laite havaitaan, W tulostetaan sen osoittamiseksi kirjoitusosoitteena ja R näytetään, jos se on lukuosoite. Jos kyseisessä osoitteessa ei havaita mitään, näytössä näkyy yhdysviiva (-).

Vaihe 1: Materiaalit

Materiaalit
Materiaalit
Materiaalit
Materiaalit

Vaihtoehto 1

1 x Arduino UNO

1 x 16x02 LCD -näyttö

1x 10K potentiometri

1x 330 ohmin vastus

3x painikkeet

Käynnistyskaapelit

1x I2C -tasonvaihtaja (ei materiaalikuvassa)

Vaihtoehto 2

1 x Arduino UNO

LCD -näppäimistön suoja (suojan painikkeita ei käytetä)

3x painikkeet

Käynnistyskaapelit

1x I2C -tasonvaihtaja (ei materiaalikuvassa)

Vaihtoehto 2 rakennetaan, koska se oli tällä hetkellä käsilläni. Tasonvaihtaja on tärkeä osa piiriä, koska nykyään useimmat laitteet käyttävät 3,3 V: n logiikkaa ja Arduinon 5 V vahingoittaa niitä.

(Kuvissa yliviivattua materiaalia ei vaadita.)

Vaihe 2: Piiri

Piiri
Piiri
Piiri
Piiri
Piiri
Piiri

Piiri on melko suoraviivainen käyttämällä LCD -näytön Arduino -esimerkkien vakiopistoketta, I2C: n oletusneuloja ja 3 painonappien varatappia.

Jos käytät LCD -näppäimistön suojaa, nestekidenäytön pistoke muuttuu, mutta se on jo otettu huomioon koodissa. LCD -näppäimistön suojapainikkeita ei käytetä, koska ne edellyttävät analogista pollausmenetelmää, joka rikkoo yhteensopivuuden kahden mahdollisen toteutuspiirin (suoja ja erillinen LCD) välillä

Vaihe 3: Koodi

Koodi
Koodi

Jos käytetään LCD -näppäimistön suojaa, #define LCD_SHIELD on jätettävä luonnoksen alussa kommentoimatta. Muussa tapauksessa kommentoi sitä käyttääksesi ensimmäistä kaaviota.

Vaihe 4: Johtopäätökset

Päätelmät
Päätelmät
Päätelmät
Päätelmät
Päätelmät
Päätelmät

Koodin ja piirin testaamiseen käytettiin BQ32000 RTC -sirua ja MMA8452Q -kiihtyvyysmittaria. Kuten kuvista näkyy, laite tunnistaa 4 osoitetta: 0x3A ja 0xD0 kirjoitusosoitteina ja 0x3B ja 0xD1 lukuosoitteina. Nämä osoitteet vastaavat testilaitteita, joten koodi toimii.

Haluan kiittää Pekingin Makerspacen ystävällisiä tyttöjä, Fu Yaoa ja Liu Xinia, jotka auttoivat minua saamaan tämän projektin testaamiseen tarvittavat materiaalit niin lyhyellä varoitusajalla.

Suositeltava: