Appunti sui moduli ESP8266-12F

Appunti vari sui miei esperimenti con i moduli ESP8266-12F

Modulo AZ-Delivery D1 mini

NodeMCU ESP8266-12F, 100% compatibile con Wemos D1 mini Wifi

Pinout

AZ-Delivery GY-BME280

Sensore di umidità, temperatura e pressione basato su Bosch BME280

Installazione ambiente di sviluppo Arduino (su Windows 10)

Scaricare l'IDE Arduino da questo link:

Dal menu File->Impostazioni inserire nel campo URL aggiuntive per il gestore schede la seguente URL:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Installare la scheda esp8266 dal menu Strumenti->Scheda->Gestore schede

Installazione libreria MQTT

Scaricare lo zip del repository GitHub di questa libreria:

Quindi installare la libreria nell'IDE Arduino dal menu Sketch->#Include Libreria->Aggiungere Libreria da file ZIP

Installazione libreria BME280

Dal menu Sketch->Gestione librerie installa la libreria Adafruit BME280 Library

Collegamento su USB

Inserire la scheda D1 mini alla porta USB del PC

Dal menu Strumenti->Scheda seleziona:

Wemos D1 R1 

Dal menu Strumenti->Porta selezionare la porta seriale su USB assegnata al D1 mini. E' possibile vedere l'assegnazione dal Pannello di controllo di Windows->Dispositivi->Bluetooth e altri dispositivi.

Con questa configurazione dovrebbe essere possibile compilare e trasferire sul D1 mini un programma Arduino.

Applicazione termosensore WiFi

Collegare i moduli AZ-Delivery D1 mini e AZ-Delivery GY-BME280 in questo modo

D1 mini GY-BME280
D1 SCL
D2 SDA
G GND
3V3 VIN

Scaricare questo sorgente:

Settare le credenziali di accesso alla propria WiFi combiando queste righe di codice:

//----WIFI CONFIG ----
#define WIFI_SSID           "acmetest" //your Wifi SSID
#define WIFI_PASSWD         "acmetest" //your wifi password

Settare l'IP del server MQTT sulla propria rete ed il topic in cui scrivere i valori rilevati:

//----MQTT CONFIG ----
#define MQTT_SERVER         "192.168.4.31"
#define MQTT_UNAME          ""
#define MQTT_PASSW          ""
#define MQTT_BROKER_PORT    1883          //MQTT BROKER listening port
#define MQTT_CLIENT_ID      "S1"
#define MQTT_TOPIC          "S1"
#define MQTT_TOPIC_T        "S1/T"

Display LCD 16x2 I2C

Pinout LCD WO1602I-TFH-AT# (pin 1 a sinistra guardando il display con i pin in basso)

1 5V
2 NC
3 NC
4 5V
5 GND
6 SDA ----> D2 con 10K verso 3V3
7 SCL ----> D1 con 10K verso 3V3
8 RST ----> 3V3

K GND
A 3V3

Pins

WeMos  Arduino  Use
 D0        16   Red Led
 D1         5
 D2         4
 D3         0   Blue button 
 D4         2
 D5        14
 D6        12
 D7        13
 D8        15
 TX         1
 RX         3 

Lettore sonar HC-SR04

#define echoPin D7 // Echo Pin
#define trigPin D6 // Trigger Pin

long duration, distance; // Duration used to calculate distance

void setup()
{
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop()
{
  /* The following trigPin/echoPin cycle is used to determine the
  distance of the nearest object by bouncing soundwaves off of it. */
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  //Calculate the distance (in cm) based on the speed of sound.
  distance = duration/58.2;
  Serial.println(distance);
  //Delay 50ms before next reading.
  delay(50);
}

Lettura pulsante e pilotaggio led

Pins

WeMos Arduino Use
D0 16 Red Led
D3 0 Blue button

DS18B20

Install the librariea:

  • DS18B20 by Mathias Munk Hansen
  • OneWires by Jim Studt, etc

Links