Let’s get started: Arduino intro

26 giugno 2017 / iotfromzerotohero


Nei seguenti esempi utilizzeremo l’ esp8266 NODEMCU, ma se voi utilizzate un chip diverso ricordatevi di controllare la mappatura dei pin dell’ esp8266, dato che sono differenti da quelli dell’arduino. [Mappatura dei pin]




Il motivo per cui il LED è connesso al pin D7 del NodeMCU esp8266 è il sopra citato: la mappatura del NodeMCU esp8266 è differente da quella dell’arduino quindi il pin D7 corrisponde al pin 13 dell’arduino. La lettera D segnala i pin del NodeMCU esp8266, mentre GPIO segnala i pin dell’arduino (vedi sopra).

Codice da inserire in Arduino IDE:

void setup() {
// dichiariamo il pin 13 come pin di output
pinMode(13, OUTPUT);
}

// la funzione loop si ripeterà all’infinito una volta concluso il primo ciclo
void loop() {
digitalWrite(13, HIGH); // accende il led (HIGH indica il passaggio di corrente)
delay(1000); // ritardo manualmente impostato (in millisecondi)
digitalWrite(13, LOW); // spegne il led (LOW indica l’assenza di corrente)
delay(1000); // vedi delay precedente
}

Rappresentazione del circuito:




#include

const char* ssid = “Nome della rete Wifi”;
const char* password = “Password della rete wifi”;

int ledPin = 13; // GPIO13 -> D7 su arduino
WiFiServer server(80);

void setup() {
Serial.begin(115200); //inizializza il monitor seriale
delay(10); //che si attiva con la “lente” in alto a dx

pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);

// Connetti alla rete Wifi
Serial.print(“Connettendo alla rete “);
Serial.println(ssid);

WiFi.begin(ssid, password); // credenziali per connettersi

while (WiFi.status() != WL_CONNECTED) {
Serial.print(“.”);
}
Serial.println(“”);
Serial.println(“WiFi connected”);

// Inizializza il server
server.begin();
Serial.println(“Server inizializzato”);

//Stampa l’indirizzo IP
Serial.print(“stampa l’URL a cui connettersi “);
Serial.print(“http://”);
Serial.print(WiFi.localIP());
Serial.println(“/”);

}

void loop() {
// controlla se c’è un client (dispositivo che vuole connettersi)
WiFiClient client = server.available();
if (!client) {
return;
}

//Stampa solo se il client esiste ed è disponibile
Serial.println(“nuovo client”);
while(!client.available()){
delay(1);
}

// legge la prima riga di richiesta
String request = client.readStringUntil(‘\r’);
Serial.println(request);
client.flush();

// controlla la richiesta

int value = LOW;
if (request.indexOf(“/LED=ON”) != -1) {
digitalWrite(ledPin, HIGH);
value = HIGH;
}
if (request.indexOf(“/LED=OFF”) != -1) {
digitalWrite(ledPin, LOW);
value = LOW;
}

// accende o spegne il led dipendendo dalla richiesta
//digitalWrite(ledPin, value);

// Ritorna una risposta
client.println(“HTTP/1.1 200 OK”);
client.println(“Content-Type: text/html”);
client.println(“”); //serve per separare
client.println(“”);
client.println(“”);

client.print(“Il LED è: “);

if(value == HIGH) {
client.print(“On”);
} else {
client.print(“Off”);
}
client.println(“

”);


delay(1);
Serial.println(“Client disonnected”);
Serial.println(“”);

}

Controllare il monitor seriale per l’URL a cui connettersi per avere la pagina web con i bottoni per controllare il LED.



Top