Hat irgendjmd eine Idee wie man das RedFly WLAN Modul auf einen Mega steckt (also wieherum das drauf muss)?
Kann da keine Anleitung dazu finden; hab das neue Layout des RedFly!
Anbei mal Bilder wie ich die Headerpins verlötet habe (dazu gabs Bilder im Netz)...
Ich versuche nun gerade HTTP GET/POST Requests zu empfangen.
Code:
#include <RedFly.h>
#include <RedFlyServer.h>
byte ip[4]; // set via DHCP
byte netmask[4]; // set via DH
//initialize the server library with the port
//you want to use (port 80 is default for HTTP)
RedFlyServer server(80);
//serial format: 9600 Baud, 8N2
void debugout(char *s) {
RedFly.disable();
Serial.print(s);
RedFly.enable();
}
void debugoutln(char *s){
RedFly.disable();
Serial.println(s);
RedFly.enable();
}
void setup()
{
uint8_t ret;
//init the WiFi module on the shield
ret = RedFly.init();
if(ret)
{
debugoutln("INIT ERR"); //there are problems with the communication between the Arduino and the RedFly
}
else
{
//scan for wireless networks (must be run before join command)
RedFly.scan();
//join network
ret = RedFly.join("x", "x", INFRASTRUCTURE);
//debugoutln(ret);
if(ret)
{
debugoutln("JOIN ERR");
for(;;); //do nothing forevermore
}
else
{
//set ip config
ret = RedFly.begin(); //DHCP
if(ret)
{
debugoutln("BEGIN ERR");
RedFly.disconnect();
for(;;); //do nothing forevermore
}
else
{
RedFly.getlocalip(ip); //receive shield IP in case of DHCP/Auto-IP
server.begin();
}
}
}
}
void loop()
{
//listen for incoming clients
if(int len = server.available())
{
debugoutln("Received data...");
char command[len];
uint8_t *buffer;
int ret = server.read(buffer, len);
debugoutln("Printing received data...");
sprintf_P(command, PSTR("%s\n"), buffer);
debugoutln(command);
server.flush();
}
else if(!server.connected()) //listening port still open?
{
server.stop(); //stop and reset server
server.begin(); //start server
}
}
Der Scan und das Join funktionieren.
Man sieht auch dass Daten die per HTTP verschickt werden ankommen, denn ich sehe die Ausgabe "Received data..." und in der n. Zeile "Printing received data...".
Doch danach kommt nicht der GET/POST Request wie ich es erwarten würde, sondern eine Leerzeile; nada...
Ohne was geändert zu haben (nur etwas gewartet und paar mal neu hochgeladen) wirs nun noch schlimmer:
Ausgabe wie oben; das ganze hängt sich nun aber in er Zeile vor JOIN ERR auf; das JOIN ERR kommt nichtmal mehr.
Version 014.
Nachdem ich nun alle Stecker mal gezogen und eine Weile gewartet habe bekomme ich zumindest wieder eine Connection; aber Daten auslesen immer noch Fehlanzeige.
Kryptische Zeichen oder garnichts
Bei Auftreten der JOIN ERR bekomme ich als Errorcode übrigens abwechselnden einen 253 (Deregistering from AP) und 235 (Auth Error).
Wenn ich dann alles mögliche Resette tut es wieder womit klar ist dass es kein Problem mit den Credentials sein kann.
Es gibt wohl nich mehr Leute mit solchen JOIN ERR Problemen; extrem nervig.
Das Webserver Sample funktioniert übrigens auch nicht.
Man kann den Server auf dem Shield zwar zum Laufen bringen; bei dem mitkommenden HTML zur Ausführung auf dem PC kommt danach aber nur ERROR als Response.
Die IP die ich in besagtes HTML EIngabefeld eingebe stimmt 100%.
Wenn nichtmal das Sample geht wird es langsam schwierig.
Leider nicht.
Mein WLAN Pwd hat eine Länge von <30 zeichen.
MAC Filter hab ich auch bereits abgeschltet.
WPA+WPA2 ist verfügbar.
Das Problem welches ich habe ist exakt das im zweiten Thread beschriebene.
Auch ich nutze eine Fritzbox.
Gleiches Verhalten und auch keine Lösung.
Da wir aber 2 Smartphones, 1 Tablet und 2 Laptops regelmäßig am Netz haben gehe ich nicht von einem Problem der Fritzbox aus.
Alle Lösungsvorschläge aus dem Thread (delays setzen, etc. probiert - keine Besserung; ganz selten, bei ca. 1 von 10 Versuchen geht es mal)...
Weiterhin öfter 235 Fehler als Erfolg.
Keine Lust mehr - 24h verballert und 65 EUR bezahlt - super