ERRATA CORRIGE (valida solo per la prima edizione – dalla seconda edizione, ottobre 2016, queste imprecisioni sono state corrette)
fascicolo ESP8266 – La scheda e le applicazioni
Nello schema a pag. 44 mancano le resistenze in serie ai LED (opzionali) collegati alle uscite 4 e 11 dell’integrato CD4093. Inserire in serie a ciascun Led una resistenza da 330 ohm, od omettere del tutto la presenza dei Led.
Tra lo schema di pag 16 e la disposizione dei componenti di pag 18 non c’è corrispondenza nella numerazione delle resistenze e dei condensatori. La semplicità del circuito e il fatto che le tre resistenze intorno alla schedina abbiano tutte lo stesso valore (solo quelle dell’alimentatore differiscono) non dovrebbe dare adito a dubbi, ma per completezza ecco la corrispondenza tra i due schemi:
pag 18 R2 pag 16 R3
pag 18 R3 pag 16 R5
pag 18 R1 pag 16 R4
pag 18 R4 pag 16 R1
pag 18 R5 pag 16 R2
Nella IV edizione del libro, settembre 2017, sono state fatte anche queste correzioni, indicando un nuovo servizio DDNS funzionante (no-ip.com) ed eliminando i riferimenti a “Genuino”.
ERRATA CORRIGE PAG.34
Nello schema di pagina 34 il transistor darlington BC527 è stato disegnato capovolto: per ovvi motivi è il terminale C che va collegato a massa, mentre E (quello con la freccetta) è collegato verso il relé. Ci scusiamo della svista grafica.
//—————————————–
//fascicolo ESP8266 – Sandit Libri
//Progetto attiva e disattiva uscita
//sketch pag 48 e seguenti
//—————————————–
#include <ESP8266WiFi.h>
const char* ssid = “ssid”; // Nome della rete (ssid)
const char* password = “passw”; // Password della rete
int ledPin = 2; // GPIO2
WiFiServer server(86); //imposta la porta dopo l’indirizzo IP
void setup() {
Serial.begin(9600);
delay(10);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
// Connessione alla rete WiFi
Serial.println();
Serial.println();
Serial.print(“Connesso a “);
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
Serial.println(“”);
Serial.println(“WiFi connesso”);
// Avvia il server
server.begin();
Serial.println(“Server avviato”);
// Visualizza l’indirizzo IP
Serial.print(“Usa questo URL per connetterti: “);
Serial.print(“http://”);
Serial.print(WiFi.localIP());
Serial.println(“/”);
}
void loop() {
// Controlla se il client è connesso
WiFiClient client = server.available();
if (!client) {
return;
}
// Attendi fino a che il client non invia dei dati
Serial.println(“nuovo client”);
while(!client.available()){
delay(1);
}
// Leggi la prima linea della richiesta
String request = client.readStringUntil(‘\r’);
Serial.println(request);
client.flush();
// Verifica la richiesta
int value;
if (request.indexOf(“/LED=ON”) != -1) {
digitalWrite(ledPin, HIGH);
value = HIGH;
} else if(request.indexOf(“/LED=OFF”) != -1){
digitalWrite(ledPin, LOW);
value = LOW;
}
// Restituisci la risposta
client.println(“HTTP/1.1 200 OK”);
client.println(“Content-Type: text/html”);
client.println(“”); // da non dimenticare
client.println(“”);
client.println(“”);
client.print(“Il pin 2 e’: “);
if(value == HIGH) {
client.print(“On”);
} else {
client.print(“Off”);
}
client.println(”
“);
client.println(“Un clic su ON attiva il pin 2
“);
client.println(”
“);
client.println(“Un clic su OFF disattiva il pin 2
“);
client.println(“”);
delay(1);
Serial.println(“Client disconnesso”);
Serial.println(“”);
}
//——————————————-//
//—————————————–
//fascicolo ESP8266 – Sandit Libri
//Progetto temperatura e umidità
//sketch pag 54 e seguenti
//—————————————–
#include <ESP8266WiFi.h>
#include <DHT11.h>
const char* ssid = “ssid”; // Nome della rete (ssid)
const char* password = “passw”; // Password della rete
int pin = 2;
WiFiServer server(80); //qui si può impostare la porta
DHT11 dht11(pin);
double Fahrenheit(double celsius) {
return ((double)(9 / 5) * celsius) + 32;
}
double Kelvin(double celsius) {
return celsius + 273.15;
}
void setup() {
Serial.begin(9600);
delay(10);
Serial.println();
// Connessione al WiFi
WiFi.mode(WIFI_STA);
Serial.println();
Serial.println();
Serial.print(“Connesso a: “);
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
Serial.println(“”);
Serial.println(“WiFi ok!”);
// Fai partire il server
server.begin();
Serial.println(“Server avviato”);
// Scrivi l’indirizzo IP
Serial.println(WiFi.localIP());
}
void loop() {
int err;
float temp, humi;
if ((err = dht11.read(humi, temp)) == 0)
{
Serial.print(“temperatura:”);
Serial.print(temp);
Serial.print(” umidità:”);
Serial.print(humi);
Serial.println();
}
else
{
Serial.println();
Serial.print(“Errore N. :”);
Serial.print(err);
Serial.println();
}
WiFiClient client = server.available();
client.println(“HTTP/1.1 200 OK”);
client.println(“Content-Type: text/html”);
client.println(“Connection: close”); // la connessione viene chiusa dopo la risposta
client.println(“Refresh: 5”); // rinfresca la pagina dopo 5 secondi
client.println();
client.println(“”);
client.println(“”); client.println(“\n”);
client.println(“ESP8266 e sensore DHT11”);
client.println(“\n”);
client.println(”
ESP8266 e sensore DHT11
“);
client.println(”
Umidità / Temperatura
“);
client.println(”
"); client.print("Umidità (%) : "); client.println((float)humi, 2); client.print("Temperatura (°C) : "); client.println((float)temp, 2); client.print("Temperatura (°F) : "); client.println(Fahrenheit(temp), 2); client.print("Temperatura (°K) : "); client.println(Kelvin(temp), 2); client.println("
“);
client.print(”
\n”);
delay(DHT11_RETRY_DELAY); //ritardo per nuova lettura
}
//——————————————-//