Esp8266 Deauther: Display e pulsanti (Parte 2)

Condividi questo articolo:


L’uso dell’interfaccia del display è completamente opzionale.
ESP8266 Deauther può anche essere utilizzato solo tramite interfaccia seriale o web.

Dovresti conoscere alcune nozioni di base su come usare, programmare e creare cose con Arduino.
In caso contrario, ti consigliamo vivamente di ottenere una sorta di starter kit Arduino e iniziare l’apprendimento. I passaggi di questo tutorial sono molto semplici, ma se non hai mai fatto qualcosa di simile, è molto importante ottenere prima una conoscenza di base sull’argomento!

Mi concentrerò su NodeMCU in questo tutorial poiché è la scheda di sviluppo basata su ESP8266 più popolare. Ogni altra scheda di sviluppo che utilizza ESP8266 dovrebbe funzionare in questo modo.

Quello che ti serve

  • una breadboard
  • ponticelli
  • una scheda di sviluppo ESP8266 (ovvero NodeMCU) 
  • 3 – 6 pulsanti (3 richiesti, opzionale fino a 6)
  • un display OLED SSD1306 o SH1106 con 128×64 pixel
  • opzionale: un LED RGB (funzioneranno anche 3 LED singoli o un neopixel)
  • opzionale ma consigliato: 2x resistori da 10k ohm
  • un’installazione funzionante di Arduino che può compilare questo progetto (vedi Installazione)
  • pazienza
  • buon sensola capacità di leggere e seguire attentamente questo tutorial
  • consigliato anche: sapere come leggere i messaggi di errore e utilizzare correttamente Google

Per i principianti si consiglia di utilizzare solo 3 pulsanti (è possibile aggiungerne altri in seguito), un display i2c (quelli con 4 pin) e (opzionale) un neopixel come LED RGB.

Ecco un rapido riferimento al pinout di NodeMCU:

External PICTURE NodeMCU pinout

(Fare clic qui per un Pinout su ESP-12, ESP-07 e ESP-01)

Ora una cosa importante è che abbiamo un numero limitato di pin e dobbiamo stare attenti a ciò che usiamo.
Quelli sono quelli che possiamo usare per collegare i componenti:

NodeMCU Pin GPIO Note
D0 GPIO 16 No i2c or pwm, sometimes used for board LED
D1 GPIO 5
D2 GPIO 4
D3 GPIO 0 Used for flash button
D4 GPIO 2 Needs pull-up resistor, used for module LED
D5 GPIO 14
D6 GPIO 12
D7 GPIO 13
D8 GPIO 15 Needs pull-down resistor
D9 GPIO 3 RX (Serial)
D10 GPIO 1 TX (Serial)
SD2 GPIO 9 Used for Flash
SD3 GPIO 10 Used for Flash

Alcune cose sono importanti da notare qui!

D0 o GPIO 16 non possono essere utilizzati per un classico LED RGB (pwm) o per il display (i2c).
D4 e D8 hanno bisogno di resistori? Sì, questi pin vengono utilizzati per l’avvio corretto del dispositivo. Ecco dove entrano in vigore i 2 resistori consigliati! Di solito la scheda di sviluppo è già presente, ma nel caso in cui si utilizzino questi pin e si riscontrino problemi durante il caricamento di nuovo codice, questo potrebbe essere il motivo! Quindi tienilo a mente.
D9 e D10 sono usati per il seriale e sono, come tali, essenziali per caricare il codice ed eseguirne il debug. Non usare questi pin a meno che tu non sappia cosa stai facendo!
D3 o GPIO 0 viene utilizzato per il pulsante flash. Di solito non è un problema, ma di nuovo … se riscontri problemi durante il caricamento, tieni presente che il pin viene utilizzato per portare il dispositivo in modalità flash.
SD2 e SD3 sono utilizzati per il flash SPI integrato. Puoi usarli in sicurezza purché non selezioni QIO nelle impostazioni di caricamento / compilazione.
Questo ci lascia con 7 pin sicuri da usare e altri 4 con cui dobbiamo stare un po ‘attenti.
Ora non devi essere un genio per capire che se vuoi usare tutti e 6 i pulsanti (6 pin), un display SPI (4 pin) e un LED RGB (3 pin), 11 pin non sono sufficienti.
Ecco perché si consiglia di utilizzare un display i2c (2 pin) o un neopixel / ws2812 (1 pin).
Inoltre, non dimenticare che hai solo bisogno di 3 pulsanti, ogni altro pulsante è facoltativo.

Schermo

Esistono 2 tipi di display OLED che possono essere utilizzati per questo progetto, SSD1306 e SH1106:

PICTURE SSD1306 vs SH1106

E a volte arrivano con I2C o SPI:

PICTURE I2C vs SPI displays

Ora per il display è molto importante sapere quale connessione sta utilizzando.
I2C può essere collegato a qualsiasi pin GPIO (tranne 16).

L’SPI richiede tuttavia le seguenti connessioni:

Mostra GPIO
SCL / CLK / SCK GPIO 14 (D5)
SDA / MOSI GPIO 13 (D7)
I pin RST, DC e CS possono essere collegati a qualsiasi pin.

La migliore pratica è fare un elenco di tutti i componenti e le loro connessioni !.

pulsanti

I pulsanti sono piuttosto semplici.
Devi connetterli ciascuno tra un pin gpio e GND.
Come in questo tutorial di Arduino: https://www.arduino.cc/en/Tutorial/InputPullupSerial

I LED sono completamente opzionali. Viene utilizzato per fornire all’utente una migliore indicazione di ciò che il dispositivo sta attualmente facendo. Ad esempio Verde = inattivo, Blu = scansione, ROSSO = attacco deauth rilevato (durante la scansione).
È possibile utilizzare singoli LED digitali, un LED RGB o un LED neopixel (ws2812).

Per impostazione predefinita, vengono utilizzati il ​​LED su GPIO 16 (LED di bordo NodeMCU) e il LED su GPIO 2 (LED sul modulo ESP-12 e ESP-07). Quindi assicurati di disabilitarli se vuoi usare quei pin per qualcos’altro.

Esempio di configurazione con I2C OLED

Display GPIO
GND GND
VCC/VDD VCC / 3.3V
SCL/CLK/SCK GPIO 4 (D2)
SDA GPIO 5 (D1)
Button GPIO
UP GPIO 14 (D5)
Down GPIO 12 (D6)
A GPIO 13 (D7)
NEOPIXEL LED GPIO
GND GND
VCC VCC/3.3V
DIN GPIO 9 (SD2)

PICTURE i2c build

Esempio di installazione con SPI OLED

Display GPIO
GND GND
VCC/VDD VCC / 3.3V
SCL/CLK/SCK GPIO 14 (D5)
SDA/MOSI GPIO 13 (D7)
RST/RES/RESET GPIO 5 (D1)
DC GPIO 4 (D2)
CS GPIO 15 (D8) or GND
Button GPIO
UP GPIO 0 (D3)
Down GPIO 12 (D6)
A GPIO 2 (D4)
NEOPIXEL LED GPIO
GND GND
VCC VCC/3.3V
DIN GPIO 9 (SD2)

PICTURE spi build

Regola il codice

Ora che la tua configurazione è terminata, devi apportare alcune modifiche al codice.
Vedi Installazione su come compilare e caricare il codice usando Arduino.

Apri Arduino e vai su A_config.h (seconda scheda)

Modifica tutte le impostazioni #define in base alla tua configurazione. Le impostazioni predefinite sono per la configurazione di esempio I2C, solo senza il LED Neopixel. Assicurarsi di non confondere i pin GPIO con i pin NodeMCU (D0, D1 …)! È possibile trovare la piedinatura NodeMCU sopra.

Non dimenticare di modificare #define USE_DIPLAY false in #define USE_DIPLAY true

Carica il tuo codice e testalo

 

Salvare una copia del file A_config.h in modo da poter aggiornare il software in un secondo momento.

Testare tutto

Ora quando tutto è correttamente configurato e caricato, devi aprire il monitor seriale con arduino.
Assicurati di impostare la velocità di trasmissione su 115200 e seleziona Newline.
Se vedi che il dispositivo si reimposta ogni pochi secondi, controlla il codice! Il più delle volte è che hai usato un pin sia per il display, il pulsante o il LED.
Assicurati di non aver usato lo stesso pin per più cose, non sulla breadboard e non nel codice!

Ancora nessuna immagine sul display? Digitare set display true ;; salvare le impostazioni e premere Invio. Ora premi il pulsante di reset sulla scheda per riavviarlo. Se il disprezzo non mostra nulla, qualcosa è spento. Controlla le tue connessioni e il tuo codice!

Per vedere se tutti i pulsanti funzionano correttamente, usa il comando buttontest in modalità schermo. Per tornare indietro utilizzare il menu della modalità schermo.

In caso di problemi con il display, provare ad utilizzare altri software che utilizzano il display. In questo modo saprai se si tratta di un problema software o hardware.
Ecco la libreria di visualizzazione utilizzata per il deauther: https://github.com/squix78/esp8266-oled-ssd1306
Puoi trovare esempi lì, prova a farli funzionare.

Per testare i LED, è possibile utilizzare il comando led <r> <g> <b>. Ad esempio il led 255 0 0 dovrebbe accendere solo il LED rosso.

Puoi scaricare il codice sorgente da qua:

https://github.com/andreapianidev/esp8266_deauther


Per ulteriori informazioni visita il sito: immagi.net

Condividi questo articolo: