Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:

THEMA: NodeMCU ESP8266 Arduino IDE / Wlan wird gestört

NodeMCU ESP8266 Arduino IDE / Wlan wird gestört 03 Sep 2017 21:42 #275

  • MarcRu87
  • MarcRu87s Avatar
  • Offline
  • New Member
  • Beiträge: 1
  • Karma: 0
Hallo Leute ;)

Ich habe ein Problem und zwar habe ich eine Nodemcu auf der läuft ein Arduino code dieser empfängt 433mhz Signale meiner Haussensorik und sendet diese als WebRequest an die Zentrale.
Das geht auch alles super das Problem ist nur das einige Wlan Geräte sofort gestört werden oder das Wifi Netzwerk unglaublich langsam wird sobald ich die NodeMcu einschalte. Also das Problem liegt denke ich mehr an der Nodemcu selbst als am code.

Ich finde aktuell aber keine Lösung würde mich sehr über Anregungen oder Hilfe freuen.

// für SmartHomeyourself
// DEZ.2016
// Marc 
//

// Sender_1.0

// ESP8266 Modul ( NODEMCU Board ) sendet SensorID und Sensorwert als request an die Ip-Adresse des Raspberry Pi Servers auf dem das SMYourself System läuft. 

// ACHTUNG: 433 Mhz Empfänger geht nur an pin: D7 im Code dann (13) !!!

// vorläufiger Testcode 

// ACHTUNG: Daten werden nur gesended wenn der Wert != letzter ist !
// + Led Status bei Daten empfangen D0 = 13;




#include <ESP8266WiFi.h>
#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();





const char* ssid     = "************";                 // SSID des Netzwerks
const char* password = "********";                       // Passwort des Netzwerks

const char* host = "192.168.2.254";                         // IP Adresse vom RaspberryPi Server


int sensordaten = 0;                                        // Sensordaten zb. 20 Grad / usw...
String sensorid = "0";                                      // SensorID ( welcher Sensor )...
String sensorwert = String(sensordaten,DEC);         

int statusled = 16;

void setup() {
  
  Serial.begin(9600);
  pinMode(statusled, OUTPUT);
  delay(100);

  mySwitch.enableReceive(13);                               // Pin D7 ( ist im Program aber Nummer 13 , wir verwenden ein ESP8266 "NodeMcu") ! 


  

  Serial.println();
  Serial.println();
  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());

  digitalWrite(statusled, HIGH);
  delay(500);
  digitalWrite(statusled, LOW);


}

int value = 0;




void request () {                                                                                   // request ausführen und aktuelle Daten an den Server übermitteln



 delay(2000);
  ++value;

  Serial.print("connecting to ");
  Serial.println(host);

                                                                                                     // TCP Verbindung
  WiFiClient client;
  const int httpPort = 80;                                                                           // Port 
  if (!client.connect(host, httpPort)) {
    Serial.println("connection failed");
    return;
  }

    String url = "http://192.168.2.100//signalInput.php?sensorId=" + sensorid + "&sensorWert=" + sensorwert;       // request url bestehend aus den Daten: SensorID und Wert.

  Serial.print("Requesting URL: ");
  Serial.println(url);

                                                                                                     // Request ausführen
client.print(String("POST ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" + 
               "Connection: close\r\n\r\n");

                                                                                                     // Antwort vom Server an die Serielle Schnittstelle übergeben ( DEBUG )
  while(client.available()) { 
   
    String line = client.readStringUntil('\r');
    Serial.print(line);
  }

  Serial.println();
  Serial.println("closing connection");
}






void loop() {


   if (mySwitch.available()) {

    digitalWrite(statusled, HIGH);

     sensordaten = ( sensordaten +1 );

       Serial.println(sensordaten);



       Serial.println(mySwitch.getReceivedValue());

       sensorid = (mySwitch.getReceivedValue());
       sensorwert = sensordaten;


       delay(500);
       

       request();

       

       delay(50);

       mySwitch.resetAvailable();

       digitalWrite(statusled, LOW);

     
       delay(20);                                                         // Pause zur Stabilität


      if ( sensordaten == 20 ) {

       sensordaten = 1;


        
      }


   }

}


 






Gruß Marc
Der Administrator hat öffentliche Schreibrechte deaktiviert.

NodeMCU ESP8266 Arduino IDE / Wlan wird gestört 20 Sep 2017 15:55 #298

  • StefanL38
  • StefanL38s Avatar
  • Offline
  • New Member
  • Hobby-Elektroniker, Modellflieger
  • Beiträge: 8
  • Karma: 0
Hallo Marc,

hm also um das Problem einzugrenzen ob es jetzt wirklich vom nodeMCU-board (= der hardware) kommt.

Könntest du ja mal testweise einen Test-Code draufladen der nichts weiter macht als sich mit deinem WLAN zu verbinden und sonst nix. Keine Server oder clients aktievieren sondern nur verbinden und das wars.

Wenn die Störung dann auch auftritt könnte es die hardware sein. (Halte ich persönlich aber für eher unwahrscheinlich. Als weiteren Test könntest du mal bei
nodemcu-build.com/

Eine Lua-Firmware erzeugen. Diese Firmware mit
github.com/marcelstoer/nodemcu-pyflasher...-PyFlasher-1.0.0.exe

auf das nodeMCU-Board flashen. Das Board an USB anschließen und mit Lualoader

benlo.com/esp8266/LuaLoader.zip

deine SSID und Passwort fürs wlan einstellen. Dann verbindet sich das Board automatisch mit dem WLAN

In Lualoader gibt es dann einen Button getip.
Wenn da als Antwort eine IP-Adresse kommt ist das Board mit dem WLAN verbunden.

und dann testen ob dein WLAN immer noch so gestört wird.
Wenn ja ist es die hardware
Wenn nein ist es irgendwas an deinem Programm oder an den include-dateien die du benutzt.

viele Grüße

Stefan Ludwig
Der Administrator hat öffentliche Schreibrechte deaktiviert.