Tabla de contenido:
- Paso 1: Cree y configure sus canales de Thingspeak
- Paso 2: Configure el IDE de Arduino, las bibliotecas y configure el BME280
- Paso 3: programe el ESP8266 con el IDE de Arduino
- Paso 4: Vuelva a Thingspeak para hacer algunos ajustes de datos
- Paso 5: Edite el archivo HTML proporcionado
Video: ESP8266 NodeMCU con medidores y gráfico BME280: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
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
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
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
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
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 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:
Gráfico de barras de dos colores con CircuitPython: 5 pasos (con imágenes)
Gráfico de barras de doble color con CircuitPython: Vi este gráfico de barras LED en el sitio de Pimoroni y pensé que podría ser un proyecto económico y divertido mientras realizaba el bloqueo de covid-19.Contiene 24 LED, uno rojo y uno verde, en cada uno de sus 12 segmentos, por lo que, en teoría, debería poder mostrar r
Reloj de gráfico de barras IOT (ESP8266 + estuche impreso en 3D): 5 pasos (con imágenes)
Reloj con gráfico de barras IOT (ESP8266 + estuche impreso en 3D): Hola, en este Instructables te explicaré cómo construir un reloj con gráfico de barras IOT 256 LED. Este reloj no es muy difícil de hacer, no es muy caro, pero necesitarás ser paciente para decir la hora ^^ pero es agradable de hacer y lleno de enseñanza. Para ma
Cómo hacer un medidor de temperatura de bricolaje personalizado con gráfico de barras y Atmega328p: 3 pasos (con imágenes)
Cómo hacer un medidor de temperatura de bricolaje personalizado usando un gráfico de barras y Atmega328p: En esta publicación, le mostraré cómo hacer un medidor de temperatura usando un gráfico de barras y amp; Atmega328p. La publicación incluirá todos los detalles como diagrama de circuito, fabricación de PCB, codificación, ensamblaje y amp; Pruebas. También he incluido un video que contiene todos
Miliamperímetros de medidores VU excedentes: 5 pasos
Miliamperímetros de medidores VU excedentes: Tenía un montón de estos hermosos medidores VU por ahí. Ya era hora de que hiciera algo útil con ellos. Al mismo tiempo, usar multímetros digitales para medir la corriente fue un gran dolor. Tuve que cambiar el cable de medición a un enchufe diferente y el
Medición de flujo con medidores de flujo de agua (ultrasónicos): 5 pasos (con imágenes)
Medición de flujo con medidores de flujo de agua (ultrasónicos): El agua es un recurso fundamental para nuestro planeta. Los seres humanos necesitamos agua todos los días. Y el agua es necesaria para una variedad de industrias y los seres humanos la necesitamos todos los días. A medida que el agua se ha vuelto más valiosa y escasa, la necesidad de un control eficaz y del hombre