diff --git a/platformio.ini b/platformio.ini index 7fd1ac2..f12bde5 100644 --- a/platformio.ini +++ b/platformio.ini @@ -39,12 +39,12 @@ build_flags = build_flags = ${env.build_flags} -DDEBUG=0 -DNOADS=0 - -DNAME=\"WETTERSTATION2\" + -DNAME=\"MESSSENSOR\" -DSTASSID=\"MagentaWLAN-RGDO\" -DSTAPSK=\"93329248424922704583\" -DGATEWAY=\"192.168.127.1\" -DDNS=\"192.168.127.1\" - -DKMYIP=\"192.168.127.45\" + -DMYIP=\"192.168.127.45\" -Dmqtt_server=\"hjkmqtt.dedyn.io\" -Dmqtt_port=61883 -DTERROR=5 @@ -79,14 +79,13 @@ build_flags = ${env.build_flags} build_flags = ${env.build_flags} -DDEBUG=0 -DNOADS=0 - -DNAME=\"WETTERSTATION2\" + -DNAME=\"Messsensor\" -DSTASSID=\"MagentaWLAN-RGDO\" -DSTAPSK=\"93329248424922704583\" - -DGATEWAY=\"192.168.127.1\" - -DDNS=\"192.168.127.1\" - -DKMYIP=\"192.168.127.44\" -Dmqtt_server=\"192.168.127.193\" -Dmqtt_port=1883 + -Dmqtt_user=\"hjk\" + -Dmqtt_pass=\"51Fische\" -DTERROR=5 -DTLOWBATT=60 -DTINTERVAL=5 diff --git a/src/main.cpp b/src/main.cpp index 0396625..c411b00 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,6 +31,7 @@ void callback(char* topic1, byte* payload, unsigned int length); const char* ssid = "MagentaWLAN-RGDO"; const char* password = "93329248424922704583"; +String hostname = "MESSSENSOR"; //boris //13.April13 @@ -43,23 +44,7 @@ const char* mqtt_password = "13.April13"; */ //const char* mqtt_server = "hjkmqtt.dedyn.io"; -#ifdef TEST -//onst char* ssid = "FRITZ!Box7362SL"; -//const char* ssid = "Redmi-Note-11"; -//const char* password = "BorisundEva2007"; -//const char* password = "51Fische#"; -IPAddress ip( 192, 168, 2, 199 ); -IPAddress gateway( 192, 168, 2, 1 ); -IPAddress subnet( 255, 255, 255, 0 ); -IPAddress dns(192, 168, 2, 1); // DNS-Server -#else -const char* ssid = "WLAN-7QHHAK"; -const char* password = "3557919930817586"; -IPAddress ip( 192, 168, 127, 212 ); -IPAddress gateway( 192, 168, 127, 1 ); -IPAddress subnet( 255, 255, 255, 0 ); -IPAddress dns(192, 168, 127, 1); // DNS-Server -#endif + const unsigned long interval = 1 * 60000000UL; // Minuten * Mikrosekunden für Sleep Mode const unsigned long intervalLowBatt = 10 * 60000000UL; // Minuten * Mikrosekunden für Sleep Mode, Akku entladen @@ -78,6 +63,7 @@ char topic_1[50]; char topicWert[20]; char msg[20]; int SystemStatus; +IPAddress ip; void flip(){ @@ -102,19 +88,12 @@ void setup() { pinMode(BUILTIN_LED, OUTPUT); // Initialize the BUILTIN_LED pin as an output digitalWrite(BUILTIN_LED, LOW); Serial.print("STATUS (Systemmeldung): "); Serial.println(SystemStatus); - //init_MCP9808(); - //Init_BME280(); init_HTU21(); read_HTU21D(); Serial.println(" "); Serial.println(" "); Serial.println(" "); - //read_BME_280(); - //valTemp = getTemperature_MCP9808(); + setup_wifi(); - // --------------------------------- - // Status ändern !!! 0 - datenSave(0); - // --------------------------------- digitalWrite(BUILTIN_LED, HIGH); deviceId = ESP.getChipId(); sprintf(sID, "%010ld", deviceId); @@ -144,22 +123,19 @@ void callback(char* topic1, byte* payload, unsigned int length) { void reconnect() { unsigned long Pause = 0; unsigned long ErrLoop = 0; - sprintf(clientName, "%s%s", "ESP8266Client", sID ); + sprintf(clientName, "%s%s", NAME, sID ); // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Attempt to connect // If you do not want to use a username and password, change next line to - // if (client.connect("ESP8266Client")) { + if (client.connect("ESP8266Client")) { //if (client.connect(clientName, mqtt_user, mqtt_pass)) { - if (client.connect(clientName)) { Serial.println("connected"); - sprintf(topic_1, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/korektur" ); + sprintf(topic_1, "%s%s%s", "hjk/devices/", NAME, "/telemetry/korektur" ); client.subscribe(topic_1); blink.detach(); digitalWrite(LED_BUILTIN, HIGH); -// sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/ID" ); -// client.publish(topic, sID); } else { ErrLoop ++; blink.attach(0.8, flip); @@ -197,6 +173,11 @@ void setup_wifi() { delay( 1 ); WiFi.persistent( false ); WiFi.mode( WIFI_STA ); + WiFi.setHostname(hostname.c_str()); //define hostname + WiFi.mode( WIFI_STA ); + if (!ip.fromString(MYIP)) { // try to parse into the IPAddress + Serial.println("UnParsable IP"); + } //WiFi.config( ip, dns, gateway, subnet ); //WiFi.begin( WLAN_SSID, WLAN_PASSWD ); @@ -213,14 +194,17 @@ void setup_wifi() { // --------------------------------- endTime = millis(); unsigned long Pause = stoerung -((endTime - startTime) * 1000); // Pause + Serial.println(); + Serial.println("STÖRUNG WiFi."); + Serial.print("Ich gehe für ca. "); Serial.print(Pause/1000/1000/60); Serial.println( " Minuten schlafen."); ESP.deepSleep(Pause); // Pause delay(100); } } Serial.println(" WiFi connected"); Serial.print("IP address: \t"); - Serial.println(WiFi.localIP()); -} + Serial.print(WiFi.localIP()); Serial.print("\tRESSI: "); Serial.println(WiFi.RSSI()); +} void loop() { // put your main code here, to run repeatedly: unsigned long Pause = 0; @@ -236,30 +220,15 @@ void loop() { #else float valA00 = 3.35; #endif - //read_HTU21D(); - //valA00 = htu21Data.Temp; dtostrf(valA00, 8, 2, msg); - sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/battery" ); + sprintf(topic, "%s%s%s", "hjk/devices/", NAME, "/telemetry/battery" ); client.publish(topic, msg, true); - //sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/status" ); - - sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/temp" ); + sprintf(topic, "%s%s%s", "hjk/devices/", NAME, "/telemetry/temp" ); dtostrf(htu21Data.Temp, 8, 2, htu21Data.temperature); client.publish(topic, htu21Data.temperature, true); Serial.printf("R1 %3.3f R2 %s\n", htu21Data.Temp, htu21Data.temperature); - - // sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/status" ); - // sprintf(topicWert,"%d",SystemStatus); - // client.publish(topic, topicWert, true); - //M2M_Temperatur_MCP9808(deviceId); - //M2M_BME280(deviceId); delay(5000); endTime = millis(); - - - if(Pause <=0){ - Pause = 1; - } delay(5000); Pause = interval; Serial.print("Ich gehe für ca."); Serial.print(Pause/1000/1000); Serial.println( " sek schlafen.");