Sommario:
Video: Sniffer Arduino I2C: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
I2C è un protocollo seriale utilizzato per comunicare un microcontrollore con periferiche esterne collegate allo stesso circuito. Ogni periferica deve avere un numero ID univoco chiamato indirizzo che viene utilizzato per identificarla come destinatario previsto di un determinato messaggio. Questi indirizzi sono assegnati dal produttore del dispositivo e la maggior parte delle volte non possono essere modificati. Uno sniffer scansiona tutti i possibili indirizzi alla ricerca di dispositivi connessi e segnala quelli che trova. Questo aiuta a identificare i chip non contrassegnati in quanto l'indirizzo può essere cercato su Google per ulteriori informazioni sul chip.
Questo dispositivo imita su un Arduino UNO il comportamento dello script i2cdetect di Raspberry Pi, annusando tutti i possibili indirizzi i2c alla ricerca di dispositivi collegati e stampando bene i risultati su uno schermo LCD 16x02.
Per adattarsi a tutto sullo schermo, sia la parte alta che quella bassa dell'indirizzo sono stampate sopra i risultati, la parte alta è in grassetto. Due pulsanti consentono di navigare tra gli indirizzi, mostrando 16 indirizzi alla volta. Nel caso in cui venga rilevato un dispositivo, verrà stampato W per mostrarlo come indirizzo di scrittura e R se si tratta di un indirizzo di lettura. Nel caso in cui non venga rilevato nulla a quell'indirizzo, sullo schermo verrà mostrato un trattino (-).
Passaggio 1: materiali
opzione 1
1 x Arduino UNO
1 schermo LCD 16x02
1x potenziometro 10K
1x resistenza da 330 ohm
3x pulsanti
Cavi jumper
1x cambio di livello I2C (non sull'immagine dei materiali)
opzione 2
1 x Arduino UNO
Schermo tastiera LCD (i pulsanti sullo schermo non verranno utilizzati)
3x pulsanti
Cavi jumper
1x cambio di livello I2C (non sull'immagine dei materiali)
L'opzione 2 è quella che verrà costruita perché è quello che avevo a portata di mano al momento. Il traslatore di livello è una parte importante del circuito poiché al giorno d'oggi la maggior parte dei dispositivi utilizza la logica a 3,3 V e i 5 V di Arduino li danneggiano.
(Nelle immagini, il materiale barrato non è richiesto.)
Passaggio 2: circuito
Il circuito è piuttosto semplice, utilizzando il pinout standard per gli esempi Arduino per l'LCD, i pin predefiniti per I2C e 3 pin di ricambio per i pulsanti.
Nel caso in cui si utilizzi LCD Keypad Shield, il pinout per il display LCD cambia ma è già considerato all'interno del codice. I pulsanti LCD Keypad Shield non vengono utilizzati perché richiedono un metodo di polling analogico che interrompe la compatibilità tra i due possibili circuiti di implementazione (Shield e LCD stand alone)
Passaggio 3: codice
Nel caso in cui si utilizzi LCD Keypad Shield, #define LCD_SHIELD deve essere lasciato senza commento all'inizio dello sketch. Altrimenti, commentalo per usare il primo diagramma.
Fase 4: Conclusioni
Per testare il codice e il circuito, sono stati utilizzati un chip RTC BQ32000 e un accelerometro MMA8452Q. Come si può vedere dalle immagini, il dispositivo sta rilevando 4 indirizzi: 0x3A e 0xD0 come indirizzi di scrittura e 0x3B e 0xD1 come indirizzi di lettura. Questi indirizzi corrispondono ai dispositivi di test quindi il codice funziona.
Vorrei ringraziare le gentili ragazze di Beijing Makerspace, Fu Yao e Liu Xin, per avermi aiutato a ottenere i materiali necessari per testare questo progetto con così poco preavviso.
Consigliato:
Arduino UNO Logic Sniffer: 8 passaggi (con immagini)
Arduino UNO Logic Sniffer: Questo progetto è iniziato come un semplice esperimento. Durante la mia ricerca sulla scheda tecnica dell'ATMEGA328P per un altro progetto, ho trovato qualcosa di piuttosto interessante. L'unità di acquisizione dell'ingresso Timer1. Consente al microcontrollore del nostro Arduino UNO di rilevare un segnale
Sniffer di particelle: 6 passaggi (con immagini)
Sniffer di particelle: Mentre lavoravo con i progetti precedenti sulla valutazione del PM2.5, ho notato lo svantaggio di non essere in grado di individuare le fonti puntuali di inquinamento da piccole particelle. La maggior parte dei campionamenti effettuati dai comuni e dalle immagini satellitari raccolgono ampie fonti che non
Display LCD I2C / IIC - Utilizzare un display LCD SPI sul display LCD I2C utilizzando il modulo SPI su IIC con Arduino: 5 passaggi
Display LCD I2C / IIC | Utilizzare un display LCD SPI per il display LCD I2C utilizzando il modulo da SPI a IIC con Arduino: Ciao ragazzi poiché un normale LCD 1602 SPI ha troppi fili da collegare, quindi è molto difficile interfacciarlo con arduino ma c'è un modulo disponibile sul mercato che può convertire il display SPI in display IIC, quindi è necessario collegare solo 4 fili
Display LCD I2C / IIC - Converti un LCD SPI nel display LCD I2C: 5 passaggi
Display LCD I2C / IIC | Convertire un display LCD SPI in display LCD I2C: l'utilizzo del display lcd spi richiede troppe connessioni, il che è davvero difficile da fare, quindi ho trovato un modulo che può convertire l'affissione a cristalli liquidi i2c all'affissione a cristalli liquidi spi quindi iniziamo
Sniffer per snorkeling: 4 passaggi
Snorkel Sniffer: Le porte erano chiuse sul volo e proprio come molti altri voli simili ti assale una sonnolenza opprimente. Mentre stavamo facendo fatica, sono stato svegliato di soprassalto da una donna di fronte a noi che urlava "aiutalo!" "aiutalo!!!!" "