OLED SSD1306Z
Servidor WEB
Temperatura/Humedad DHT 22 (AM2302)
Temperatura 18B20
LUZ LDR
Este proyecto está realizado para poner en
práctica un montón de montajes juntos, y practicar con el ESP32.
Está formado por 3 sensores, luz (LDR), temperatura y humedad (
DHT 22 (AM2302) ), sensor de temperatura (18B20).
Los datos se representan en un OLED (SSD1306Z) , además de tener
un servidor WEB donde también se visualizan los datos en
cualquier navegador.
Esquema eléctrico.
Circuito montado.
Pantalla OLED.
Datos en un navegador.
La construcción de este montaje fue añadiendo y
rediseñando montajes anteriores realizados con placas de
arduino.
El primer paso era colocar la pantalla OLED SSD1306Z utilizando una
librería propia que se añade con:
#include "olex.h"
#include <Wire.h>
El primer contacto con esta pantalla la tuve en el montaje arolet.html donde cree la
librería.
Seguí añadiendo una LDR, que solo se necesita un
conversor A/D . He utilizado el PIN34 (ADC6) , aunque probé con
otros pins, pero cuando añadí el servidor web, funcionaban mal.
Este funciona PIN perfectamente.
Como primer sensor de temperatura he utilizado el DHT
22 (AM2302) , además proporciona porcentaje de
humedad. Para esto utilizo la librería #include "DHT.h" de https://learn.adafruit.com/dht
.
Este sensor lo he empleado bastante por su bajo precio. ar433.html
raspb.html.
Como segundo sensor de temperatura he utilizado el 18B20 ,
muy barato y fácil de usar, junto con la posibilidad de poner
varios en la misma línea de comunicaciones. Para su
funcionamiento he utilizado una función creada por mi hace
varios años int getTemp(void) .
Este sensor lo he utilizado en varios montajes: colorl.html , arwifi.html
.
Como también quiero tener un reloj con la hora, he aprovechado
el ejemplo que viene con el ESP32, SimpleTime.
En este ejemplo se toma la fecha y ora del servidor de internet
pool.ntp.org , para luego
ajustarnos a nuestra zona horaria. En el caso de la zona horaria
de España es +1h , o 3600 segundos.
En este caso también he añadido algo mio, los días de la semana.
En el ejemplo SimpleTime utilizaba en su configuración
la IP dinámica que proporciona el router. Como a mi no me
gustaba que cambiase la IP cada vez que se conectase, la he
cambiado a IP estática, en mi caso 192.168.1.150
Si se quiere seguir utilizando la IP dinámica, comentar la
línea: #define IP_STATIC
Una vez montados todos los sensores, y ver que sus datos se
representan bien en el OLED, nos toca crear el servidor WEB.
En un montaje anterior con el ESP8266 espb.html
, había creado un servidor para encender y apagar LED.
En este caso lo he adaptado para visualizar los datos de
sensores en un navegador.
Este proyecto me ha servido para ponerme en contacto con el
ESP32, y ver todas sus posibilidades.
Espero que les haya gustado.