Tutte le funzioni del modulo WiFi sono gestite dal potente sistema (SoC) ESP8266, che combina un micro-controllore 32 bit (e molte periferiche come GPIO, I2C, ADC, SPI, PWM) con una radio WiFi.
ESP8266 | Arduino |
---|---|
GPIO0 | 12 |
ENABLE (CH_PD) | 13 |
RX | TX (Serial1) |
TX | RX (Serial1) |
GND | GND |
GPIO13 | 2 |
GPIO12 | 3 |
GPIO14 | A4 |
* Not managed from miuPanel firmware.
There are a variety of power and power-related nets broken out:
RAW è l’ingresso di tensione non regolamentata. Se la scheda è alimentata via USB, la tensione a questo pin sarà di circa 4.8V (5V meno la caduta del diodo Schottky del USB). D’altra parte, se la scheda è alimentata esternamente, attraverso questo passaggio, la tensione applicata può essere fino a 9V.
VCC è la tensione fornita al ATMEGA32U4. Sarà 3.3V. Questa tensione è regolata dalla tensione applicata al pin RAW. Se la scheda viene alimentata attraverso il pin ‘RAW’ (o USB), questo pin può essere utilizzato come uscita per alimentare altri dispositivi.
RST può essere utilizzato per riavviare il ATMEGA32U4. Questo pin è pulled high da una resistenza da 10 kOhm, ed è active-low, quindi deve essere collegato a terra per avviare il reset. L’ATMEGA32U4 resterà “off” fino a quando la linea di reset non viene riportata su high.
GND, è comune, tensione di massa (riferimento 0V) per il sistema.
I pin I/O della board – 18 in tutto – sono multi funzionali. Ogni pin può essere utilizzato come ingresso o uscita digitale, per LED lampeggianti o per leggere la pressione di un pulsante. Questi pin si riferiscono nell’Arduino tramite un valore intero compreso tra 0 e 21. (I pin A0-A3 possono essere utilizzati sia come ingressi analogici che come I/O digitali..
Nove pin presentano convertitori analogico-digitale (ADC) e possono essere utilizzati come ingressi analogici. Questi sono utili per potenziometri di lettura o altri dispositivi analogici che utilizzano la funzione analogRead ([pin]).
Ci sono cinque pin con larghezza di impulso funzionalità di modulazione (PWM), che possono essere utilizzati come uscita analogica utilizzando la funzione ([pin], [value]) analogWrite. Questi pin sono indicati sulla scheda con un cerchio bianco.
C’è anche un dispositivo UART (di serie), I2C, ed anche pin SPI. Questi possono essere usati per interfacciarsi con dispositivi digitali come LCD seriali, XBees, IMUs e altri sensori seriali.
La scheda dispone di cinque interrupts esterni, che permettono di attivare immediatamente una funzione quando un pin è attivo o disattivo (o in entrambi i casi).Se tu vuoi attivare un interrupt su un determinato pin, devi conoscere come sono mappati gli interrupt sui pin. Per questa scheda la mappa è la seguente: pin 3 mappato a interrupt 0, pin 2 è interrupt 1, pin 0 è interrupt 2, pin 1 è interrupt 3, and pin 7 è interrupt 4.
per ulteriori informazioni sugli interrupt, visita questa pagina.
Dal momento che la caratteristica principale è la connettività USB, il modo più pratico per alimentare la scheda è via USB. In questa configurazione la tensione a 5V proveniente dalla USB verra regolata a 3.3V. Il cavo USB può essere collegato sia al computer, ad un hub USB o un adattatore a muro USB, che, nella maggior parte dei casi, fornire più potenza.
In alternativa, se la vostra scheda si trova all’esterno, può essere alimentata sia attraverso il ‘RAW’ o il pin VCC. l’alimentazione fornita al pin ‘RAW’ sarà regolata fino alla corretta tensione di funzionamento (3.3V). Per sicurezza, non dovrebbe essere più in alta di 9V, e dovrebbe essere almeno 1V in più rispetto alla tensione target).
Se si alimenta la scheda attraverso pin ‘VCC’, tenere a mente che questo pin non è fornito di un regolatore, utiizzarlo solo se si dispone di una fonte a 3.3V.
Dopo l’accensione (o reset) il modulo WiFi a bordo può essere avviato in due modi diversi, a seconda dei livelli logici applicati sui suoi pin GPIO0 e GPIO2. Dal momento che questi pin sono instradati internamente all’Arduino (come riportato nella tabella 1), nello schizzo Arduino fate attenzione a impostare correttamente questi pin su Reset (si veda l’esempio schizzo di seguito).
IMPORTANTE: prima di caricare il tuo schizzo, selezionare la scheda “Arduino LilyPad USB” nel menu schede dell’IDE Arduino.
Se avete accidentalmente selezionato un’altra scheda, e avete già provato a caricare lo schizzo, leggere qui.
Questa scheda (come Lilypad USB e Leonardo) usara “Serial1” per comunicare con a il modulo WiFi integrato tramite seriale TTL sul pin 0 (RX) e 1 (TX). “Serial” è riservata per la comunicazione CDC USB.
/************************************************** --- IMPORTANT ---: before to load your sketch, please select the board "LilyPad Arduino USB" in the boards menu. If you have accidentally select another board, and load your sketch, read here: www.arduino.cc/en/Guide/ArduinoLilyPadUSB Connection table: * ESP8266 Arduino * GPIO0 12 * ENABLE 13 * RX TX * TX RX * GND GND About Serial The "Lilypad USB" (and the board derived from it) use "Serial1" to communicate via TTL serial on pins 0 (RX) and 1 (TX). "Serial" is reserved for USB CDC communication. ***************************************************/ #define ESP_PROGRAM_PIN 12 #define ESP_ENABLE_PIN 13 void setup() { Serial1.begin(57600); // Initialise serial 1 (WiFi Module) pinMode(ESP_ENABLE_PIN, OUTPUT); pinMode(ESP_PROGRAM_PIN, OUTPUT); // Set ESP module in RUN mode on reset digitalWrite(ESP_PROGRAM_PIN, HIGH); digitalWrite(ESP_ENABLE_PIN, HIGH); delay(5000); // Let's the module start // Discharge old partial messages Serial1.println(""); // Enable real-time response Serial1.println("$PING 200"); // Send Panel (Single Green LED, 150% size on new line with text Blinking) Serial1.println("$P:*15/L1G:0:Blinking;"); } void loop() { delay(500); // Wait 0.5 s Serial1.println("#L11"); // Turn ON LED 1 delay(500); // Wait 0.5 s Serial1.println("#L10"); // Turn OFF LED 1 }