Después de que en nuestro Blog el 22 de noviembre presentamos brevemente el nuevo AZ-Envy, leyendo los valores de los sensores incorporados usando las bibliotecas recomendadas y mostrándolos en el monitor en serie, ahora me gustaría profundizar más, aprovechar la gran ventaja del microcontrolador ESP con WiFi incorporado y responder a las preguntas anteriores sin respuesta sobre los sensores. Aunque el MQ-2 expresamente no es un sensor de CO2 (sino de GLP, i-Butano, Propano, Metano, Alcohol, Hidrógeno y Humo), me gustaría mostrarle al final cómo se puede conectar un semáforo para la calidad del aire.
Investigación del sensor SHT30 para temperatura y humedad relativa
Habíamos visto que la visualización de la temperatura era un poco demasiado alto y, como resultado, el valor de la humedad relativa era un poco demasiado bajo, a pesar de los huecos en la placa de circuito, que podemos ver claramente en la siguiente imagen. Esto reduce en gran medida la conducción de calor a través de la placa. Pero la proximidad al sensor de gas MQ-2 calentado todavía es notable. Lo único que ayuda aquí es una combinación de todos los trucos que también hemos recibido de nuestros clientes: tiras de plástico, colocar el Envy en ángulo o en posición vertical con el MQ-2 encima del SHT30, un pequeño ventilador para ventilar el aire ambiente y soplar el aire caliente, y finalmente un valor de corrección en el Sketch. Más sobre esto en el Sketch Envy_WebServer_MQ2_SHT30.ino.
Examen del sensor MQ-2
En la primera parte escribimos que los sensores MOS miden el cambio en la resistencia cuando hay gases presentes. La biblioteca MQ-2 recomendada de labay11 luego mostró valores de GLP, CO y humo utilizando un algoritmo desconocido. Todos estos valores se basan en un único valor medido en la entrada analógica A0. Entonces, si existen valores límite conocidos para estas sustancias, esta biblioteca es buena para usar.
Pero la solución simple que Niklas Heinzel usa en su Easy-Start Sketch (descargar en la página del producto) es completamente suficiente. Los valores analógicos están entre 1 y 1024. En nuestro salón el valor estaba entre 70 y 110; después de colocar un trozo de papel de cocina empapado en ron en el MQ-2, 1024 se mostró inmediatamente, después de un tiempo disminuyó a 900 y 800. El valor de umbral que quiera usar al final para encender la luz indicadora amarilla o roja, depende de usted, tal vez 200 para amarillo y 250 para rojo?
Conectamos nuestro AZ-Envy a la WLAN
Con el siguiente Sketch conectamos el AZ-Envy a la WLAN y lo usamos como servidor para los datos de medición. Tenga en cuenta que debe ingresar su SSID y su contraseña de WLAN en el código antes de cargar para que pueda ver los datos del sensor en el navegador de su PC o Smartphone. Descarga Sketch Envy_WebServer_MQ2_SHT30.ino.
Con el AZ Envy inclinado, un pequeño ventilador de 5V, operado con 3.3 voltios debido a la reducción significativa en el nivel de ruido, y un valor de corrección de 0.5, he logrado resultados útiles.
Existe una segunda posibilidad de registrar AZ-Envy en la WLAN doméstica Gerald Lechner en su blog en abril de 2019 describió: el uso de WPS (= WiFi-Protected-Setup).
Para esto usamos el botón incorporado en el AZ-Envy: el botón FLASH. Esto solo es necesario al arrancar si queremos poner el ESP8266 en modo Flash. Después de iniciar el programa con RESET tenemos un botón "normal" en GPIO0 (cero). Entonces solo necesitamos cambiar la segunda línea de código en el boceto #define WPS 0.
Aquí el adaptado Código para iniciar sesión en la WLAN usando el botón WPS para descargar.
Si configura la velocidad en baudios en 74880 en el monitor en serie, verá todas las salidas durante el inicio del ESP8266. Cuando se le solicite, primero presione el botón WPS en el enrutador, luego el botón FLASH en el AZ-Envy. Después de un inicio de sesión exitoso, los datos de acceso se guardan en la memoria no volátil del ESP8266. Por lo tanto, no es necesario que presione el botón WPS cada vez.
El Arduino IDE ofrece una herramienta práctica en Herramientas para eliminar los datos de la WLAN. En Erase Flash tiene tres opciones para elegir:
- Only Sketch // simplemente borra el código
- Sketch + WiFi Settings // borra el código y la contraseña de WiFi
- All Flash Contents // borra todo, incluido el SSID y la contraseña
Salidas GPIO
Ahora que ya hemos descubierto el botón como una entrada GPIO, me gustaría mostrar las dos salidas GPIO (ocultas) para controlar un semáforo para la calidad del aire.
Primero muestro el diagrama del circuito del AZ-Envy:
Como se leyó anteriormente, el botón FLASH está en GPIO0. Las únicas conexiones GPIO que se muestran se llaman TX y RX en la imagen de la parte superior derecha. Estos se utilizan como puertos seriales para programar y para mostrar datos de sensores en el monitor serial.
Sin embargo, si mostramos los datos del sensor en el WiFi de todos modos, también podemos asignar un LED bicolor a estos pines. Nuestros pines se llaman GPIO1 y GPIO3. ¿Y qué tiene que considerar aquí?
Primero, si hemos abierto el Monitor de Serie para la fase de inicio con Serial.begin (baud_rate), tenemos que cerrarlo con Serial.end (). Entonces se pueden usar GPIO1 y GPIO3.
Y en segundo lugar, nuestro semáforo, por supuesto, debería mostrar los tres colores rojo, amarillo y verde. Esto es posible con el LED bicolor con sus tres patas GND, R y G y la modulación de ancho de pulso. Así que el pin del componente rojo en "On" o el pin del componente verde en "On". Y el amarillo es el color mezclado del rojo y el verde, pero con PWM reduje a la mitad el componente verde.
/********************************************************************
Ampel mit bi-color LED
gelb = rot(255) + grün(128)
********************************************************************/
int ledred = 1; // RX = the PWM pin the red LED is attached to
int ledgreen = 3; // TX = the PWM pin the green LED is attached to
// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
pinMode(ledred, OUTPUT);
pinMode(ledgreen, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness of pin 9:
analogWrite(ledred, 255);
delay(1000);
analogWrite(ledgreen, 128);
delay(1000);
analogWrite(ledred, 0);
analogWrite(ledgreen, 255);
delay(1000);
analogWrite(ledgreen, 0);
delay(1000);
}
Descargar Sketch
Quién hubiera pensado lo que hay en el pequeño AZ Envy. Y eso no es todo. Porque nuestro "viejo maestro" Gerald Lechner, cuyo libro "SMARTHOME" acaba de llegar a las estanterías, ha ideado algo más para lo que se pueden utilizar las piezas de detrás de la puerta de hoy. Pero esa es otra historia.
Una bonita temporada previa a la Navidad!
6 comentarios
PA
Hi,
Any idea on how to flash it using ESPHOME? I just cannot get it to write. I can flash it via arduino IDE.
Thanks
Andreas Wolter
@Michael:
um den AZ-Envy in Betrieb zu nehmen, ist kein Löten notwendig. Schauen Sie eventuell zusätzlich in diesen Beitrag: https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/az-envy-das-etwas-andere-micro-controller-board
Im verlinkten Beitrag wird gezeigt, wie Sie die Sensoren einzeln testen können.
Ich empfehle Ihnen, die Arduino IDE auf den neuesten Stand zu bringen (falls nicht schon geschehen; aktuell 1.8.16, nicht die Beta Version 2). Außerdem sollte auch der ESP8266 Core aktuell sein (3.0.2).
Grüße,
Andreas Wolter
Michael
Hallo, auch ich gehöre zu den Glücklichen und habe ein 3er Set bestellt. Mit dem Beispielcode bekomme ich keine Daten vom SHT30. Alles nur 00. Mit allen dreien
Muss ich noch etwas ergänzen oder löten?
Programmiert habe ich das Modul mit der Arduino IDE.
Bernd Albrecht
Hallo und vielen Dank für Ihr Interesse an unseren Produkten und Blog-Beiträgen.
Auszug aus dem Datenblatt des MQ-2
MQ-2 Sensors are used in gas leakage detecting equipments in family and industry, are suitable for detecting
of LPG, i-butane, propane, methane, alcohol, Hydrogen, smoke.
Der Sensor kann nicht zwischen den Gasen unterscheiden. Das Prinzip ist eine Widerstandsänderung in Abhängigkeit von der Gaskonzentration. Deshalb wird lediglich ein analoger Wert am ADC (Eingang A0) gemessen. Sie können einen Grenzwert angeben, bei dem Alarm ausgelöst werden soll. Dafür sollten Sie ggf. die Werte im Normalbetrieb einige Tage messen und den Grenzwert dementsprechend festlegen. Das Schöne beim AZ-Envy ist, dass der Alarm sowohl über WLAN ausgelöst werden kann als auch über eine rote LED oder Buzzer an den umfunktionierten GPIO pins für TX und RX.
Martin Vierbücher
Ich habe mir kürzlich ein 3-er Set bestellt und über die Feiertage in Betrieb genommen. Mit der Anleitung war das kein Problem und das Gehäuse war auch schnell Dank der stl Dateien gedruckt. Leider musste ich im Deckel eine Nut fräsen damit der Deckel wegen der Stiftleiste auch zuging. Vielleicht die Nut schon im 3D Modell aufnehmen? Mit offenem Gehäuse bin ich so etwa mir dem im Sketch angegebenen Offset hingekommen, mit geschlossenem Gehäuse bin ich dann aber wieder um fast 4°C und somit um über 10°C daneben. Damit ist der Messfehler größer als die zu erwartende Temperaturdifferenz im Zimmer! Das schreit eher nach einer Korrekturkurve, oder? Der Gassensor funktioniert sehr gut, ich zweifle aber auch die Werte für Monoxid an, danach müsste ich öfter Kopfweh haben. Habe mal gelesen dass er 24h an der frischen Luft eingebrannt werden muss? Dynamisch, d.h. angepustet, reagiert er wunderbar. Und jetzt meine eigentliche Frage, ich würde einen der Sensoren im Heizungsraum platzieren und frage mich nun was ich anwählen soll. Erdgas ist laut google Methan und Methan kann der Sensor nur weiß ich nicht was ich im Web Interface selektieren soll. Wurde Methan vergessen?
Cretel
Bonjour, je souhaiterai intégrer l’azenvy a mon serveur domoticz et mysensors, pourriez vous m’indiquer un exemple de croquis.
Merci pour toutes vos innovations et votre sérieux.
Cordialement.