WiFi Modul ESP8266

Hallo,
ich habe die letzten Seiten überflogen und bin mir nicht sicher ob es passt.
Ich habe gestern ein Modul mit Namen „Wemos D1 mini“ und ein Relais-Shield zusammen gesteckt und mit dem Aufruf der html-Seite gesteuert.
http://<Shield-ip>/ein
…/aus
…/status

wird nur die ip aufgerufen erscheint eine Hilfe und einige Informationen (Betriebstunden, Zustand u.ä.)

Internet-Suche „wemos d1 mini relais“ und dann „homematic-forum“ bringt eine gute Einführung.

Ich habe ein bisschen gebastelt mit einem ESP-12F und einen Bewegungsmelder…

Das Problem ist, das der Bewegungsmelder immer fast wie in einem Interval auslöst, wenn keine Bewegung im Raum vorhanden ist…

Wenn ich den BM mit dem Messgerät prüfe, funktioniert er richtig :confused:

Hat einer eine Idee wie ich den Fehler wegbekomme ?

Hallo Drapple,
keine Lösung aber eine Vermutung: das Wifi-Modul stört den Bewegungsmelder. Such mal bei Google nach
esp8266 motion interference. Ich habe mir die gefundenen Seiten dort nicht weiter angesehen, aber vielleicht hilft es ja weiter. Ganz interessant auch diese Seite. Entweder dort oder im dem Thread im homematic-forum wurde (soweit ich mich erinnere) auch über Probleme BWM & ESP8266 berichtet.

Gruß
Peter

Hi danke für diesen heissen Tip :eek:

Ich habe es mal nachgestellt:

ESP und BM aufeinanderliegen = Fehlauslösung !

ESP und BM 5 cm auseinander = Fehlauslösung !

ESP und BM 15 cm auseinander = Alles ok :smiley:

Ist natürlich total bekloppt ! Ich finde aber keine Lösung für das Problem, ausser den BM weit genug vom ESP zu setzten, was aber keinen Sinn macht :banghead:

Kleine Metallplatte dazwischen…?

Habe ich mir auch schon überlegt aber das ist auch nicht so wirklich schön, wenn du es nein sehr kleines kompaktes Gehäuse alles bauen willst

Gesendet von iPhone mit Tapatalk

Sammel doch Deine BWM und nimm nur ein ESP8266 für mehrere BWM.

Meist nutzt man ja mehrere BWM, spart ja auch ESP-Strom
Gruß Helmut

Hi Drapple,
eine Lösung wäre evt., Wifi auf dem Modul nur dann einzuschalten, wenn Du einen Bewegungsevent senden willst. Und, wenn Wifi eingeschaltet ist, keine neuen Trigger vom Bewegungsmelder anzunehmen.

Gruß
Peter

Hm wäre eine Idee, kannst mir verraten wie das geht :slight_smile:

Nee, keine Idee. Ich habe zwar einige ESPs rumliegen, aber bisher keine Zeit zum Spielen gehabt. Aber hilft der Link im Beitrag #55 nicht weiter?
Gruß
Peter

Als Anregung habe ich noch diesen Link :wink:
Gruß Helmut

Hier hat sich einiges getan :smiley: wollte nur Bescheid geben, dass ich nicht auf diesen Thread hier vergessen habe, aber noch im Prüfungsstress bis gestern war und mir demnächst Zeit nehmen werde und mich dem Thread hier widmen werde :slight_smile:

Hi,

hatte ähnliche Probleme mit einem MCP23017 an einem ESP-07 mit 1 MB Flash welcher 8 Relais ansteuerte.

Probeaufbau: alles ohne Fehler

Praxis:
nur Relais 1 schaltet einen Laststrom von 28 Watt mit Einschaltspitze (Pumpe Solarsystem)
zieht an und fällt sofort wieder ab.
alle anderen Relais funktionierten einwandfrei, aber wehe es wurde Relais 1 betätigt.

1.Verdacht: diese Schei… Schaltnetzteile, … waren es nicht.

Ursache: der ResetPin des MCP wollte einen PullUp und einen Kondensator gegen Masse:

… das kleine Stück Bondingdraht und der IC Anschluss waren als Antenne so gut dass der mikrige Laststrom in 10 cm Abstand einen Reset auslöste.

Ähnlich sieht es beim Resetanschluss des ESP aus, dieser hängt in der Luft und ist sehr sensibel,

ich hab beide Resetleitungen miteinander verbunden und
muss feststellen dass ich seitdem keine Systemhänger mehr hatte welche einen
getrennten WD Baustein erfordern (ist übrigens bei ESPeasy bereits fertig programmiert und eingebunden),
gelegentlich fährt er einen eigenen Reset, arbeitet aber von da ab alleine wieder los.

Hope it helps

mfg

BerndJ

Hi Bernd,

vielen Dank für deinen Erfahrungsbericht.
Bei mir hängt aber der Resetpin vom ESP nicht in der Luft :wink: Es ist gar keiner Angeschlossen :wink:

Der ESP resetet sich auch nicht von selber…

Hast du noch eine Idee, was ausprobieren könnte ?

Hi,

genau DAS meinte ich damit.
Der von Dir eingesetzte ESP-12E HAT einen ResetPin und der ist SEHR hochohmig
und somit für alles um ihn herum extrem „lauschfreundlich“.
Die mickrigen Kapazitäten zu benachbarten Leitungen;
und falls der Pegel an ihm auch nur sehr kurz unter 2V „peakt“;
haste ihn eingefangen!

woher diese Gewissheit?

Ich nutze ESPeasy und lasse mir die „Uptime“ jede Minute an IPS übermitteln;
in den durch IPS geloggten Daten sehe ich dann jeden Neuanfang.

Wie ist die Anschaltung des IO-Portes des Bewegungsmelders?

Als extremes Negativbeispiel sei genannt
(manchmal kann man garnicht um die vielen unvorhergesehenen Ecken schauen welche Murphy einem serviert)

der Triggereingang des HC-SR04;
dieser ist dämlicherweise symmetriert,
sprich bei VCC 5 Volt liegen da 2,5 Volt an;
entsprechend erkennt ein 3V3 Eingang High Pegel.

Nun mag man sagen:
wenn ich den als Ausgang setze ist mir das Wurscht;
packt man ihn allerdings auf GPIO15 beim ESP (wie mir das passiert ist);
schaut der ESP in der Bootphase hier nach;
und wehe er steht auf „High“; so verrent er sich in den falschen Mode!!
und wenn das der Sensor für den Röhrenkollektor auf dem Dach ist kommen keine Daten mehr;…
wird sehr, sehr heiss; sprich: sowas sollte nie passieren.

Eventuell wäre hier eine „saubere“ Pegelanpassung notwendig,

denn manchmal sorgt der Energiesparwahn mit seinen erstaunlichsten Erkenntnissen
„ich hab da ein Atom gesehen und deshalb war es ein High Pegel“
Allüren für Verdruss.

mfg

BerndJ

PS:
um zukünftig besser und gezielter helfen zu können wären Angaben hilfreich:
welcher ESP Baustein
welche eingesetzte Soft- und Firmware mit Revisionnummer
welcher Baustein angebunden?, und wie?, mit welchen Parametern
wie und mit welchem Protokoll erfolgt die Anbindung an IPS
was funktioniert

und erst dann das detaillierte Aufzeigen der Problemsituation.

Vordruck:
ESPxx
ESPeasy V108
HCxxxxx, Port GPIO12, direkt
an IPS via Domotics HTTP auf TCP Port 52000
es funktioniert:
meldet sauber Erkennungen im Sensorbereich
Probleme:
leider viel zu viele

THX

Vielen Dank für deine Untersützung :slight_smile:

Hier die Infos:

ESP12E (NodeMCU V0.9)

Arduino IDE 1.6 Sketch selber geschrieben…
HC-SR501, Port GPIO 05, direkt via 10cm Kabel

an IPS via HTTP Get

es funktioniert:

wenn der ESP und der BM min. 15cm weit auseinander ist.

Probleme:

wenn der ESP und der BM unter 15cm weit auseinander ist, gibt es ständig Fehlauslösungen. Der BM hat dann auch 3,3V am Ausgang !

Hier eine Zeichnung:

Hi,

sorry, aber momentan bin ich beruflich überbelastet,

kurzer Tip:

Lass uns die Sensibilität in Form der energiesparenden Hochohmigkeit,
einhergehend mit erstaunlicher Sensibilität dieser Schaltung als Antenne,
etwas zurück nehmen:

Also:

falls er bei Erkennung eines Objektes 3V3 ausgibt,

so würde ich einen PullDown Widerstand setzen von 1 KOhm;
(Dein Text deutet darauf hin)

sollte er jedoch lowPegel, sprich was niedriges ausgeben, ansonsten High,

so würde ich einen PullUp Widerstand setzen von 1 KOhm.

Diesen Wert kann man nach erfolgreicher Anpassung selbstverständlich im Sinne der Energieoptimierung anpassen;
bis es wieder los geht mit den Fehlmeldungen,
… dann natürlich mit entsprechender Sicherheitsreserve;
… und schön wäre eine Teilhabe dieser Erkenntnisse an die Community.

mfg

BerndJ

PS: Ist Dein Script veröffentlichungswürdig??

Hi Bernd, vielen Dank für deinen Tipp :smiley:

Ich habe einen PullDown Widerstand von 10 KOhm zwischen den Ausgang vom BM und dem Eingang am ESP gesetzt, keine Verbesserung :frowning:

1 KOhm teste ich noch, wenn die Widerstände geliefert worden sind.

… und schön wäre eine Teilhabe dieser Erkenntnisse an die Community.

Klar Teile ich mit euch meine Erfahrungen…

PS: Ist Dein Script veröffentlichungswürdig??

Noch nicht, aber wenn es fertig ist, mache ich ein neues Thema Speziell dafür auf (EPS for IPS :wink:

So habe noch zusätzlich einen 10 KOhm zwischen ground und den BM Ausgang geklemmt, so konnte ich den bm schonmal viel näher zum Eps legen:

Gesendet von iPhone mit Tapatalk

Hallo, ich häng mich auch mal in den ESP Thread

hab hier mehrere ESP in Verbindung mit IPS laufen. Leider macht mir untenstehender Code Zicken.
IPS sendet via Server Socket Daten an den ESP. Solange IPS läuft ist alles gut und 100% stabil.
Wenn aber IPS mal neu gestartet wird passiert da irgendetwas unvorhergesehenes und IPS kann keine Daten mehr an den ESP senden. Nach Reboot des ESP funktioniert alles wieder.

Leider ist das nur bedingt rebroduzierbar, und darum von der direkten Fehlersuche her sehr mühsam.
Vielleicht könnte sich ja jemand den Code ansehen, meiner Meinung nach sieht das doch total sauber und robust aus.

#include <ESP8266WiFi.h>


//WLAN ESP8266
const char* ssid     = "xxx";
const char* password = "xxx";
const char* host = "10.0.0.1";
IPAddress ip(10, 0, 0, 51);
IPAddress gateway(10, 0, 0, 138);
IPAddress subnet(255, 255, 255, 0);

int  IPSPort = 1105;
unsigned char reconnectCount = 0;

String IPSMsg = "";
boolean MSGstartFlag = false;
boolean MSGstopFlag = false;

WiFiClient client;

void setup() {
  Serial.begin(9600);
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    if (reconnectCount >= 60) {
      ESP.restart();
    }
    Serial.print(".");
    reconnectCount++;
  }
  reconnectCount = 0;

  Serial.println("");
  Serial.print("WiFi connected    ");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  connectToServer();
  client.println("ESP8266 Connected");

}

void loop() {
  if (client.connected()) {
    readCharfromPort();   // Receive data from IPS port:
    
	....  // Anwendungscode hab ich der Übersicht halber rausgenommen
  }
    else {
      delay(500);
      if (reconnectCount >= 60) {
        ESP.restart();
      }
      Serial.println("Connection lost!");
      Serial.println("Try to reconnect...");
      connectToServer();
      reconnectCount++;
    }
  }

  // Process each char from Port and build Data String
  void readCharfromPort() {
    char inChar = client.read();
    // Serial.print(inChar);
    if (inChar == '<') {   //start character
      MSGstartFlag = true;
    }
    if (inChar == '>') {    //end character
      MSGstopFlag = true;
    }
    if (MSGstartFlag) {
      IPSMsg = IPSMsg + inChar;
    }
  }

  void connectToServer() {
    Serial.print("connecting to ");
    Serial.println(host);
    if (!client.connect(host, IPSPort)) {
      Serial.println("connection failed");
      return;
    }
    Serial.print("Connected to IPS Server at Port:");
    Serial.println(IPSPort);
  }