Den Kohlenmonoxid Sensor MQ-7 verwende ich als einen einfachen Rauchmelder. Dazu wird der GND-PIN und der VCC wie gehabt mit dem Nodemcu verbunden. Den AO-Pin des Sensors habe ich mit dem AO-Pin des Boards verbunden. Die Stromversorgung erfolgt diesmal per USB-Kabel.
Und dann konnte es schon mit der Programmierung los gehen. Besonderheit an dem Sensor ist, er muss sich zunächst erwärmen um entsprechend zu funktionieren.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <PubSubClient.h>
#define MQ7 A0
float value;
const char* ssid = "TOLLESSID";
const char* password = "SICHERESPASSWORT";
const char* mqttServer = "SERVERHOST";
const int mqttPort = 1883;
const char* mqttUser = "YourMqttUser";
const char* mqttPassword = "YourMqttUserPassword";
int connected_wlan = 0;
int connected_mqtt = 0;
int counttry_mqtt = 0;
char valueC1String[8];
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(9600);//sets the baud rate
int counttry_wlan = 0;
int counttry_mqtt = 0;
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED && counttry_wlan < 4) {
delay(1000);
Serial.println("Connecting to WiFi..");
counttry_wlan++;
}
if(WiFi.status() == WL_CONNECTED){
Serial.println("connected_wlan to the WiFi network");
connected_wlan = 1;
}else{
Serial.println("go to sleep 2");
}
}
void loop()
{
analogWrite(MQ7, HIGH); // HIGH = 255
delay(60000);
analogWrite(MQ7, 71.4);
delay(90000);
analogWrite(MQ7, HIGH);
delay(50);
value = analogRead(MQ7);
client.setServer(mqttServer, mqttPort);
while (!client.connected() && connected_mqtt < 4) {
Serial.println("Connecting to MQTT...");
if (client.connect("ESP8266Client", mqttUser, mqttPassword )) {
Serial.println("connected_mqtt");
connected_mqtt = 1;
} else {
Serial.print("failed with state ");
Serial.print(client.state());
counttry_mqtt++;
delay(2000);
}
}
if(connected_mqtt == 0){
Serial.println("go to sleep 1");
}
dtostrf(value, 2, 2, valueC1String);
Serial.println(valueC1String);
client.publish("/raum/smoke", valueC1String);
delay(1000);
}
(Diese Seite enthält Affiliate-Links - Datenschutz)