[Tuto] Capteur DIY de mesure de monoxyde de carbone
Publié : 03 déc. 2018, 15:20
Bonjour,
Mon dernier bricolage, un capteur de mesure de monoxyde de carbone.
Matériel :
Un Wemos D1 mini :
https://www.aliexpress.com/item/ESP8266 ... 4c4dntN7aU
Un capteur MQ7 :
https://www.aliexpress.com/item/MQ-7-Ca ... 4c4dntN7aU
Il vous faut au préalable l'IDE Arduino avec les modules et librairies ESP8266 installées
Récupérez sur le Web les librairies MQ7.h et PubSubClient.h, installez-les dans votre IDE Arduino
Branchement :

--> L'alimentation globale se fait via la prise USB du Wemos
Code :
Dans DZ, créez un matériel genre MQ7. Créez ensuite un dispositif dans ce matériel, de type "Qualité de l'air", donnez lui le nom que vous voulez. Dans la page des dispositifs, repérez son index
Dans le code changez :
- Le nom de votre réseau wifi
- Votre mot de passe wifi
- L'adresse IP de votre serveur DZ
- Le port de votre serveur DZ si vous avez modifié ce dernier
- L'index du capteur
- Tous les paramètres IP en fonction de votre installation
- Si nécessaire le delay (dernière ligne de la fonction loop() )pour régler l'intervalle entre deux envois de mesure à DZ (5000 millisecondes soit 5 secondes dans le code ci-dessus)
Uploadez le code dans le Wemos. A la fin, reset du Wemos, les mesures doivent apparaitre dans DZ au bout de quelques secondes.

En cas de problème, commencez par dé-commenter les Serial.print pour voir ce qui se passe.
Enjoy !!!
Mon dernier bricolage, un capteur de mesure de monoxyde de carbone.
Matériel :
Un Wemos D1 mini :
https://www.aliexpress.com/item/ESP8266 ... 4c4dntN7aU
Un capteur MQ7 :
https://www.aliexpress.com/item/MQ-7-Ca ... 4c4dntN7aU
Il vous faut au préalable l'IDE Arduino avec les modules et librairies ESP8266 installées
Récupérez sur le Web les librairies MQ7.h et PubSubClient.h, installez-les dans votre IDE Arduino
Branchement :

--> L'alimentation globale se fait via la prise USB du Wemos
Code :
Code : Tout sélectionner
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <PubSubClient.h>
#include <MQ7.h>
///////////////////////////////////
// Variables utilisateur à modifier
///////////////////////////////////
// Identifiants Wifi
const char* ssid = "mettez votre identifiant wifi";
const char* password = "mettez votre mot de passe wifi";
// Adresse du serveur Domoticz
const char* host = "mettez l'adresse IP de votre serveur Domoticz";
const int port = 8080; // changez le port au besoin
// Index des capteur dans Domoticz
#define IDX_MQ7 XX // remplacez XX par l'index du capteur dans Domoticz
// Numéros des broches capteurs Ultrason
const int AOUTpin=A0;//the AOUT pin of the CO sensor goes into analog pin A0 of the arduino
// variables diverses
MQ7 mq7(A0,3.3);
// Définition des paramètres IP du Wemos
// A MODIFIER EN FONCTION DE VOTRE INSTALLATION !!!
IPAddress ip(192, 168, 1, 167);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(192, 168, 1, 1);
///////////////////////////////////////////
// Fin des Variables utilisateur à modifier
// Ne rien modifier ci-dessous
///////////////////////////////////////////
// Définition du client HTTP
HTTPClient http;
void setup()
{
Serial.begin(115200); // initialisation communication série
//Serial.print("Connecting to ");
//Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.config(ip, dns, gateway, subnet);
WiFi.begin(ssid, password);
// Attente de connexion
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Print the IP address
Serial.println(WiFi.localIP());
}
void loop()
{
float valeur=(mq7.getPPM());
// Construction de la chaine pour le capteur 1 et envoi à Domoticz
String url1 = "/json.htm?type=command¶m=udevice&idx=";
url1 += String(IDX_MQ7);
url1 += "&nvalue=";
url1 += String(valeur);
url1 += "&svalue=";
url1 += String(valeur);
sendToDomoticz(url1);
// Delai entre chaque mesure et envoi
delay(5000);
}
void sendToDomoticz(String url)
{
//Serial.print("Connecting to ");
//Serial.println(host);
//Serial.print("Requesting URL: ");
//Serial.println(url);
http.begin(host,port,url);
int httpCode = http.GET();
if (httpCode)
{
if (httpCode == 200)
{
String payload = http.getString();
//Serial.println("Domoticz response ");
//Serial.println(payload);
}
}
//Serial.println("closing connection");
http.end();
}
Dans le code changez :
- Le nom de votre réseau wifi
- Votre mot de passe wifi
- L'adresse IP de votre serveur DZ
- Le port de votre serveur DZ si vous avez modifié ce dernier
- L'index du capteur
- Tous les paramètres IP en fonction de votre installation
- Si nécessaire le delay (dernière ligne de la fonction loop() )pour régler l'intervalle entre deux envois de mesure à DZ (5000 millisecondes soit 5 secondes dans le code ci-dessus)
Uploadez le code dans le Wemos. A la fin, reset du Wemos, les mesures doivent apparaitre dans DZ au bout de quelques secondes.

En cas de problème, commencez par dé-commenter les Serial.print pour voir ce qui se passe.
Enjoy !!!

