Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Estación meteorológica personal (Arduino + ESP8266 + Thingspeak)

Componentes y suministros

Adafruit BMP180
× 1
Sensor de temperatura y humedad DHT11 (4 pines)
× 1
LDR
Resistencia dependiente de la luz
× 1
Espressif ESP8266 ESP-01
× 1
Arduino Nano R3
× 1
Resistencia de 4,75 k ohmios
× 1
Resistencia 51K
× 1
LM2596 DC-DC Buck Converter Step-Down Power Module
× 1
DC jack
× 1
cambiar
× 1
Adaptador de pared 12v-2A
× 1
PCB
× 1
Encabezado masculino 40 Posición 1 Fila (0.1 ")
× 1
Encabezado femenino 8 Posición 1 Fila (0.1 ")
× 5
caja de plástico
× 1

Herramientas y máquinas necesarias

pelacables
Pistola de pegamento caliente (genérica)
Soldador (genérico)
destornillador
Archivo
utilizado para manualidades

Aplicaciones y servicios en línea

Arduino IDE
API ThingSpeak

Acerca de este proyecto

Introducción:crea una estación meteorológica personal

Sentado en su habitación comienza a sudar o siente frío; te preguntas cuanto seria la temperatura en tu habitacion? o cual seria la humedad? Esto sucedió conmigo hace algún tiempo.

Esto llevó al inicio de la estación meteorológica personal, que monitorea la temperatura, la humedad, la presión y la intensidad de la luz de su habitación y la carga en un canal privado en thingspeak.com.

Empecemos.

Paso 1:video rápido

Aquí hay un pequeño video, que resume todo en 5 minutos.

Haga clic aquí para ver en youtube.

Paso 2:componentes electrónicos necesarios para la estación meteorológica personal

Descripción: Usaremos DHT11 para detectar la humedad, BMP180 para detectar la temperatura y la presión y una resistencia dependiente de la luz (LDR) para tener una idea aproximada de la intensidad de la luz. Arduino nano recopilará datos de estos sensores y los enviará a ESP8266 para cargarlos en su canal privado en thingspeak.com. Alimentaremos nuestro Arduino nano desde un adaptador de pared de 12V-2A, sensores y ESP8266 recibirá voltaje reducido desde el convertidor buck basado en LM2596.

Lista de componentes:

  • Sensor de presión y temperatura BMP180,
  • Sensor de humedad DHT11,
  • Resistencia dependiente de la luz (LDR),
  • Módulo wifi ESP8266 (listo para firmware),
  • Arduino nano,
  • 2 resistencias:51 KOhm y 4,7 KOhm,
  • Convertidor buck LM2596,
  • conector de CC,
  • Cambiar y
  • Adaptador de pared de 12V-2A.

Paso 3:herramientas y elementos adicionales necesarios para la estación meteorológica personal

Descripción: Usaremos un pelacables para pelar cables, una lima para alisar cortes / agujeros en el gabinete, una pistola de pegamento para colocar componentes dentro del gabinete, un destornillador para cerrar la tapa del gabinete y soldador con alambre de soldadura para ensamblar el circuito en la placa de circuito de uso general (GCB) . La caja de plástico de 4x4x2 pulgadas actúa como cerramiento. También necesitaremos una tira de berg macho y hembra junto con conectores hembra para un montaje adecuado en GCB.

Lista de herramientas:

  • Pelacables,
  • Archivo,
  • Pistola de pegamento,
  • Destornillador y
  • Soldador y alambre de soldadura.

Lista de elementos adicionales:

  • Caja de plástico de 4x4x2 pulgadas (utilicé esta dimensión, cualquier dimensión cercana debería estar bien),
  • Placa de circuito de uso general,
  • tira de témpano masculino y femenino y
  • conectores hembra.

Paso 4:requisitos de software

Descripción:Para ver el valor de los datos del sensor, necesitaremos un canal privado en thingspeak.com. Necesitaremos Arduino IDE para escribir código arduino para arduino nano. (Supongo que ustedes tienen una PC / computadora portátil y una ruta wifi con acceso a Internet)

Lista de requisitos de software:

  • Canal privado en Thingspeak.com y
  • Arduino IDE (preferiblemente la última versión).

Puede descargar la última versión de Arduino IDE desde arduino.cc. Ahora creemos un canal privado en thingspeak.com.

Paso 5:creación de un canal privado en Thingspeak.com

Para crear un canal privado en thingspeak.com, siga estos pasos:

  • Abra su navegador web y vaya a thingspeak.com y haga clic en la pestaña "Registrarse" en la esquina superior derecha, (Imagen n. ° 1)
  • Complete los detalles y haga clic en 'Crear cuenta', (Imagen n ° 2)
  • Ahora haga clic en la pestaña "Nuevo canal" (Imagen n. ° 3)
  • Vuelva a completar los detalles del canal y habilite 4 campos (ya que enviaremos 4 valores de sensor), desplácese hacia abajo y haga clic en la pestaña 'Guardar canal', (Imagen n. ° 4/5)
  • En esta página, haga clic en la pestaña "Claves API" y anote su "Escribir clave API".

Eso es todo amigos, ahora tienen su canal ThingSpeak privado.

Ahora juntemos todos los componentes electrónicos.

Paso 6:esquema de la estación meteorológica personal

Aquí adjunto la imagen del esquema de la estación meteorológica personal. También adjunto archivo fritzing para el mismo. Las conexiones son bastante simples.

  • BMP180 se conecta al puerto I2C de arduino nano.
  • El LDR está conectado en forma de divisor de voltaje con una resistencia de 51 KOhm y la unión se conecta al pin A1 de arduino nano.
  • El pin de datos de DHT11 se eleva con una resistencia de 4.7 KOhm y se conecta al pin A0 del arduino nano.
  • TX y RX de ESP8266 se conectan a D10 y D11 de arduino nano respectivamente. El CH_PD del ESP8266 se conecta a un riel de 3.3V.
  • Ajuste la salida del módulo LM2596 a 3.3V girando el potenciómetro en este módulo. Conecte la salida de este módulo a Vcc y Gnd de BMP180, DHT11, LDR y ESP8266's Vcc y Gnd respectivamente.
  • La entrada del módulo LM2596 proviene del adaptador de pared 12V-2A que también se conecta a Vin y Gnd de Arduino nano.

Necesitamos ensamblar este circuito en una placa de circuito de uso general. Vamos a hacer eso.

Paso 7:Montaje del circuito en la placa de circuito de uso general (GCB)

Las herramientas de hardware y los elementos adicionales del paso 3 ya están disponibles.

  • Utilice una tira de témpano hembra para la colocación de Arduino nano y ESP8288 en GCB,
  • Utilice soldador y alambre de soldadura para conectarlos eléctricamente a la placa,
  • Use conectores hembra para extender el alcance de todos los sensores y el módulo LM2596, ya que se pegarán a la tapa y la pared del gabinete,
  • Use una tira de témpano macho para hacer puntos de conexión para las extensiones femeninas hechas anteriormente,
  • Realice el esquema del circuito en GCB usando cables (pélelos con un pelacables), o riel de alambre de soldadura derretido y, finalmente,
  • Verifique los tipos antes de encender el circuito con un multímetro.

Ahora que todo el hardware está colocado en GCB, veamos el código.

Paso 8:código

El código para la estación meteorológica personal es bastante simple. He comentado el código correctamente para facilitar la portabilidad. Antes de grabar el código, asegúrese de lo siguiente.

  • Asegúrese de que todas las bibliotecas estén instaladas,
  • Reemplace los guiones con el SSID de su punto de acceso (enrutador wifi) en la línea 14 del código,
  • Reemplace los guiones con PASSWORD de su red wifi en la línea 15 del código,
  • Reemplace los guiones con la clave de API de escritura del canal privado de ThingSpeak en la línea 17 y
  • Mientras programa Arduino nano, asegúrese de que su suministro de 12 V CC esté APAGADO.

Aquí está el enlace a github (Estación meteorológica personal) para descargar el código y las bibliotecas que utilicé.

Ahora que tenemos nuestro hardware y software en su lugar, lo único que queda es el empaque.

Paso 9:preparación del adjunto

Ahora necesitamos hacer agujeros de varias formas y tamaños en la caja de 4x4x2 pulgadas. Necesitamos hacer agujeros para el conector de CC y encender cualquier pared preferida del gabinete. También necesitamos hacer agujeros para sensores en la tapa del gabinete.

Adjunto una imagen que muestra las dimensiones de los agujeros que necesitamos hacer en el cerramiento.

Use una cuchilla caliente para cortar el plástico.

Utilice una lima para alisar los agujeros.

Ahora su recinto está preparado para albergar su circuito.

Paso 10:cerrar la tapa

Coloque su GCB ensamblado dentro del gabinete.

Coloque el interruptor y el conector de CC en los orificios de la pared; sensores en los orificios de la tapa. Finaliza su posición y usa pistola de pegamento para arreglarlos. Finalmente use un destornillador para cerrar la tapa.

Ahí lo tienes, tu estación meteorológica personal. Encienda la fuente de alimentación y vea la temperatura, la humedad, la presión y la intensidad de la luz de su habitación desde cualquier lugar del mundo a través de su teléfono inteligente / PC / computadora portátil / tableta en su canal privado ThingSpeak.

Eso es todo por este proyecto. Comenta en caso de duda. Gracias por leer.

Código

  • Código
Código Arduino
 #include  #include  #include  #include  #define DEBUG 0 // cambia el valor a 1 para habilitar la depuración usando el monitor serial #define dht_pin A0 // definiendo el pin A0 para el sensor DHT # define lightSensor A1 // definiendo el pin A1 como pin de entrada para el divisor de voltaje LDR dht DHT; Adafruit_BMP085 bmp; SoftwareSerial esp8266Module (10, 11); // RX, TXString network ="----"; // su punto de acceso SSIDString contraseña ="-------------"; // la contraseña de su punto de acceso wifi # define IP "184.106.153.149" // dirección IP de thingspeak.comString GET ="GET / update? key =----------------"; // reemplace con su canal keyvoid setup () {if (DEBUG) {Serial.begin (9600); // Estableciendo la velocidad en baudios serial del hardware a 9600} esp8266Module.begin (9600); // Estableciendo la velocidad en baudios de la serie softserial en 9600 if (! Bmp.begin ()) {if (DEBUG) {Serial.println ("No se pudo encontrar un sensor BMP085 válido, verifique el cableado!"); } while (1) {}} retraso (2000);} bucle vacío () {setupEsp8266 (); DHT.read11 (dht_pin); doble humi =DHT.humedad; double bmp_temp =bmp.readTemperature (); double bmp_pressure =bmp.readPressure (); int lightIntensity =analogRead (sensor de luz); updateTemp (String (bmp_temp), String (lightIntensity), String (bmp_pressure), String (humi)); retraso (30000);} // ------------------------------------------ ------------------------- // Después de configurar la función el esp8266, colóquelo en la estación hecha y // conéctese al punto de acceso wifi.//- -------------------------------------------------- --------------- void setupEsp8266 () {if (DEBUG) {Serial.println ("Reiniciando esp8266"); } esp8266Module.flush (); esp8266Module.println (F ("AT + RST")); retraso (7000); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Encontrado OK"); Serial.println ("Cambiando espmode"); } esp8266Module.flush (); ChangingMode (); retraso (5000); esp8266Module.flush (); connectToWiFi (); } else {if (DEBUG) {Serial.println ("OK no encontrado"); }}} // --------------------------------------------- ---------------------- // La función siguiente establece esp8266 en modo de estación // ----------------- -------------------------------------------------- bool ChangingMode () {esp8266Module.println (F ("AT + CWMODE =1")); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Modo cambiado"); } devuelve verdadero; } else if (esp8266Module.find ("SIN CAMBIO")) {if (DEBUG) {Serial.println ("Ya en modo 1"); } devuelve verdadero; } else {if (DEBUG) {Serial.println ("Error al cambiar de modo"); } falso retorno; }} // ---------------------------------------------- --------------------- // La siguiente función conecta esp8266 al punto de acceso wifi // ----------------- -------------------------------------------------- bool connectToWiFi () {if (DEPURAR) {Serial.println ("dentro de connectToWiFi"); } Cadena cmd =F ("AT + CWJAP =\" "); cmd + =red; cmd + =F (" \ ", \" "); cmd + =contraseña; cmd + =F (" \ ""); esp8266Module.println (cmd); retraso (15000); if (esp8266Module.find ("OK")) {if (DEBUG) {Serial.println ("Conectado al punto de acceso"); } devuelve verdadero; } else {if (DEBUG) {Serial.println ("No se pudo conectar al punto de acceso"); } falso retorno; }} // ---------------------------------------------- --------------------- // La función siguiente envía datos del sensor a thingspeak.com//---------------- -------------------------------------------------- -void updateTemp (String voltage1, String voltage2, String voltage3, String voltage4) {String cmd ="AT + CIPSTART =\" TCP \ ", \" "; cmd + =IP; cmd + =" \ ", 80"; esp8266Module.println (cmd); retraso (5000); if (esp8266Module.find ("Error")) {if (DEBUG) {Serial.println ("ERROR al ENVIAR"); } regreso; } cmd =OBTENER + "&campo1 =" + voltaje1 + "&campo2 =" + voltaje2 + "&campo3 =" + voltaje3 + "&campo4 =" + voltaje4 + "\ r \ n"; esp8266Module.print ("AT + CIPSEND ="); esp8266Module.println (cmd.length ()); retraso (15000); if (esp8266Module.find (">")) {esp8266Module.print (cmd); if (DEBUG) {Serial.println ("Datos enviados"); }} else {esp8266Module.println ("AT + CIPCLOSE"); if (DEBUG) {Serial.println ("Conexión cerrada"); }}} 
Biblioteca y código para la estación meteorológica personal
Echa un vistazo a Readmehttps://github.com/jayraj4021/Personal-Weather-Station-14

Esquemas

schematic.fzz

Proceso de manufactura

  1. Estación meteorológica basada en Raspberry Pi
  2. Estación meteorológica Raspberry Pi 2
  3. Estación meteorológica Raspberry Pi
  4. Únase al IOT con su estación meteorológica - CWOP
  5. Monitor del tiempo
  6. Weather Station V 2.0
  7. Persianas inteligentes
  8. MKR1000 a ThingSpeak.com
  9. $ 10 Estación meteorológica portátil Arduino (AWS)
  10. eDOT - Reloj de precisión y estación meteorológica basados ​​en Arduino
  11. Estación meteorológica ThingSpeak Arduino