Tabla de contenido:

Otra estación meteorológica (Y.A.W.S.): 18 pasos (con imágenes)
Otra estación meteorológica (Y.A.W.S.): 18 pasos (con imágenes)

Video: Otra estación meteorológica (Y.A.W.S.): 18 pasos (con imágenes)

Video: Otra estación meteorológica (Y.A.W.S.): 18 pasos (con imágenes)
Video: Bloopers de Paraguay 2024, Mes de julio
Anonim
Otra estación meteorológica (Y. A. W. S.)
Otra estación meteorológica (Y. A. W. S.)

Este proyecto es mi versión de la popular estación meteorológica. El mío se basa en un ESP8266, una pantalla OLED de.96”y un conjunto de sensores ambientales BME280. Las estaciones meteorológicas parecen ser un proyecto muy popular. El mío se diferencia de los demás al utilizar un conjunto de sensores BME280 en lugar del popular sensor de temperatura y humedad DHT22. El BME280 tiene un sensor de temperatura, humedad y presión de aire. También utiliza la interfaz I2C. La pantalla OLED de.96”utilizada también es I2C. Se puede comprar como I2C o SPI o ambos. Fui con la versión I2C para simplificar el cableado. Tanto con la pantalla OLED como con el BME280 usando I2C y 3.3V fue muy fácil hacer un cable en "Y" para conectar ambos dispositivos al ESP8266. Mientras desarrollaba este proyecto, encontré varios proyectos de estaciones meteorológicas en Internet que utilizan el ESP8266, la misma pantalla OLED y el BME280. Entonces esta no es una idea original, pero es una implementación original.

El BME280 proporciona datos del entorno interno. La información meteorológica exterior se obtiene de OpenWeatherMap.org. Deberá registrarse con OpenWeatherMap.org para obtener una clave para acceder a los datos meteorológicos. Ofrecen un servicio gratuito, que es lo que utilicé. Consulte el paso Cómo obtener una clave OpenWeatherMap para obtener instrucciones sobre cómo obtener una clave.

Se utiliza un servidor de hora NTP para obtener la hora del día y el día de la semana.

Los datos meteorológicos, de tiempo y medioambientales se muestran en la pantalla OLED. Cada pieza de información tiene su propia pantalla formateada. Las pantallas se muestran durante cinco segundos antes de cambiar a otra. Se accede a OpenWeatherMap.org cada quince minutos para actualizar la información meteorológica. El BME280 se lee aproximadamente cada cincuenta y cinco segundos. La fuente utilizada en cada pantalla se ajusta automáticamente para mostrar toda la información en la fuente más grande posible.

El ESP8266 también está configurado para ser un servidor web. Se puede acceder a toda la información meteorológica utilizando un navegador desde su teléfono, tableta o computadora. Una de las pantallas que se muestra muestra la dirección IP del servidor web.

El ESP8266 viene en una variedad de formas y tamaños. Elijo un kit de desarrollo GEEKCREIT DoIt ESP12E V2. Éste es totalmente compatible con el "estándar" NodeMCU para módulos independientes ESP8266. Tiene un regulador integrado de 3.3V, un CH340 como puente USB a serie y el circuito de reinicio automático NodeMCU. Puede utilizar cualquier módulo ESP8266-12 que tenga. Solo tenga en cuenta que es posible que deba agregar un regulador de 3.3V u otros circuitos para programarlo. También construí uno usando un Witty Cloud ESP8266. Me permitió empaquetar todo en un cubo de 1.5 pulgadas. La placa de puente USB inferior se desconecta después de la programación. Agregué un pin de cabezal en ángulo recto al orificio de 3.3V en la placa Witty. El arnés se hizo con dos carcasas de cuatro clavijas, una carcasa de dos clavijas y dos carcasas de una clavija.

En la foto de arriba, la placa a la que está conectado el módulo ESP8266 es una placa de circuito que desarrollé como placa de conexión para ESP8266 y ESP32. Aceptará las placas ESP8266 de cuerpo estrecho compatibles con NodeMCU, la placa Witty Cloud ESP8266 o una placa ESP32 de GEEKCREIT. Todos los pines GPIO disponibles están divididos en encabezados para facilitar el acceso. Descubrí que la mayoría de las placas de desarrollo nunca tienen suficientes pines de alimentación y tierra. Cada vez que desee conectar algo, necesita al menos un pin de tierra y la mayoría de las veces un pin para alimentar el dispositivo. Cada fila de pines GPIO está acompañada por un pin de alimentación de 3,3 V y un pin de tierra. Utilizo el mismo diseño que usa First Robotics, potencia en el medio. Me gusta este diseño porque si conecta algo al revés no libera el humo mágico. La placa tiene un par de extras, un sensor de infrarrojos, un interruptor de botón y un LED de tres colores. Se pueden usar puentes para conectarse a cualquiera de estas funciones. Si está interesado en una de estas placas de conexión ESPxx, contácteme.

Paso 1: Qué necesitará:

Que necesitarás
Que necesitarás
Que necesitarás
Que necesitarás
Que necesitarás
Que necesitarás

1 - Placa de sensor de temperatura, humedad y presión BME280 I2C

Compré el mío en Ebay desde China por alrededor de $ 1.25 con envío gratis. También disponible en Adafruit o Sparkfun

1 - Pantalla OLED I2C I2C de 128x64 ".96" con controlador SSD1306

Compré el mío en Ebay desde China por alrededor de $ 4,00. El mío es blanco. Puede encontrar azul y blanco con un área de amarillo en la parte superior. Algunos se venden como SPI e I2C. Puede que tenga que mover algunas resistencias para seleccionar la operación I2C. La parte importante es que utiliza el chip controlador SD1306. También disponible en Adafruit.

1 - NodeMCU ESP8266-12 con CH340

Puede utilizar cualquier módulo ESP8266-12 que desee. Prefiero los que tienen el puente USB a serie CH340. Hace unos años hubo una erupción de chips puente falsos FTDI y SI, por lo que ya no confío en nada más que en el CH340.

2 - Carcasas de paso DuPont de 4 pines y 0,1 pulgadas (2,54 mm)

2 - Carcasas de paso DuPont de 2 pines, 0,1 pulgadas (2,54 mm)

12 - Engarces hembra DuPont para alambre 22-28 awg

Consigo el mío en Ebay. También puede utilizar Molex o cualquier marca que prefiera. Pines prensados o IDC La elección es suya. Tenga cuidado de comprar los pines correctos para sus conchas. No se mezclan y combinan. También puede soldar los cables a las placas y eliminar los conectores. Si usa las clavijas engarzadas, necesitará una engarzadora. No intente doblar con un par de alicates. No funciona.

1 - Paquete de alimentación de pared de 5 V, 1 A como mínimo.

Estos son baratos y están disponibles en Ebay. Obtenga uno con un conector micro USB o lo que sea compatible con su placa ESP8266.

También necesitará ocho piezas de cable de 22-28 awg para conectar todo. O simplemente puede conectarlo todo a una placa de perforación. Es tu decision.

He incluido una imagen de lo que se usó para construir la estación meteorológica usando un Witty Cloud ESP8266. Una imagen detalla dónde agregar un pin de encabezado en ángulo recto para recoger 3.3V. Uno de los dos casquillos de los pines se reemplaza por dos casquillos de un pin. Los cables de tierra y de 3.3V están metidos en las carcasas de un pin.

Siga este enlace para obtener los archivos de código fuente del repositorio de GitHub; ESP8266-Estación meteorológica. La carpeta zip o la carpeta clonada tendrá una carpeta WeatherStation que contiene WeatherStation.ino y BME280.h. Estos son los archivos de código fuente. También hay varios archivos pdf. Los archivos pdf tienen la misma información que este instructable.

Paso 2: Herramientas:

Instrumentos
Instrumentos
Instrumentos
Instrumentos

Después de probar muchas marcas de engarzadores, descubrí que el ingeniero japonés PA-21 o PA-09 funciona mejor para los engarces macho y hembra de DuPont. Está disponible en Ebay o Amazon. Cualquiera funcionará para los pines de DuPont. El PA-09 también hará los pines para los conectores JST comúnmente usados en baterías LiPo. Aquí hay un enlace a un video sobre cómo usar las crimpadoras Engineer con las crimpadoras DuPont; Cómo utilizar las engarzadoras PA-21

Instructables recientemente tuvo un excelente tutorial sobre el uso de los engarzadores Weierli Tools SN-28B con pasadores y carcasas DuPont. Puedes verlo aquí; ¡Haga un buen engarce de clavijas Dupont CADA VEZ!

Paso 3: haz el arnés:

Haz el arnés
Haz el arnés
Haz el arnés
Haz el arnés

El arnés de cableado es la clave de este proyecto. Es un cable básico en "Y" de cuatro hilos. Arriba hay una foto del arnés que hice. La pantalla OLED y la matriz de sensores BME280 tienen el mismo pinout. Esto significa que las dos carcasas de cuatro pines son idénticas después de insertar los cables prensados. Hice mi arnés con los cables dobles prensados que van a las dos carcasas de dos pines que se unen a la placa ESP8266. En su lugar, podría optar por colocar los cables dobles engarzados en una de las cuatro cubiertas de los pines, haciéndolo como una conexión en cadena. Cualquiera funcionará.

  1. Corta todos los cables a medida. Me gusta usar diferentes colores para cada cable; rojo para 3.3V, negro para tierra, amarillo para SCL y verde para SDA.
  2. Pele un extremo de cada cable aproximadamente 0,1 pulgada.
  3. Tuerza las hebras juntas y agrega un rizado hembra.
  4. Una vez que todos los cables tengan un rizo en un extremo, pele todos los cables aproximadamente 0,2 pulgadas.
  5. Tuerza los hilos de dos alambres del mismo color juntos.
  6. Una vez torcido, recorte a aproximadamente 0,1 pulgada y agregue un rizado hembra.
  7. Cuando todos los pares de cables estén engarzados, es hora de insertar los extremos engarzados en las carcasas.
  8. Las dos carcasas de cuatro pines están rellenas, de izquierda a derecha, con rojo, negro, amarillo, verde o 3.3V, Gnd, SCL, SDA.
  9. Uno de los dos casquillos de los pines recibe los cables rojo y negro.
  10. La otra carcasa de dos pines recibe los cables amarillo y verde.

Paso 4: Consejo:

Propina
Propina
Propina
Propina
Propina
Propina

Descubrí que cuando uso un cable de 28 awg con las clavijas de engarzado, tienden a caerse. Lo que hago para evitar esto es pelar el extremo del cable el doble de lo normal. Tuerza los cables expuestos juntos. Luego dobla el alambre trenzado para doblar el grosor. Ahora, cuando lo rizo, el cable es lo suficientemente grueso como para sujetarlo con fuerza.

Paso 5: Conéctelo todo junto:

Conéctelo todo junto
Conéctelo todo junto
Conéctelo todo junto
Conéctelo todo junto
Conéctelo todo junto
Conéctelo todo junto
  1. Enchufe las carcasas de cuatro pines en la pantalla OLED y las placas BME280.
  2. Alinee el cable rojo con los pines Vcc y 3V3.
  3. Conecte la carcasa roja / negra de dos pines a un par de pines 3V3 (3.3V) y GND en la placa ESP8266. Hay tres lugares en la placa donde los pines 3V3 y GND son adyacentes. Evite los pines Vin (5V) y GND, ya que liberarán el humo mágico de sus placas OLED y BME280. Asegúrese de que el cable rojo esté conectado al pin 3V3.
  4. Conecte la carcasa de dos pines amarillo / verde a D1 y D2 en la placa ESP8266. El cable amarillo (SCL) debe estar en D1.

Verifique sus conexiones. Si todo se ve bien, entonces está listo para encender la placa ESP8266.

Paso 6: Cómo obtener una clave OpenWeatherMap

Cómo obtener una clave OpenWeatherMap
Cómo obtener una clave OpenWeatherMap

Necesitará una clave API para acceder al sitio web OpenWeatherMap.org para obtener información meteorológica actual. Los siguientes pasos detallan cómo registrarse con OpenWeatherMap.org y obtener una clave API.

Siga este enlace a OpenWeatherMap.org.

Haga clic en API cerca de la mitad de la parte superior de la página web.

Paso 7: Cómo obtener una clave de OpenWeatherMap, suscríbase

Cómo obtener una clave OpenWeatherMap, suscribirse
Cómo obtener una clave OpenWeatherMap, suscribirse

En el lado izquierdo, en Datos meteorológicos actuales, haga clic en el botón Suscribirse.

Paso 8: Cómo obtener una clave de OpenWeatherMap, obtener una clave de API

Cómo obtener una clave de OpenWeatherMap, obtener una clave de API
Cómo obtener una clave de OpenWeatherMap, obtener una clave de API

Haga clic en Obtener clave API y comience en la columna Gratis.

Paso 9: Cómo obtener una clave de OpenWeatherMap, regístrese

Cómo obtener una clave OpenWeatherMap, registrarse
Cómo obtener una clave OpenWeatherMap, registrarse

Haga clic en el botón Registrarse debajo de Cómo obtener la clave API (APPID).

Paso 10: Cómo obtener una clave de OpenWeatherMap, crear una cuenta

Cómo obtener una clave de OpenWeatherMap, crear una cuenta
Cómo obtener una clave de OpenWeatherMap, crear una cuenta

Complete todos los campos. Cuando termine, marque la casilla de verificación Estoy de acuerdo con los Términos de servicio y la Política de privacidad. Luego haga clic en el botón Crear cuenta.

Revise su correo electrónico para ver si hay un mensaje de OpenWeatherMap.org. El correo electrónico tendrá su clave API. Deberá copiar la clave API en el código fuente de la estación meteorológica para obtener el clima actual.

El servicio gratuito OpenWeatherMap.org tiene algunas limitaciones. Lo más importante es que no puede acceder a él más de una vez cada diez minutos. Esto no debería ser un problema porque el clima no cambia tan rápidamente. Las otras limitaciones tienen que ver con la información disponible. Cualquiera de las suscripciones pagas proporcionará información meteorológica más detallada.

Paso 11: Configura el IDE de Arduino:

Configure el IDE de Arduino
Configure el IDE de Arduino

El desarrollo del programa se realizó utilizando Arduino IDE Versión 1.8.0. Puede descargar el último IDE de Arduino aquí; IDE de Arduino. El sitio web de Arduino tiene excelentes instrucciones sobre cómo instalar y usar el IDE. El soporte para ESP8266 se puede instalar en el IDE de Arduino siguiendo las instrucciones dadas por este enlace: Complemento ESP8266 para Arduino. En la página web, haga clic en el botón "Clonar o descargar" y seleccione "Descargar zip". El archivo ReadMe.md tiene instrucciones sobre cómo agregar el soporte ESP8266 al IDE de Arduino. Es un archivo de texto sin formato que puede abrir con cualquier editor de texto.

Las placas ESP8266 vienen en todos los tamaños, formas y utilizan diferentes chips de puente de USB a serie. Prefiero las placas que usan el chip puente CH340. Hace unos años FTDI, SI y otros se cansaron de los clones baratos que decían ser sus partes. Los fabricantes de chips cambiaron su código de controlador para que solo funcionaran con sus propias piezas originales. Esto resultó en mucha frustración cuando la gente descubrió que los puentes USB a Serie ya no funcionaban. Hoy en día, solo me quedo con los puentes USB a serie basados en CH340 para evitar comprar placas que pueden o no funcionar. En cualquier caso, deberá encontrar e instalar el controlador correcto para el chip puente utilizado en su placa. Este es un enlace al sitio oficial de los controladores CH340; CH341SER_EXE.

El ESP8266 no tiene hardware I2C dedicado. Todos los controladores I2C para el ESP8266 se basan en bit-banging. Una de las mejores bibliotecas ESP8266 I2C es la biblioteca brzo_I2C. Fue escrito en lenguaje ensamblador para el ESP8266 para hacerlo lo más rápido posible. La biblioteca de pantallas OLED que estoy usando usa la biblioteca brzo_I2C. Agregué código para acceder a la matriz de sensores BME280 usando la biblioteca brzo_I2C.

Puede obtener la biblioteca OLED aquí: Biblioteca ESP8288-OLED-SSD1306.

Puede obtener la biblioteca brzo_I2C aquí: Biblioteca Brzo_I2C.

Ambas bibliotecas deberán instalarse en su IDE de Arduino. El sitio web de Arduino tiene instrucciones sobre cómo instalar bibliotecas zip en el IDE aquí: Cómo instalar bibliotecas zip.

Consejo: después de instalar el paquete de placas ESP8266 y las bibliotecas, cierre el IDE de Arduino y vuelva a abrirlo. Esto asegurará que las placas y bibliotecas ESP8266 aparezcan en el IDE.

Paso 12: seleccione su tablero:

Seleccione su tablero
Seleccione su tablero

Abra el IDE de Arduino. Si aún no lo ha hecho, instale el complemento ESP8266, la biblioteca brzo_i2c y la biblioteca de controladores OLED.

Haga clic en "Herramientas" en la barra de menú superior. Desplácese hacia abajo en el menú desplegable hasta donde dice "Tablero:". Deslízate hacia el menú desplegable "Administrador de la Junta" y desplázate hacia abajo hasta; "NodeMCU 1.0 (Módulo ESP-12E)". Haga clic en él para seleccionarlo. Deje todos los demás ajustes en su valor predeterminado.

Paso 13: seleccione el puerto serie:

Seleccione el puerto serie
Seleccione el puerto serie

Haga clic en "Herramientas" en la barra de menú superior. Desplácese hacia abajo en el menú desplegable hasta donde dice "Puerto". Seleccione el puerto que sea apropiado para su computadora. Si su puerto no aparece, su placa no está enchufada o no ha cargado el controlador para su chip puente o su placa no estaba enchufada cuando abrió el IDE de Arduino. La solución simple es cerrar el IDE de Arduino, conectar la placa, cargar los controladores que faltan y luego volver a abrir el IDE de Arduino.

Paso 14: WeatherStation.ino

Puede usar los botones Descargar arriba o seguir este enlace a GitHub para obtener el código fuente; ESP8266-Estación meteorológica.

Los archivos WeatherStation.ino y BME280.h deben estar en la misma carpeta. El nombre de la carpeta debe coincidir con el nombre del archivo.ino (sin la extensión.ino). Este es un requisito de Arduino.

Paso 15: Edite WeatherStation.ino

Haga clic en "Archivo" en la barra de menú superior. Haga clic en "Abrir". En el cuadro de diálogo Abrir archivo, busque la carpeta WeatherStation y selecciónela. Debería ver dos pestañas, una para WeatherStation y otra para BME280.h. Si no tiene ambas pestañas, entonces abrió la carpeta incorrecta o no descargó ambos archivos o no los guardó en la carpeta correcta. Intentar otra vez.

Deberá editar el archivo WeatherStation.ino para agregar el SSID y la contraseña para su red WiFi. mire alrededor de la línea 62 para ver lo siguiente;

// ponga aquí el SSID y la contraseña de su red WiFi

const char * ssid = "tuyo"; const char * contraseña = "contraseña";

Reemplace "yourssid" con el SSID de su red WiFi.

Reemplace "contraseña" con la clave de acceso de su red WiFi.

También deberá agregar su clave OpenWeatherMap y el código postal donde vive. Busque en la línea 66 lo siguiente;

// coloque su clave de OpenWeatherMap.com y el código postal aquí

const char * owmkey = "yourkey"; const char * owmzip = "yourzip, país";

Reemplace "yourkey" con la clave obtenida de OpenWeatherMap.org.

Reemplace "yourzip, country" con su código postal y país. Su código postal debe ir seguido de una coma y su país ("10001, nosotros").

A continuación, debe configurar su zona horaria y habilitar / deshabilitar el horario de verano (DST). Busque en la línea 85 lo siguiente;

// El tiempo sin procesar devuelto está en segundos desde 1970. Para ajustar las zonas horarias, reste

// el número de segundos de diferencia para su zona horaria. El valor negativo // restará tiempo, el valor positivo agregará tiempo #define TZ_EASTERN -18000 // número de segundos en cinco horas #define TZ_CENTRAL -14400 // número de segundos en cuatro horas #define TZ_MOUTAIN -10800 // número de segundos en tres horas #define TZ_PACIFIC -7200 // número de segundos en dos horas

// Ajuste la hora de su zona horaria cambiando TZ_EASTERN a uno de los otros valores.

#define TIMEZONE TZ_EASTERN // cambia esto a tu zona horaria

Hay un grupo de declaraciones #define que definen la diferencia horaria para varias zonas horarias. Si su zona horaria está ahí, reemplace "TZ_EASTERN" en la definición de "TIMEZONE". Si su zona horaria no aparece en la lista, deberá crear una. El servidor NTP da la hora como hora del meridiano de Greenwich. Tiene que sumar o restar una cantidad de horas (en segundos) para llegar a su hora local. Simplemente copie una de las declaraciones "#define TZ_XXX" y luego cambie el nombre y la cantidad de segundos. Luego, cambie "TZ_EASTERN" a su nueva zona horaria.

También debe decidir si usar el horario de verano o no. Para deshabilitar el horario de verano, reemplace el "1" con un "0" en la siguiente línea;

#define DST 1 // configúrelo en 0 para deshabilitar el horario de verano

Cuando está habilitado, DST adelantará o retrasará automáticamente la hora una hora cuando sea apropiado.

Paso 16: cargue el código en su ESP8266

Sube el código a tu ESP8266
Sube el código a tu ESP8266

Haga clic en el icono de flecha circular hacia la derecha que está justo debajo de "Editar" en la barra de menú superior. Esto compilará el código y lo cargará en su tablero. Si todo se compila y carga correctamente, después de unos segundos, la pantalla OLED debería iluminarse y debería aparecer el mensaje de conexión.

Paso 17: Cómo ver el sitio web de datos meteorológicos

Cómo ver el sitio web de datos meteorológicos
Cómo ver el sitio web de datos meteorológicos

La imagen de arriba muestra la página web servida por la estación meteorológica. Puede acceder a él desde su PC, teléfono o tableta. Simplemente abra un navegador y escriba la dirección IP de la estación meteorológica como URL. La dirección IP de la estación meteorológica se muestra en una de las pantallas de la estación meteorológica. Haga clic en Actualizar página para actualizar la información.

Paso 18: Felicitaciones, ha terminado

Eso es. Ahora debería tener una estación meteorológica en funcionamiento. Su próximo paso podría ser diseñar y hacer un caso para albergar su estación meteorológica. O tal vez desee agregar algunas pantallas más para mostrar la sensación térmica, el punto de rocío, las horas de salida o puesta del sol o un gráfico de los cambios de presión barométrica o predecir el clima usando la presión barométrica. Que se divierta y disfrute.

Recomendado: