Tabla de contenido:

ESP8266 NodeMCU con medidores y gráfico BME280: 5 pasos
ESP8266 NodeMCU con medidores y gráfico BME280: 5 pasos

Video: ESP8266 NodeMCU con medidores y gráfico BME280: 5 pasos

Video: ESP8266 NodeMCU con medidores y gráfico BME280: 5 pasos
Video: TUTORIAL: Temperatura, Humedad y Presión BME280 con ESP8266 (NodeMCU) y ESP Easy 2024, Noviembre
Anonim
ESP8266 NodeMCU con medidores y gráfico BME280
ESP8266 NodeMCU con medidores y gráfico BME280
ESP8266 NodeMCU con medidores y gráfico BME280
ESP8266 NodeMCU con medidores y gráfico BME280

Gráficos y medidores elegantes para su placa de desarrollo NodeMCU ESP8266 con sensor de temperatura, humedad y presión BME280. Thingspeak almacenará todos sus datos en la nube para recuperarlos en cualquier momento durante los próximos años (con suerte). Los medidores y el gráfico se completan a partir de los datos almacenados en Thingspeak y se actualizan automáticamente cada 5 minutos.

Elementos necesarios:

Placa de desarrollo ESP8266 NodeMCU ($ 3.79 en Banggood.com Hong Kong)

Bosch BME280 ($ 5.63 en Banggood.com Hong Kong)

Jumpers de tablero ($ 3.09 en Banggood.com Hong Kong)

Protoboard ($ 2.28 en Banggood.com Hong Kong)

Fuente de alimentación, gratis si tiene un cargador de teléfono micro USB

Cable micro USB, gratis si ya tienes uno

Arduino IDE, descarga gratuita

Obtenga los archivos de código.ino y. HTML aquí

Paso 1: Cree y configure sus canales de Thingspeak

Cree y configure sus canales de Thingspeak
Cree y configure sus canales de Thingspeak

1. Cree una cuenta gratuita de Thingspeak y un nuevo canal en https://thingspeak.com, llame al canal "ESP8266-NodeMCU-12E-BME280"

2. El nuevo canal debe tener 3 campos denominados Temperatura Humedad Presión en ese orden específico (Note la primera letra en mayúscula).

3. Toma nota de tu nuevo "ID de canal" XXXXXX en "Configuración del canal".

4. Haga clic en el enlace "API Keys" y tome nota de su "API Write" y "Read API Keys" XXXXXXXXXXXXXXX. Además, conviértalo en un canal público para compartir.

5. Cree un segundo canal de Thingspeak que contendrá los datos "Hoy" (desde la medianoche) Alto Bajo. Llámelo "BME280 Daily High Low Data"

6. Este nuevo canal debe tener 6 campos denominados Tmax Tmin Hmax Hmin Pmax Pmin en ese orden específico (observe las mayúsculas de la primera letra).

7. Tome nota del "ID de canal", "Lectura" y "Escritura de claves API" de "BME280 Daily High Low Data" como en los pasos anteriores.

Paso 2: Configure el IDE de Arduino, las bibliotecas y configure el BME280

Configure el IDE de Arduino, las bibliotecas y configure el BME280
Configure el IDE de Arduino, las bibliotecas y configure el BME280

8. Siga las instrucciones para instalar el núcleo Arduino IDE y ESP8266 en

9. Inicie el IDE de Arduino para que podamos instalar las cuatro bibliotecas que necesitaremos.

10. Necesitará la biblioteca "Adafruit Unified Sensor Driver", instálela en el "Administrador de bibliotecas" en Arduino IDE. Menú Sketch Incluir biblioteca Administrar bibliotecas Haga una búsqueda por Tipo = "Recomendado" Tema = "Sensores" y luego ponga las palabras Adafruit Unified Sensor Driver en el cuadro de búsqueda. El que desea dice "Controlador de sensor unificado Adafruit de Adafruit"

11. Además, también necesitará que la "Biblioteca Adafruit BME280" lo instale en el "Administrador de bibliotecas" en Arduino IDE. Menú Sketch Incluir biblioteca Administrar bibliotecas Haga una búsqueda por Tipo = "Recomendado" Tema = "Sensores" y luego coloque las palabras Biblioteca de Adafruit BME280 en el cuadro de búsqueda. El que quieres dice "Biblioteca Adafruit BME280 de Adafruit"

12. Otra biblioteca que necesita es Wire.h, instálela en el "Administrador de bibliotecas" en Arduino IDE. Menú, boceto Incluir biblioteca Administrar bibliotecas Haga una búsqueda por tipo = "Contribuido" Tema = "Entrada / salida de señal" y luego coloque la palabra Cable en el cuadro de búsqueda. El que desea dice "Cable integrado por Arduino" Lo más probable es que esté en la parte inferior de la selección.

13. Una biblioteca más, ESP8266WiFi, instálela en el "Administrador de bibliotecas" en Arduino IDE. Menú, boceto Incluir biblioteca Administrar bibliotecas Haga una búsqueda por Tipo = "Contribuido" Tema = "Comunicación" y luego ponga la palabra ESP8266wifi en el cuadro de búsqueda. El que quieres dice "ESP8266wifi integrado por Ivan Grokhotkov"

14. La dirección I2C para BME280 está codificada en el archivo Adafruit_BME280.h (busque la línea #define BME280_ADDRESS 0x77) dentro de la carpeta Adafruit_BME280_Library. Los módulos de sensor BME de Adafruit están cableados para usar la dirección I2C de 0x77. Pero el BME280 puede tener una dirección I2C ligeramente diferente (0x76) si su pin SDO externo está conectado a tierra. Si está utilizando los módulos de sensor de un tercero, es probable que su dirección no coincida con el valor predeterminado en la biblioteca de Adafruit. Por ejemplo, para la mayoría de los módulos de sensor BME280 disponibles en eBay o Aliexpress, su dirección I2C es 0x76. Si no obtiene una respuesta del sensor utilizando la dirección predeterminada establecida en el archivo Adafruit_BME280.h, es posible que deba cambiarla a 0x76.

Puntos de conexión BME280 y ESP8266. ESP8266 3.3V a BME280 Vin, ESP8266 GND a BME280 GND, ESP8266 D4 a BME280 SCL, ESP8266 D3 a BME280 SDA. 15. Abra el archivo ESP8266-NodeMCU-12E-BME280.html proporcionado en un editor de texto e ingrese su "ESP8266-NodeMCU-12E-BME280" (El primer canal que creó) "ID de canal" y "Leer clave de API" para el variables key1 y chan1. También ingrese la "Leer clave de API" y el "ID de canal" para "BME280 Daily High Low Data" (el segundo canal que creó) para key2 y chan2. Además, ingrese el desplazamiento de su zona horaria con respecto a UTC. Como en -5 para mí. Todos los valores deben estar dentro de las comillas simples proporcionadas 'XXXXX'. Guarde y salga del editor de texto.

Conecte su ESP8266 con el cable USB a su computadora y luego seleccione su puerto serie para que sea el puerto USB.

Los usuarios de Linux pueden tener que cambiar la propiedad del puerto USB para comunicarse con / dev / ttyUSB0 como en 'sudo chown yourusername / dev / ttyUSB0' o lo que haya seleccionado como puerto en la configuración.

Paso 3: programe el ESP8266 con el IDE de Arduino

Programe el ESP8266 con el IDE de Arduino
Programe el ESP8266 con el IDE de Arduino

16. A continuación programaremos el ESP8266. Conecte un cable USB entre su ESP8266 y su computadora.

Cargue el archivo New_BME_Sensor.ino proporcionado en el IDE de Arduino. Su sensor BME280 debe estar conectado a D3 (SDA) y D4 (SCL) en el ESP8266. Ingrese su "ESP8266-NodeMCU-12E-BME280" (El primer canal que creó) "Clave de escritura" "SSID inalámbrico" y "Contraseña" en la sección correcta del esquema. A continuación, haga clic en el elemento de menú "Sketch" y "Subir". Después de cargar el boceto (el progreso alcanza el 100%) en su ESP8266, puede abrir el monitor en serie (el icono en la parte superior derecha parece un lupa) y ver la impresión de sus datos después de 5 minutos, cada 5 minutos. Los datos se envían a Thingspeak a intervalos de 5 minutos, por lo que pasará algún tiempo antes de que tenga datos gráficos significativos, pero debería tener lecturas del medidor después de 5 minutos.

Asegúrese de obtener lecturas correctas del BME280 en el monitor en serie.

Es probable que la primera medición sea una nan no válida.

Espere unos minutos hasta la próxima lectura y verifique que las lecturas se vean bien.

Paso 4: Vuelva a Thingspeak para hacer algunos ajustes de datos

Regrese al lenguaje de cosas para hacer algunos ajustes de datos
Regrese al lenguaje de cosas para hacer algunos ajustes de datos

17. Ahora, mientras los datos se están cargando lentamente en Thingspeak, hagamos algunos ajustes para obtener algunos datos adicionales de lo que se está cargando. Vuelva al sitio web de thingspeak y en la página del canal "BME280 Daily High Low Data" de Thingspeak (el segundo canal que creó) haga clic en el botón verde "MATLAB Analysis". Seleccione la plantilla "Personalizada (sin código de inicio)"

18. Nombre el análisis de MATLAB "Calcular mínimo máximo desde medianoche".

19. Copie el código MATLAB Analysis.txt en el espacio proporcionado. Ingrese el "ID de canal" para "ESP8266-NodeMCU-12E-BME280" (el primer canal que creó) en "readChannelID". Ingrese "BME280 Daily High Low Data" (El segundo canal que creó) Escriba "ID de canal" y "Clave de escritura" en writeNewChannelID y writeAPIKey respectivamente. Sé que suena confuso (léelo de nuevo). Haga clic en guardar y ejecutar. Si lo hizo correctamente y el canal de lectura es público, no verá errores e imprime correctamente los valores. Tenga en cuenta que es posible que vea un error si aún no se han cargado datos en ese canal. A pesar del error, continúe. Si lo desea, puede volver a visitar Haga clic en guardar y ejecutar para asegurarse de que funcione una vez que se hayan cargado los datos.

20. A continuación, necesitamos crear un "Control de tiempo" para disparar este código cada 5 minutos y nuestros datos se escriben en el canal "BME280 Daily High Low Data" (el segundo canal que creó). Desde la página principal de "BME280 Daily High Low Data" (el segundo canal que creó), seleccione Aplicaciones en la parte superior. En acciones, seleccione "TimeControl" y luego el botón verde "New TimeControl". Nómbrelo "Enviar temperaturas altas y bajas ESP8266". Seleccione su zona horaria si es necesario y seleccione "Recurrente" en Frecuencia. Seleccione Minuto en Recurrencia. Configurado para que se ejecute cada 5 minutos. La acción debe ser Análisis de MATLAB y "Código para ejecutar" es "Calcular mín. Máx. Desde medianoche". Ahorre TimeControl.

Paso 5: Edite el archivo HTML proporcionado

Edite el archivo HTML proporcionado
Edite el archivo HTML proporcionado

Edite los archivos HTML y busque comentarios que digan "******** Cambiarme 1 de 8 *********" Cambie estos a su preferencia.

Notas:

Algunos de los campos de texto y el gráfico semanal no se completarán correctamente hasta que tenga un día completo y una semana completa de datos para la sección y el gráfico de 24 horas y semanas. Una vez que tenga un montón de datos, puede acercar los gráficos con la rueda del mouse (clic derecho para restablecer). También puede tener un cuarto indicador (como se ve en las capturas de pantalla) de otro sensor de otro canal, pero he comentado las partes relevantes. Si te sientes inteligente, conéctalo. También hay algunos problemas de sincronización que debe tener en cuenta. Es probable que no tenga los datos absolutos más actuales, pero siempre deben tener menos de 5 minutos de antigüedad. Esto proviene de cuando se activa el control de tiempo, cuando se enviaron los datos desde el ESP8266 y cuando cargó / actualizó la página web.

Abra el archivo ESP8266-NodeMCU-12E-BME280.html proporcionado en su navegador web y debería ver los medidores y el gráfico completos.

Obtenga los archivos de código.ino y. HTML aquí

Recomendado: