Probleme mit Arduino Uni WiFi Rev.2

Hallo zusammen,

ich habe oft das Problem, dass sich mein Arduino oft minutenlang nicht verbindet. Wenn es dann verbindet, klappt die Steuerung per App oft nicht. Wie aus dem Nichts, funktioniert dann plötzlich wieder alles. Woran kann das liegen?

PS.: Erhalte folgende Fehlermeldung in der App:
Die Website unter http://192.168.0.14/H konnte nicht geladen werden,weil:
net::ERR_CONNECTION_RESET

Grüße

Geht deine Beschreibung auch etwas ausführlicher ?

Evtl. ist ja auch dein Router defekt.
Oder dein Netzteil.

Hallo,

also die Signalstärke ist -50dBm.

Grüße

Dann solltest du die Zeile 42 im Sketch überprüfen.

Warum?

oppaernst:
Warum?

Weil da offensichtlich ein Fehler drin steckt.

Neben 42 - was immer die Lösung ist,

oppaernst:
Die Website unter http://192.168.0.14/H konnte nicht geladen werden,weil:
net::ERR_CONNECTION_RESET

geht das - eigentlich - auch ausführlicher.
Ein Browser im LAN mal genommen und auf das app verzichtet?

[/edit] ein s gelöscht...

Das mit ausführlicher versteht der TO offensichtlich nicht.

Hallo,

ich poste hier mal den Beginn meines Codes, der zu den Problemen führt:

#include <SPI.h>
#include <WiFiNINA.h>
//
#include <PIDController.h>                                                    // Inkludieren Bibliothek fuer PID-Controller
PIDController pos_pid; 
//
#include <Servo.h>                                                            // Inkludieren Bibliothek fuer Servo
Servo myServo;
//
#include "arduino_secrets.h" 
//
int schalter_kali =0;                                                         // Schalter fuer Kalibrierung
//
int gemische_Karten[52];
//
volatile long int encoder_pos = 0;
int akt_encoder_pos = 0;
//
char incomingByte;                                                            // Eingehende Bytes fuer Trigger Serial Monitor
//
char ssid[] = "Name";
char pass[] = "123";
int keyIndex = 0;
int status = WL_IDLE_STATUS;
//
WiFiServer server(80);

Grüße

oppaernst:
Hallo,

ich poste hier mal den Beginn meines Codes, der zu den Problemen führt:

Ok.....da fehlt aber die Zeile 42.

Ne, mal im Ernst. Was sollen wir mit dem Fragment anfangen ?
Ich befürchte, du hat es noch nicht verstanden.

Ohne richtige Informationen können wir auch nicht helfen.

Oder sollen wir uns alles aus den Fingern saugen ?

Welche Infos sollen es denn sein?

oppaernst:
Wat willste denn für Infos haben zur Radkappe? Geht das etwas genauer?

Danke ich bin raus.

Hallo nochmal,

ich habe ein Problem mit meinem Arduino Uno WiFi Rev.2. Und zwar verbindet es teilweise sehr lange nicht (siehe Bild 1 im Anhang). Wenn es dann verbunden ist und ich eine Datenabfrage per App starte, erhalte ich die Meldungen aus den Bildern 2 und 3 (siehe Anhang). Die Datenabfrage passiert über eine App, die ich mit dem MIT App Inventor 2 erstellt habe und auf die Seite 192.168.0.14/L referenziert (siehe Bild 4 im Anhang). Selten funktioniert die App dann aber auch wie sie soll. Wo können diese Performance-Probleme herkommen?

Grüße

Picture_1.PNG

Picture_2.PNG

Picture_3.PNG

Picture_4.PNG

Hallo,

das Du jetzt einen parallel Post angefangen hast finde ich nicht so toll.

1.Versuche mal den Uno "anzupingen" ob der überhaupt immer erreichbar ist.

  1. lade einfach mal einnen "standard Webserver" aus den Beispielen auf den UNO und verbinde dich über einen normalen Brauser damit.

Wenn das eigendlich problemlos klappt liegt es an Deinem geheimen Sketch oder der App.

Heinz

Ich fasse das mal für mich zusammen, korrigiere mich wenn falsch.

Im Ausgangspost sprichst Du von:

http://192.168.0.14/H <-!!
net::ERR_CONNECTION_RESET

in #6 habe ich Dich gebeten:

Ein Browser im LAN mal genommen und auf das app verzichtet?

Hast Du das gemacht?
Nein? Warum nicht?
Ja? Mit welchem Ergebnis?

In #12 kommst Du jetzt mit was ganz anderem.

  • Dein Bild1 gibt nicht wieder, in welchem zeitlichen Abstand versuchst eine Verbindung aufzubauen. In der vorliegenden Form hat das keinerlei Aussagekraft. Mehr noch - die Ausgabe hättest Du genauso kopieren und als Text einfügen können.

  • Dein Bild2 bringt jetzt:

http://192.168.0.14/L <-!!
net::ERR_ADDRESS_UNREACHABLE

  • Dein Bild3

Unable to get a response with the specified URL:
http://192.168.0.14/P["42", (...) <-!!

  • Deine App in Bild4 soll wohl das darstellen, was Du als Fehlermeldung in 2 hast.

Ich fasse zusammen:
Wärend oben noch ein Reset erfolgte, hast Du im weiteren Verlauf mehrfach die URL gewechselt und bekommst andere Fehlermeldungen.
Unter anderem, weil die URL nicht gefunden wird.

Das mit der specified URL ist auch klar, Du willst Parameter übergeben, machst daraus eine komplette URL. Parameter werden mit einem ? getrennt.

Ich werd das Gefühl nicht los, das Du nur was zusammenkopierst und die angebotene Hilfe nicht haben möchtest.
Es gibt weder einen Code, noch bist Du auf #6 eingegangen.

Ansonsten wurde bereits alles gesagt.

Rentner:
Hallo,

das Du jetzt einen parallel Post angefangen hast finde ich nicht so toll.

1.Versuche mal den Uno "anzupingen" ob der überhaupt immer erreichbar ist.

  1. lade einfach mal einnen "standard Webserver" aus den Beispielen auf den UNO und verbinde dich über einen normalen Brauser damit.

Wenn das eigendlich problemlos klappt liegt es an Deinem geheimen Sketch oder der App.

Heinz

Hallo,

also ich bin ja noch starker Anfänger, was arduino-Programmierung angeht. Von daher läuft da viel über try and error und ja, wsl hab ich von dem ein oder anderen Zusammenhang noch keine Ahnung. Aber ich würde mal versuchen, meinen Arduino in Windows anzupingen und auch den "standard Webserver" aufzuspielen und zu testen.

Das mit dem geheimen Sketch habe ich noch gar nicht so durchblickt. Habe das nur eingebunden, aber keine Ahnung, was es macht.

Grüße

Hallo,

also ich habe mir vorhin den AP_SimpleWebServer draufgeladen und das ganze mal getestet.
Ergebnis: Bei einem von ca. 10 Versuchen, konnte ich die BUILTIN-LED an- und ausschalten. D.h. die Verbindung ist grundsätzlich "möglich" und funktioniert "theoretisch". Beim Anpingen habe ich z.B. folgendes erhalten:

Ping statistics for 192.168.4.1:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

oder

Pinging 192.168.4.1 with 32 bytes of data:
Request timed out.

Insgesamt ist das ganze also sehr instabil und klappt irgendwie nur selten.

Woran kann das liegen?

Grüße

oppaernst:
Woran kann das liegen?

Ich würde sagen, an Deinem geheimen Code, den Du uns vorenthälst. Das Fragment in #8 ist ja nur für die Füße.

Gruß Tommy

Also mein "geheimer Code" sieht so aus:

Kann es etwas mit WiFi.beginAP() versus WiFi.begin() zu tun haben?

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//        Init
//
#include <SPI.h>
#include <WiFiNINA.h>
//
#include <PIDController.h>                                                    // Inkludieren Bibliothek fuer PID-Controller
PIDController pos_pid; 
//
#include <Servo.h>                                                            // Inkludieren Bibliothek fuer Servo
Servo myServo;
//
#include "arduino_secrets.h" 
//
int schalter_kali =0;                                                         // Schalter fuer Kalibrierung
//
//
volatile long int encoder_pos = 0;
int akt_encoder_pos = 0;
//
char incomingByte;                                                            // Eingehende Bytes fuer Trigger Serial Monitor
//
char ssid[] = "SECRET_SSID";
char pass[] = "SECRET_PASS";
int keyIndex = 0;
int status = WL_IDLE_STATUS;
//
WiFiServer server(80);
//
int motor_value = 255;                                                        // Motor-Wert
unsigned int integerValue[]={1000,2000};                                      // Max.-Wert ist 65535
unsigned long start0;                                                         // Startwert fuer millis() 
unsigned long start1;                                                         // Startwert fuer millis()
unsigned long start2;                                                         // Startwert fuer millis()
unsigned long start3;                                                         // Startwert fuer millis()
//
//
//
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//        VOID SETUP
//
//
//  0.)
void setup() {
//    
Serial.begin(9600);                                                           // Starten des Serial Monitors mit Baudrate 9600 
//
  while (!Serial) {                                                           //Warten, bis die serielle Schnittstelle verbunden ist
  ;                             
  }
//

if (WiFi.status() == WL_NO_MODULE) {                                          // Wenn die Kommunikation mit dem WiFi-Modul fehltschlägt, dann Meldung
  Serial.println("Communication with WiFi module failed!");
  while (true);
 } 
//
String fv = WiFi.firmwareVersion();
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {                                      // Wenn die aktuelle Firmware-Version veraltet ist, dann Meldung, dies zu beheben
    Serial.println("Please upgrade the firmware");
  }
//
while (status != WL_CONNECTED) {                                              // Wenn Kommunikation mit dem WiFi-Modul erfolgreich etabliert, dann Meldungen zu WFi ausgeben
  Serial.print("Attempting to connect to SSID: ");
  Serial.println(ssid);
  status = WiFi.begin(ssid, pass);
  delay(10000); 
  }  
//
server.begin();                                                               // start listening for incoming connections (start listening for clients) 
printWifiStatus();
//
myServo.attach(6);                                                            // Servo wird auf PIN 6 gelegt
pinMode(2, INPUT);                                                            // PIN 2 ist ein INPUT (A-Signal Encoder)
pinMode(3, INPUT);                                                            // PIN 3 ist ein INPUT (B-Signal Encoder)
pinMode(5, INPUT);                                                            // PIN 5 ist ein INPUT (Interrupt-PIN fuer Speicherung Pos.1, siehe Ablaufplan oben)
pinMode(9, OUTPUT);                                                           // PIN 9 ist ein OUTPUT (POWER DC-MOTOR fuer Steuergeraet)
pinMode(10, OUTPUT);                                                          // PIN 10 ist ein OUTPUT (POWER DC-MOTOR fuer Steuergeraet)
pinMode(11,OUTPUT);                                                           // PIN 11 ist ein OUTPUT fuer Kontrolllampe (Motor dreht sich nicht)
pinMode(12,OUTPUT);                                                           // PIN 12 ist ein OUTPUT fuer Kontrolllampe (Motor dreht sich gegen den Uhrzeigersinn)
pinMode(13,OUTPUT);                                                           // PIN 13 ist ein OUTPUT fuer Kontrolllampe (Motor dreht sich im Uhrzeigernsinn)
//
attachInterrupt(digitalPinToInterrupt(2), encoder, RISING);                   // Interrupt fuer DC-MOTOR-REGELUNG
attachInterrupt(digitalPinToInterrupt(5), schalter, RISING);                  // Interrupt fuer Speicherung Pos.1, siehe Ablaufplan oben
//
pos_pid.begin();                                                              // Beginn PID   
pos_pid.tune(15, 0, 2000);                                                    // Tuning Anteile P I D 
pos_pid.limit(-255, 255);                                                     // Grenzen Motor-Wert
}
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//        VOID LOOP
//
...
...
...

Ja.....super.
Du kapierst nix.