Hi, ich bin Microcontroller Neuling und habe diese Schaltung ESP Klingel hier nachgebaut, Anbindung an Fritzbox und MQTT: https://www.reichelt.de/magazin/how-to/smarte-tuerklingel/ oder in etwas wie hier: https://github.com/tIsGoud/Doorbell-via-Wemos-and-optocoupler/blob/master/README.md Die Spannungsversorgung des D1 macht eine 3,6 Volt Batterie. Die Klingel macht das was Sie soll, leider geht der D1 irgendwie nicht in den deep sleep und meine Batterie ist nach kurzer Zeit leer. Habe den D1 schon ausgetauscht und auch mit der Original Firmware geflasht. Ich habe versucht mein Messgerät zwichen die Batterie und dem D1 zu hängen, leider sind die Messergebnisse irgendwie alle mist, eventuell mache ich da etwas falsch, ist schon eine weile her das ich mich mit Elektronik beschäfftigt habe. Wie messe ich den Srom richtig und was muss ich dabei beachten ? Warum geht der D! nicht in den deep sleep ? Gruß HDM Hier einmal der Sketch den ich verwendet habe: #include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> #include <tr064.h> #include <WiFiClient.h> const char WIFI_SSID[] = ""; // <-- ändern const char WIFI_PASSWORD[] = ""; // <-- ändern const char USER[] = ""; // <-- Fritzbox User const char PASSWORD[] = ""; // Fritzbox User Kennwort <-- ändern const char FRITZBOX_IP[] = ""; const int FRITZBOX_PORT = 49000; const char* IOBROKER = ""; // <-- ändern auf ioBroker-IP const int IOBROKER_PORT = 8087; String IOBROKER_DP = "/set/javascript.0.ESP_Klingel?value="; int KLINGELDAUER = 10; // wieviel Sekunden sollen die Telefone klingeln TR064 tr064_connection(FRITZBOX_PORT, FRITZBOX_IP, USER, PASSWORD); const IPAddress STATIC_IP(192, 168, 168, 140); const IPAddress GATEWAY(192, 168, 168, 1); const IPAddress SUBNET(255, 255, 255, 0); const IPAddress DNS(GATEWAY); const char DEVICE_NAME[] = "ESP-Klingel"; void setup() { WiFi.hostname(DEVICE_NAME); WiFi.config(STATIC_IP, SUBNET, GATEWAY, DNS); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); WiFi.mode(WIFI_STA); while (WiFi.status() != WL_CONNECTED) { delay(50); } tr064_connection.init(); String tr064_service = "urn:dslforum-org:service:X_VoIP:1"; // Die Telefonnummer **9 ist der Fritzbox-Rundruf. String call_params[][2] = {{"NewX_AVM-DE_PhoneNumber", "**612"}}; tr064_connection.action(tr064_service, "X_AVM-DE_DialNumber", call_params, 1); //ioB-Part Datenpunkt per Simple-API setzen############## // Use WiFiClient class to create TCP connections WiFiClient client; if (!client.connect(IOBROKER, IOBROKER_PORT)) { Serial.println("connection failed"); return; } client.print(String("GET ") + IOBROKER_DP + "true HTTP/1.1\r\n" + "Host: " + IOBROKER + "\r\n" + "Connection: close\r\n\r\n"); client.stop(); //####################################################### // Warte x Sekunden bis zum auflegen delay(KLINGELDAUER*1000); tr064_connection.action(tr064_service, "X_AVM-DE_DialHangup"); //ioB-DP löschen client.connect(IOBROKER, IOBROKER_PORT); if (!client.connect(IOBROKER, IOBROKER_PORT)) { Serial.println("connection failed"); return; } client.print(String("GET ") + IOBROKER_DP + "false HTTP/1.1\r\n" + "Host: " + IOBROKER + "\r\n" + "Connection: close\r\n" + "\r\n" ); client.stop(); ESP.deepSleep(0); } void loop() {}
> void loop() {} Da würde ich auch ein ESP.deepSleep(0); reinsetzen. Warum? Wenn du oben einmal per "Connection failed" aus der Setup springst, läuft die Loop bis die Batterie leer ist. Ansonsten: Ruhestromaufnahme von deinem ESP-Modul gemessen? Ist da eine LED oder ein Linearregler mit 5mA Iq drauf?
Damit der DeepSleep Fehlerfrei funktioniert wird ein delay(100); danach empfohlen. Irgendwie braucht der ESP das. Der D1 Mini ansich verbraucht sehr viel Ruhestrom durch den nicht optimalen verbauten Spannungsregler und der USB-UART Wandeler. Hardwareanpassung hilft da Strom zu sparen. Sehr empfehlenswerte Seite in Sachen ESP8266: http://stefanfrings.de/esp8266/index.html#deepsleep
:
Bearbeitet durch User
Hi, Danke euch beiden für die Antwort. Ich werde eure Tippsin den nächsten Tagen einmal umsetzten und dann berichten ob es funktioniert. Gruß HDM
Noch einmal Danke für die Hilfe, die Klingel funktioniert jetzt. Noch einmal vielen Dank.
Hallo, wie sollte jetzt das komplette Programm aussehen? Das obrige Skript ist ja noch nicht angepasst, oder ? Danke CU
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.