Monitor de calidad del aire para bricolaje con sensor Sharp GP2Y1010AU0F
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Herramientas y máquinas necesarias
|
Aplicaciones y servicios en línea
| ||||
|
Acerca de este proyecto
El sensor de polvo óptico Sharp (GP2Y1010AU0F) es especialmente eficaz para detectar partículas muy finas como el humo de los cigarrillos y se utiliza comúnmente en sistemas purificadores de aire. Un diodo emisor de infrarrojos y un fototransistor están dispuestos en diagonal en este dispositivo, para permitirle detectar la luz reflejada del polvo en el aire.
En videos anteriores les he mostrado los monitores de calidad del aire basados en placas de sensores DSM501A y PPD42NS. Esta vez les presentaré el mismo dispositivo, ahora basado en la placa del sensor Sharp GP2Y1010AU0F que también es muy barata y cuesta alrededor de $ 5. El esquema eléctrico de este dispositivo es muy simple y se muestra en la figura siguiente. bajo consumo de corriente (20 mA máx., 11 mA típico) y se puede alimentar directamente desde la placa Arduino. La salida del sensor es un voltaje analógico proporcional a la densidad del polvo medida, con una sensibilidad de 0,5 V / 0,1 mg / m3.
Modifiqué el código de muestra de Arduino de la página "Dfrobot" para leer los valores en microg / m3. A continuación, escribí un código de procesamiento basado en la biblioteca de "medidores", de modo que estos valores se representan en el monitor de la PC en forma de un gran instrumento analógico, lo que le da un efecto visual distinto.
Por último, comparemos las tres placas de sensores (DSM501A y PPD42NS que he descrito en videos anteriores y Sharp GP2Y1010AU0F descrita anteriormente). Los tres sensores son muy baratos y se pueden comprar por unos pocos dólares. Según los resultados obtuve probándolos en las mismas condiciones y el ganador es Sharp GP2Y1010AU0F. Hay una serie de puntos positivos entre los que:
-Es más sensible a valores muy bajos
-Tiene un consumo de energía muy bajo y se puede alimentar directamente desde el Arduino
-Código Arduino muy simple que es fácilmente personalizable
-Tiene una salida analógica por lo que se puede conectar directamente a un instrumento de medida sin ningún tipo de electrónica adicional
Este sensor se puede comprar en AliExpress
https://www.aliexpress.com/item/32661666070.html?spm=a2g0s.9042311.0.0.27424c4dKW7gUj
Gracias por mirar
Código
- código Arduino
- Código de procesamiento
Código Arduino Arduino
/ * Boceto independiente para usar con un Arduino UNO y un sensor de polvo óptico Sharp GP2Y1010AU0F * / int meterPin =0; // Conecte el sensor de polvo a Arduino A0 pinint ledPower =2; // Conecte 3 pines del controlador de led del sensor de polvo a Arduino D2int sampleTime =280; int deltaTime =40; int sleepTime =9680; float voMeasured =0; float calcVoltage =0; float dustDensity =0; void setup () {Serial.begin (9600); pinMode (ledPower, OUTPUT);} bucle vacío () {digitalWrite (ledPower, LOW); // enciende el LED delayMicroseconds (sampleTime); voMeasured =analogRead (medirPin); // lee el valor del polvo delayMicroseconds (deltaTime); digitalWrite (ledPower, ALTO); // apaga el LED delayMicroseconds (sleepTime); // 0 - 5V mapeado a 0 - 1023 valores enteros // recuperar voltaje calcVoltage =voMeasured * (5.0 / 1024.0); // ecuación lineal tomada de http://www.howmuchsnow.com/arduino/airquality/ // Chris Nafis (c) 2012 dustDensity =170 * calcVoltage - 0.1; Serial.println (densidad de polvo); // unidad:ug / m3 retraso (1000);}
Código de procesamiento C / C ++
/ * // <> // Medidor como un círculo parcial. Cambia algunos colores. Tenga en cuenta que el círculo comienza en 90,0 grados (6:00 en punto) y se mueve en el sentido de las agujas del reloj. Las etiquetas de la escala deben estar en este orden. Ejemplo de no hardware. creado el 19 de abril de 2017 por Bill (Papa) Kujawa. Este código de ejemplo es de dominio público. * / import processing.serial. *; import meter. *; Puerto serie; Lista de cadenas []; Medidor m; configuración vacía () {tamaño (1150, 910); fondo (255, 255, 200); puerto =nueva serie (este, "COM4", 9600); // Muestra un medidor de círculo completo. m =medidor nuevo (esto, 125, 25, verdadero); // Crea una instancia de una clase de medidor de círculo completo. m.setMeterWidth (850); m.setFrameColor (color (100, 0, 0)); m.setTitleFontColor (color (0, 200, 0)); m.setPivotPointColor (color (255, 0, 0)); m.setArcColor (color (0, 0, 200)); m.setScaleFontColor (color (200, 100, 0)); m.setTicMarkColor (color (217, 22, 247)); // Define dónde aparecerá la etiqueta de escala m.setArcMinDegrees (90.0); // (inicio) m.setArcMaxDegrees (360.0); // (fin) m.setArcThickness (5); m.setNeedleThickness (4); // Establecer que el valor del medidor corresponda a las etiquetas de la escala. m.setMinScaleValue (0.0); m.setMaxScaleValue (800.0); m.setInputSignalOutOfRangeFontColor (color (0, 255, 0)); m.setMinInputSignal (0); m.setMaxInputSignal (800); m.setHighSensorWarningActive (verdadero); m.setHighSensorWarningValue ((flotante) 200.0); String [] scaleLabelsA ={"0", "100", "200", "300", "400", "500", "600", "700", "800"}; m.setScaleLabels (scaleLabelsA); // Cambia el título del "Voltaje" predeterminado a una etiqueta más significativa. m.setTitle ("Calidad del aire (ug / m3)"); // Muestra el valor del medidor digital. m.setDisplayDigitalMeterValue (true);} void draw () {if (puerto.available ()> 0) {String val =port.readString (); lista =dividir (val, ','); flotar aire =flotar (lista [0]); println ("Calidad del aire:" + aire + "mg / m3"); m.updateMeter (int (aire)); }}
Esquemas
Proceso de manufactura
- El sensor de calidad del aire incorpora capacidades de IA
- Monitor de calidad del aire y medio ambiente de bricolaje
- Cómo medir la calidad del aire en OpenSensors
- Sensor de calidad del aire con helio
- Monitoreo de la calidad del aire de ciudades inteligentes basado en LoRa
- El reloj IV9 Numitron más simple de bricolaje con Arduino
- Sensor DHT11 con LED y altavoz piezoeléctrico
- Sistema de monitoreo de basura y calidad del aire interior
- Monitoreo de CO2 con sensor K30
- Sensor de obstáculos simple con Arduino
- Sensor de calidad del aire a base de carbono