Go Down

Topic: Arduino YUN keine TCP Verbindung nach WLAN aus. (Read 360 times) previous topic - next topic

emilio20

Hallo
ich habe eine TCP Verbindung zu einer SPS über WLAN die soweit funktioniert. Wenn ich das WLAN kurz ausschalt verbindet sich das Arduino mit der SPS. Wenn ich das WLAN über Nacht aus habe erhalte ich nach WLAN Neustart am nächsten Tag keine TCP Verbindung mehr. Ich muss erst das Arduino neu starten damit es wieder funktioniert.

Ich glaube dies kommt von der Linuxseite. Kann mir jemand bei diesem Problem helfen?

Im Anhang das Arduino Programm

Code: [Select]

 #include <SPI.h>
 #include <Wire.h>
 #include <Bridge.h>
  #include <YunClient.h>
 #include <Console.h>
 #include <DHT22.h>
 #include "IRremote.h"
 
 // SPS Port und IP
 #define PORT 2500
 IPAddress PLC(192,168,178,30); // PLC Address
 bool _Connected;

 
 // Temperatursensor PIN
 #define DHT22_PIN 4
 DHT22 myDHT22(DHT22_PIN);
 
 // Zeitlicher Funktionsaufruf
 long previousMillis = 0;
 long interval = 9000;
 unsigned long currentMillis;
 
 
 // IR Empfenger
 int receiver = 3;
 IRrecv irrecv(receiver);           // create instance of 'irrecv'
 decode_results results;
 
 
  void setup() {
   
   irrecv.enableIRIn(); // Start the receiver
   Bridge.begin();      // Sarte Bridge
   digitalWrite(13, HIGH);
   Console.begin();     // Starte Console
   delay(1000);
   
   YunClient client;
  }
 
  //******************************************************************Hautprogramm********************************************************
  void loop()
  {
   // listen for incoming clients
   YunClient client;// = server.accept();
   // LED aus wenn Client nicht verbunden
     
   // Zeit für Zeitliche aufruf              
   unsigned long currentMillis = millis();
       
   //  Temperaturwerte alle 2,5sec senden
   if(currentMillis - previousMillis > interval) {
      previousMillis = currentMillis;
       if (client.connect(PLC,PORT)){
         Console.println("connected");
         digitalWrite(13, HIGH);
        if (client.connected()) {
            TempFeuchte (client);
            TCPDisConnect(client);
         }
       }
      }    
   if (irrecv.decode(&results)) {// have we received an IR signal?
     //  translateIR(client);
       irrecv.resume(); // receive the next value
       }  
   
     delay(100);
       
 }
 

 //***********************************************
 //**     Funktion TCP Verbindung              **
 //***********************************************

 void TCPDisConnect (YunClient client) {
      client.stop();
      client.flush();
     _Connected = LOW ;
     digitalWrite(13, LOW);
     Console.println("Disconnected");
 }
 
 //***********************************************
 //**     Funktion Temperatur Feuchtw           **
 //***********************************************
 
  // Temperatur und Feuchte abfragen und senden
  void TempFeuchte (YunClient client) {
 
  DHT22_ERROR_t errorCode;  
  errorCode = myDHT22.readData();  
  int value;
  String cString;
 
  // TCP Verbindungsaufbau
 
 
 
 
    switch(errorCode)
    {
     case DHT_ERROR_NONE:  
     value = myDHT22.getTemperatureC()*100;
     
  // Value nur senden wenn nicht 0
       if (value != 0) {
          cString ="GV/01"+String(value,DEC);
          client.write((uint8_t*)&cString[0], cString.length());
          Console.println(cString);
        }
 
    value = myDHT22.getHumidity()*100;
       // Value nur senden wenn nicht 0
       if (value > 0) {
          cString ="GV/02"+String(value,DEC);
          client.write((uint8_t*)&cString[0], cString.length());
          Console.println(cString);
          }
       
    break;
    }
   
       
  }
 

Jomelo

Welches Linux läuft denn darauf, ich hab mich die letzten Tage intensivest mit dem Raspberry Pi beschäftigt, unteranderem mit Wlan problemen.
Vielleicht hilft dir diese Seite weiter.
http://www.gieseke-buch.de/raspberrypi/wlan-verbindung-automatisch-wiederherstellen

emilio20

#2
Feb 07, 2014, 06:45 pm Last Edit: Feb 07, 2014, 06:56 pm by emilio20 Reason: 1
Auf dem Arduino lauft
OpenWRT named Linino

Die Datei /etc/ifplugd/action.d. finde ich nicht im Arduino YUN

aber das Problem was da beschrieben wird ist genau wie bei mir.

emilio20

Komme nicht mehr weiter.

Kennt sich jemand mit der Linux seite des Yun aus ? Es muss doch eine Möglichkeit geben das Wlan immer auf Verbindungsaufbau zu stellen ? Wie im Beitrag des Rasbery Pi berschrieben. Wo finde ich im Yun die Wlan einstellungen ?

emilio20

Hallo
ich konnte das Problem mit der TCP Verbindung zu einer SPS nach längerem WLAN aus nicht beheben.
habe folgende Lösung versucht

http://forum.arduino.cc/index.php?topic=215644.0

leider ohne erfolg.

Gibt es eine Möglichkeit die Zeit zu ändern bis das Arduino YUN die WLAN Verbindung unterbricht bei fehlenden WLAN ?
Momentan liegt diese bei ca 2h.
Hat jemand noch eine Lösung hierzu ?


emilio20

Hat jemand noch eine idee wie ich das Problem lösen kann ? Habe immer noch keine lösung gefunden ??

emilio20

Gibt es eine Möglichkeit das Arduino Yun Täglich neu zu starten ? Über den Reset Eingang Startet nur die Arduino Software neu nicht das linino

Go Up