# Appunti sui moduli ESP8266-12F <abstract> Appunti vari sui miei esperimenti con i moduli ESP8266-12F </abstract> Per le prove ho usato un modulo AZ-Delivery D1 mini con NodeMCU ESP8266-12F, 100% compatibile con Wemos D1 mini Wifi acquistato su Amazon Prime a circa 5 euro l'uno: * [AZ-Delivery D1 mini su amazon.it](https://www.amazon.it/gp/product/B0754N794H/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1) <img src="./d1mini.jpg" width="320px"> Per le prove conil sensore di umidità, temperatura e pressione ho usato un modulo AZ-Delivery GY-BME280 acquistabile su Amazon a circa 6 euro: * [AZ-Delivery GY-BME280 su amazon.it](https://www.amazon.it/gp/product/B07FS95JXT/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1) <img src="./bmp280.jpg" width="180px"> Pinout <img src="./d1-mini-pinout.png" width="640px"> ## Installazione ambiente di sviluppo Arduino (su Windows 10) Scaricare l'IDE Arduino da questo link: * [Download the Arduino IDE](https://www.arduino.cc/en/Main/Software) Provato con la versione 1.8.11 Dal menu <b>File->Impostazioni</b> inserire nel campo <b>URL aggiuntive per il gestore schede</b> la seguente URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json Installare la scheda <b>esp8266</b> dal menu <b>Strumenti->Scheda->Gestore schede</b> ### Installazione libreria MQTT Scaricare lo zip del repository GitHub di questa libreria: * <https://github.com/Imroy/pubsubclient> Quindi installare la libreria nell'IDE Arduino dal menu <b>Sketch->#Include Libreria->Aggiungere Libreria da file ZIP</b> ### Installazione libreria BME280 Dal menu <b>Sketch->Gestione librerie</b> installa la libreria <b>Adafruit BME280 Library</b> ### Collegamento su USB Inserire la scheda D1 mini alla porta USB del PC Dal menu <b>Strumenti->Scheda</b> seleziona: Wemos D1 R1 Dal menu <b>Strumenti->Porta</b> selezionare la porta seriale su USB assegnata al D1 mini. E' possibile vedere l'assegnazione dal <b>Pannello di controllo di Windows->Dispositivi->Bluetooth e altri dispositivi</b>. Con questa configurazione dovrebbe essere possibile compilare e trasferire sul D1 mini un programma Arduino. ## Applicazione temosensore 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: * [termosensor.ino](./termosensor.ino) 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 <img src="./lcd.jpg" width="340px"> 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 * [lcd.ino](./lcd.ino) * [Libreria per Arduino](https://forum.arduino.cc/index.php?topic=145424.0) * [Datasheet](https://www.acmesystems.it/download/datasheets/LCD-1.pdf) 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 * [Pin numbering for WeMos D1 Mini](https://chewett.co.uk/blog/1066/pin-numbering-for-wemos-d1-mini-esp8266/) ## HC-SR04 <img src="./wemos-and-hcsr04_bb.png" width="320px"> #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); } * <http://www.esp8266learning.com/wemos-mini-hc-sr04-ultrasonic-sensor.php> ## Links * <http://www.esp8266learning.com/wemos-mini-hc-sr04-ultrasonic-sensor.php> * [Datasheet modulo ESP-12F](https://docs.ai-thinker.com/_media/esp8266/docs/esp-12f_product_specification_en.pdf) * [Datasheet Bosch BME280](https://www.bosch-sensortec.com/products/environmental-sensors/humidity-sensors-bme280/) * [Esempio MQTT](https://mancusoa74.blogspot.com/2017/02/mqtt-basic-per-esp8266.html) * [Libreria per BME280](https://randomnerdtutorials.com/esp8266-bme280-arduino-ide/) * <https://github.com/Imroy/pubsubclient> * @article='ESP8266' * @article='ESP32'
2018 Ⓒ TanzoLab