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

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Componentes y suministros

Arduino 101 × 1
Sensor de polvo ZH03A × 1
Adafruit Flora RGB Neopixel LEDs - Pack de 4 × 1
Cables jumper (genéricos) × 10
Resistencia 10k ohm × 3

Aplicaciones y servicios en línea

Sobre este proyecto

AirOwl es un dispositivo de monitorización de calidad del aire en tiempo real. Se usa para monitorizar la calidad del aire, obtener datos del sensor y mostrar la salida en la app Blynk usando BLE del Arduino/Genuino 101. Un proyecto que nos ayuda a saber ¡Qué respiramos!

Las actividades humanas afectan al medio ambiente. Decidimos hacer un dispositivo que ayude a conocer el entorno y actuar en consecuencia.

La imagen siguiente muestra el AirOwl funcionando en Arduino 101.

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

La calidad del aire se puede conocer a través de 3 factores:

1) App Blynk (BLE)

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

2) Color de los ojos de AirOwl

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

3) Monitor Serial

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Para los esquemáticos y diseño del AirOwl visita: https://github.com/anithp/AirOwl_Genuino101

Tras revisar los esquemáticos, conecta el circuito.

Un diagrama básico del proyecto se muestra a continuación.

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Hoja de datos del sensor de polvo para más información: https://goo.gl/17Vgeg

Ahora empecemos a construir:

Después de hacer las conexiones según los esquemáticos, sube el código (asumiendo que tienes las librerías requeridas instaladas).

Para más información consulta: https://docs.blynk.cc/

Configuración de Blynk

  1. Instala Blynk desde Play Store / App Store
  2. Crea una cuenta.
  3. Crea un New Project en Blynk.
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
  1. Selecciona la placa y dale un nombre al proyecto.
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
  1. Tras seleccionar la placa, pulsa Create.
  2. Se enviará la clave de autenticación a tu email registrado. También puedes reenviarla desde ajustes.
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
  1. Se abrirá una ventana con un espacio de trabajo en blanco.
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
  1. Pulsa en Add y añade BLE y 3 Gauge.
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
  1. Tras seleccionar gauge, en el espacio de trabajo pulsa en cada gauge y asigna los pines V1, V2, V3 respectivamente.
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
  1. El espacio de trabajo final se verá así:
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
  1. Mantén el Arduino 101 conectado a la alimentación y luego selecciona el icono Bluetooth en el espacio de trabajo para configurar Bluetooth (mantén el Bluetooth del móvil ACTIVADO).
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor
  1. Ve al espacio de trabajo principal y inicia la simulación del proyecto.
AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Los datos se mostrarán en la ventana de Blynk.

Para quien quiera prototipar esto en protoboard, el siguiente esquema es para ti, espero que haga tu experiencia con AirOwl genial.

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Los datos también se pueden ver en el monitor serial.

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Esquemático del PCB:

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Archivo de placa:

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Vista 3D del PCB:

AirOwl: Monitorización de calidad del aire en tiempo real para respirar mejor

Todos los archivos de estas imágenes se encuentran en el enlace de GitHub mencionado abajo.

https://github.com/anithp/AirOwl_Genuino101

Ahora puedes usar AirOwl y saber qué respiras, ¡espero que ayude!

Gracias :)

Código

Air_owl C/C++
/* Copyright (C) 2017 Anith Patel and Sohil Patel. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". */ 
#include<BlynkSimpleCurieBLE.h> 
#include<CurieBLE.h> 
#define BLYNK_SERIAL Print //escribir datos para blynk 
byte data[24];//refer hoja de datos del sensor de polvo 
unsigned int PM1 = 0; //inicializar valores para material particulado 
unsigned int PM25 = 0; 
unsigned int PM10 = 0; 
unsigned int count = 0; 
const int PIN1 = 3; 
const int PIN2 = 5; 
const int PIN3 = 6; 
char auth[] = "Auth key"; //pegar auth key de Blynk 
BLEPeripheral blePeripheral; 
void setup() { 
  blePeripheral.setLocalName("Airowl"); //configurar BLE para blynk 
  blePeripheral.setDeviceName("Airowl"); 
  blePeripheral.setAppearance(384); 
  Blynk.begin(blePeripheral, auth); 
  blePeripheral.begin(); 
  Serial1.begin(9600); //inicialización comunicación uart 
  Serial.begin(9600); 
  pinMode(PIN1, OUTPUT); //configuración led 
  pinMode(PIN2, OUTPUT); 
  pinMode(PIN3, OUTPUT); 
} 
void loop() { 
  Blynk.run(); //llama a blynk 
  blePeripheral.poll(); 
  Serial.println("Concentration of PM1 is:"); //imprime en monitor serial 
  Serial.println(PM1/count); 
  Serial.println("Concentration of PM25 is:"); 
  Serial.println(PM25/count); 
  Serial.println("Concentration of PM10 is:"); 
  Serial.println(PM10/count); 
  delay(500); 
  WriteData(); //llama a función writedata 
  if ((PM1+PM25+PM10)/3 <= 100){ 
    LedColor(0, 255, 0); 
    delay(500); 
  } else if ((PM1+PM25+PM10)/3 <= 300 && (PM1+PM25+PM10)/3 > 100){ 
    LedColor(255, 0, 0); 
    delay(500); 
  } else{ 
    LedColor(0, 0, 255); 
    delay(500); 
  } 
  //lógica para el led data 
} 
void LedColor(int red, int blue, int green){ 
  analogWrite(PIN1, red); 
  analogWrite(PIN2, blue); 
  analogWrite(PIN3, green); 
} 
void getWinsenData(void) //función para obtener datos del sensor 
{ 
  //para entender esta lógica consulta la hoja de datos del sensor 
  byte i = 0; 
  int checksum = 0; 
  Serial1.flush(); 
  while (Serial1.available()) { 
    data[i] = Serial1.read(); //leer datos seriales del sensor 
    if (i <= 21) //condición para lectura del sensor 
      checksum += data[i]; 
    if (i == 23) { 
      if (checksum == ((256 * data[22]) + data[23])) { 
        if (data[0] == 66) { 
          if (data[1] == 77) { 
            if (i == 23) { 
              PM1 += ((data[4] * 256) + data[5]); //recupera y almacena datos PM1 
              PM25 += ((data[6] * 256) + data[7]); //recupera y almacena datos PM2.5 
              PM10 += ((data[8] * 256) + data[9]); //recupera y almacena datos PM10 
              count++; 
              Serial1.flush(); //esperar transmisión de datos seriales 
              break; 
            } 
          } 
        } 
      } else { 
        break; 
      } 
    } 
    i++; 
    delay(10); 
  } 
} 
void WriteData() //enviar datos a blynk 
{ 
  getWinsenData(); //llama a getWinsendata 
  Blynk.virtualWrite(V1, PM1/count); //escribir datos en Blynk 
  Blynk.virtualWrite(V2, PM25/count); 
  Blynk.virtualWrite(V3, PM10/count); 
  delay(1000); 
}

Piezas personalizadas y cajas

AirOwl

https://github.com/IndiaOpenDataAssociation/AirOwl

Esquemáticos

AirOwl Genuino 101

https://github.com/anithp/AirOwl_Genuino101

Proceso de manufactura

  1. Botones de Apoyo para Plantillas (Jig Feet Buttons): Cómo Aseguran tus Plantillas y Mejoran la Eficiencia
  2. Domina la fabricación de PCB: Consejos esenciales para éxito en prototipado
  3. Guía Esencial de Bombas Sumergibles: Características, Operación e Instalación
  4. Bombas Centrífugas: Características Clave, Aplicaciones y Ventajas
  5. Descubra el Valor Real de su Negocio: Guía para Fabricantes Pequeños y Medianos
  6. Tornillos de punta (toe clamps) explicados: características, beneficios y cómo elegir el adecuado
  7. Motores AC vs DC: Diferencias Clave y Cómo Elegir el Adecuado
  8. Financiación de Equipos 101: Ahorra Dinero, Reduce Riesgo y Asegura tu Negocio
  9. Mantenimiento predictivo: Eficiencia y reducción de riesgos con insights basados en datos
  10. 7 Librerías React Esenciales que Todo Desarrollador Debe Dominar
  11. Moldeo de fibra de carbono: Claves esenciales para la fabricación moderna