Hallo,
ich beschäftige mich seit ein paar Wochen mit dem ESP8266. Zunächst habe ich mit dem dev Board gebastelt und wollte jetzt meine Sensoren final auf den esp12-f bringen.
Mein Ziel den alt bekannten Temperatur Logger (Raspi MQTT Broker) und diverse Sensoren die die Daten liefern.
Eigentlich funktioniert es ja.. Nur halt eigentlich..
Sprich die Temperatur und Luftfeuchte wird nach dem Start übertragen und die Daten werden dann erfolgreich in die MySQL DB geschrieben.
Danach legt sich der ESP schlafen (DeepSleep).
Wenn ich ihn für 30 Minuten schlafen lege, passt es und er weckt sich selber wieder auf und macht weiter.
Wenn ich die Zeit auf 45 Minuten bzw, mein Plan ist 60 Minuten ändere dann weckt er sich nicht mehr auf.
60 Minuten ist mein Ziel und 71 sind ja das Maximum somit kann das ja nicht das Problem sein.
Beim testen ist mir aufgefallen, das der ESP schon relativ warm wird (Batterie Betrieb), bis gerade eben habe ich nicht dran gedacht die Temp mit dem Sensor zu messen...
Es ist aber für meinen Geschmack bei Batteriebetrieb und Minutenlangen deepsleep zu warm, Er ist ja gerade mal für ein paar Sekunden im wachen Zustand.
Der ESP scheint ein Macke zu haben oder gibt es ein paar Vorschläge?
Besten Dank!
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <SparkFunHTU21D.h>
WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;
HTU21D htu;
void setup() {
htu.begin();
Serial.begin(9600);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
client.setServer(MQTT_BROKER, 1883);
}
void reconnect() {
while (!client.connected()) {
Serial.print("Reconnecting...");
if (!client.connect("ESP8266Client")) {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" retrying in 5 seconds");
delay(5000);
}
}
}
void loop(){
float humidity = htu.readHumidity();
float temperature = htu.readTemperature();
if (!client.connected()) {
reconnect();
}
client.loop();
client.publish("/home/hum_terrasse", String(humidity).c_str());
client.publish("/home/temp_terrasse", String(temperature).c_str());
delay(5000);
Serial.println("Force deepsleep 1min!");
ESP.deepSleep(1 * 60 * 1000000);
delay(100);
}
Alles anzeigen