D1 mini reagiert komisch

Hallo,

ich habe mir einen Außensensor mit einem D1 mini gebaut. Es hat alles gut funktioniert, bis ich ein paar Einstellungen geändert habe. Das Board geht in den Deepsleep und sendet alle 10 min die Sensorwerte an Blynk. Da ich weniger Werte haben wollte, habe ich die Deepsleepzeit auf 30 min verlängert. Zunächst machte es den Anschein als würde alles funktionieren, doch nach 30 min konnte kein Sensorwert mehr ausgelesen werden und der Kontroller startete die ganze Zeit neu. Ich habe die Einstellungen wieder auf 10 min gesetzt, doch das hat nicht funktioniert. Wenn ich die Stromversorgung einschalte sendet er alle Daten problemlos. Nach dem Ablauf der Deepsleep Zeit geht wieder nix. Stromversorgung wieder an und alles geht bis zum nächsten Deepsleepende. Deshalb schließe ich Kontaktprobleme aus.

Hat einer von euch eine Idee was ich da ändern muss?
Ps. ich benutze das Beispielskript von Blynk.

#define BLYNK_PRINT Serial


#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "XXXXXXXXXXXX";


char ssid[] = "XXXXXXXXXXXXXX";
char pass[] = "XXXXXXXXXXXXXX";
#define DHTPIN 2          

#define DHTTYPE DHT22   


DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;


void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); 

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
.
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
  delay(100);
  ESP.deepSleep(600e6);
}

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);


  dht.begin();

 
  timer.setInterval(1000L, sendSensor);
}

void loop()
{
  Blynk.run();
  timer.run();
}

was ist ein D1 mini?

3 Fragen:
Wie oft wird nach timer.setinterval() sendSensor aufgerufen?
Ist es zulässig, deepSleep() in einer ISR aufzurufen?
Was bedeutet der Parameter von deepSleep(), was sind die zulässigen Werte?

hallo DrDiettrich.

Deine Fragen kann ich leider nicht beantworten, da ich hauptsächlich in Phython arbeite und C noch nicht viel benutzt habe. Aber ich muss dazusagen, dass der Sensor schon ca. 1 Monat einwandfrei funktioniert hat.

Ein Delay nach dem Deepsleep war bis jetzt auch erfolglos. Den Wakeup Pin D0 habe ich mit einer Drahtbrücke mit RST verbunden.

Mir ist aufgefallen, dass die Led einmal während des Deepsleep leuchtet. Entweder schaltet sich das Board gar nicht mehr an oder es kann keine Werte auslesen.

Ps. Genau das gleiche Problem tritt neuerdings auch bei einem anderen Board (NodeMcu) mit Dht22 und Bmp 180 Sensor auf. Bei diesem Projekt (beide unabhängig voneinander) habe ich eine Platine verwendet, weshalb auch hier die Wahrscheinlichkeit für ein Kontaktproblem sehr niedrig ist.
Das Programm habe ich hier aber nicht verändert.

Dann sehe ich 3 Möglichkeiten:

  • die Batterie ist leer
  • irgendwas ist kaputtgegangen
  • irgendwas wurde geändert

Vielleicht reagieren die Controller neuerdings auf irgendeinen Störsender?

In der App (Blynk) sehe ich, dass der Kontroller Online ist. Weshalb Störsender bei mir unwahrscheinlich sind. Außerdem habe ich den Akku überprüft und bei meinem anderen Projekt (NodeMcu) verwende ich ein Netzteil. Ich gehe auch davon aus, dass etwas geändert wurde, aber ich habe bei meinem NodeMcu Projekt zuletzt vor 3 Monaten etwas an der Software geändert, danach hat es dann noch problemlos funktioniert. Ich habe keine Ahnung, was sich geändert haben könnte und was ich verändern muss, damit es wieder läuft.

Hat jemand noch weitere Ideen?

Gruß Boommaster_X

Schau mal in Deiner IDE (Boardmanager), welche Version vom ESP8266-Package Du drin hast.
Die 2.4 hat noch einige Bugs drin.

Gruß Tommy

Momentan benutze ich die Version 2.4.1

Der Fehler scheint aber öfters aufzutreten. Deshalb habe ich in einem anderen Beitrag die Frage etwas anders gestellt.DHT 22 - Fehler nach Deepsleep - Deutsch - Arduino Forum

Gehe mal zurück auf die 2.3.0, die hat sich bei mir bisher als stabiler erwiesen.

Die 2.4.1 behebt ein paar Fehler der 2.4.0, bringt aber neue Fehler mit.

Gruß Tommy

Danke für den Hinweis.
Leider geht mein Board nicht mehr in den Deepsleep, wenn ich die Version2.3.0 benutze. Wenn ich sie wieder auf 2.4.1 setzte geht der Deepsleep wieder. Auch das Sensorproblem bleibt somit nach wie vor.

Schade. Mit deepsleep arbeite ich nicht.

Gruß Tommy