From 95ae467d94f139ba1875d10caab8a3a84a8079b7 Mon Sep 17 00:00:00 2001 From: agr Date: Thu, 2 Apr 2020 10:51:56 +0200 Subject: [PATCH] # WARNING: head commit changed in the meantime changes log changes --- .cproject | 18 +++-- .project | 2 +- .settings/language.settings.xml | 4 - .settings/org.eclipse.cdt.core.prefs | 2 +- BME280MTTQ.ino | 105 +++++++++++---------------- 5 files changed, 56 insertions(+), 75 deletions(-) diff --git a/.cproject b/.cproject index 2830eb2..42cd059 100644 --- a/.cproject +++ b/.cproject @@ -23,9 +23,9 @@ - - + + @@ -35,9 +35,9 @@ - - + + @@ -47,9 +47,9 @@ - - + + @@ -74,6 +74,10 @@ - + + + + + diff --git a/.project b/.project index 7c812a4..46ab874 100644 --- a/.project +++ b/.project @@ -44,7 +44,7 @@ libraries/BME280 2 - C:/Users/Andy.I4A/Documents/Arduino/libraries/BME280 + ECLIPSE_HOME/arduinoPlugin/libraries/BME280/2.3.0 libraries/Ethernet diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml index f05a02f..b57f2fc 100644 --- a/.settings/language.settings.xml +++ b/.settings/language.settings.xml @@ -4,11 +4,7 @@ -<<<<<<< Upstream, based on origin/master - -======= ->>>>>>> 092ee8e log changes diff --git a/.settings/org.eclipse.cdt.core.prefs b/.settings/org.eclipse.cdt.core.prefs index 2d02f41..d824933 100644 --- a/.settings/org.eclipse.cdt.core.prefs +++ b/.settings/org.eclipse.cdt.core.prefs @@ -475,7 +475,7 @@ environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.BOARD_NA environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.BOARD_NAME/value=Arduino Mega or Mega 2560 environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.COM_PORT/delimiter=; environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.COM_PORT/operation=replace -environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.COM_PORT/value=COM5 +environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.COM_PORT/value=COM4 environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.ECLIPSE_LOCATION/delimiter=; environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.ECLIPSE_LOCATION/operation=replace environment/project/io.sloeber.core.toolChain.release.1051055115/JANTJE.ECLIPSE_LOCATION/value=C\:\\Sloeber\\ diff --git a/BME280MTTQ.ino b/BME280MTTQ.ino index 425b8b7..b12ad9e 100644 --- a/BME280MTTQ.ino +++ b/BME280MTTQ.ino @@ -5,10 +5,10 @@ #include #include + + BME280I2C bme; -uint16_t airQuality; -int val = 0; float Temperatur; float Humidity; float Pressure; @@ -21,7 +21,7 @@ byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x1A }; // Port fur Daten-Empfang unsigned int localPort = 5010; -char msg[50]; +char msg[20]; // IP Adresse Loxone-MiniServer IPAddress RecipientIP; @@ -49,9 +49,9 @@ void MQTTcallback(char*, byte*, unsigned int); //MQTT const char *MQTT_BROKER = "loxberry"; -IPAddress mqttbroker; +IPAddress mqttbroker(192,168,1,104); EthernetClient ethClient; -PubSubClient MQTTclient(mqttbroker, 1883, MQTTcallback, ethClient); +PubSubClient MQTTclient(ethClient); void setup() { Wire.begin(); @@ -70,28 +70,34 @@ void setup() { // start the Ethernet connection and the server: server.begin(); - Serial.print("server is at "); - Serial.println(Ethernet.localIP()); - if (!bme.begin()) { - Serial.println("Could not find a valid BME280 sensor, check wiring!"); - while (1) - ; - } + + + while (!bme.begin()) { + delay(1000); + Serial.println("No valid BME280 sensor, check wiring! retray"); + } + + Serial.println("1"); //DNS Client starten dnClient.begin(Ethernet.dnsServerIP()); - Serial.print("server is at "); + Serial.print("dns server is at "); Serial.println(Ethernet.dnsServerIP()); - - if (dnClient.getHostByName(MQTT_BROKER, mqttbroker) == 1) { + if (dnClient.getHostByName(MQTT_BROKER, mqttbroker,10) == 1) { Serial.print(F("loxberry = ")); Serial.println(mqttbroker); } else { - Serial.print("dns failed"); - mqttbroker.fromString("192.168.1.131"); + Serial.println("dns failed "); + Serial.println( (MQTT_BROKER, mqttbroker,10)); + mqttbroker.fromString("192.168.1.127"); + Serial.println(mqttbroker); } + // MQTT + MQTTclient.setServer(mqttbroker, 11884); + MQTTclient.setCallback(MQTTcallback); + //Serial leeren clearAll(); @@ -100,20 +106,21 @@ void setup() { } void loop() { - String aq = String(airQuality); String temp = String(Temperatur, 2); String hum = String(Humidity, 2); String press = String(Pressure / 100, 2); - char buff[50]; + char buff[10]; bme.read(Pressure, Temperatur, Humidity); //MQTT if (!MQTTclient.connected()) { - MQTTclient.connect("Stall", "loxberry", "OSVL0AMqISFXgr5g"); + MQTTclient.connect("Arduino1"); + Serial.print("MQTT Client state:"); + Serial.println(MQTTclient.state()); // Abonieren von Nachrichten mit dem angegebenen Topic - MQTTclient.subscribe("/Stall/arduino1/#"); + //MQTTclient.subscribe("/Stall/arduino1/#"); + Serial.println("connected to MQTT"); } - temp.toCharArray(buff,temp.length()); MQTTclient.publish("/Stall/Temperatur", buff); press.toCharArray(buff,press.length()); @@ -121,26 +128,11 @@ void loop() { hum.toCharArray(buff,hum.length()); MQTTclient.publish("/Stall/Humidity", buff); - MQTTclient.loop(); // Schleife für MQTT +// MQTTclient.loop(); // Schleife für MQTT // schaut on ein UDP Befehl empfangen wurde checkUDP(); - if (!strcmp(packetBuffer, "000")) { - Serial.print("CO2 = "); - Serial.print(airQuality); - Serial.print(" "); - Serial.println("[ppm]"); - - // Wert wird auf 3000ppm begrnezt - if (airQuality > 3000) { - aq = "3000"; - } else { - aq = airQuality; - } - sendUDP(aq); - } - if (!strcmp(packetBuffer, "001")) { sendUDP(temp); } @@ -154,9 +146,9 @@ void loop() { clearAll(); snprintf(msg, 50, "Alive since %ld milliseconds", millis()); - Serial.print("Publish message: "); + Serial.println("Publish message: "); Serial.println(msg); - MQTTclient.publish("/home/data", "Hello World"); + MQTTclient.publish("/home/data", msg); // listen for incoming clients EthernetClient client = server.available(); @@ -173,29 +165,18 @@ void loop() { // so you can send a reply if (c == '\n' && currentLineIsBlank) { // send a standard http response header - client.println("HTTP/1.1 200 OK"); - client.println("Content-Type: text/html"); - client.println("Connection: close"); - client.println(); - client.println(""); - client.println(""); - // add a meta refresh tag, so the browser pulls again every 5 seconds: - client.println( - ""); - // output the value of each analog input pin - - client.println("Current Humidity = "); //Prints information within qoutation - client.println(hum); //Prints the Humidity read from the DHT11 on PIN 5 + + + client.print("Feuchtigkeit = "); //Prints information within qoutation + client.print(hum); //Prints the Humidity read from the DHT11 on PIN 5 client.println("% "); - client.println("Temperature = "); - client.println(temp); //Prints the temperature read from the DHT11 on PIN 5 + client.print("Temperature = "); + client.print(temp); //Prints the temperature read from the DHT11 on PIN 5 client.println("C "); - client.println("Luftdruck = "); - client.println(press); - client.println(" "); - client.println("[hPa]"); + client.print("Luftdruck = "); + client.print(press); + client.println(" [hPa]"); - client.println(""); break; } if (c == '\n') { @@ -253,11 +234,11 @@ void MQTTcallback(char *topic, byte *payload, unsigned int length) { Serial.print(topic); Serial.print("] "); char msg[length + 1]; - for (int i = 0; i < length; i++) { + for (unsigned int i = 0; i < length; i++) { Serial.print((char) payload[i]); msg[i] = (char) payload[i]; } - Serial.println(); + Serial.println("keine Ahnung"); msg[length] = '\0'; Serial.println(msg);