Hallo, ich besitze einen Arduino Uno R2, eine BlinkM MaxM und ein RedFly Shield. Die BlinkM Beispiele funktionieren unter Arduino 0023. In der Version 1.0 nicht mehr, aus diesem Grund hab ich mir ebenfalls die ältere Version der RedFly Shield Software heruntergeladen. Ich habe das Wlan Scan Beispiel gestartet und dieses funktionierte problemlos. Als nächstes wollte ich den Webserver starten. Da ich momentan nicht das bereits bestehende Wlan Netz hier nutzen kann, wollte ich eine AdHoc Verbindung aufbauen. Ich habe mit den join-network Befehlen herumexperimentiert und als ich dann am Netbook das Netzwerk gesehen habe, konnte ich mich verbinden. Allerdings funktionierte die Conn_test Seite nicht. Es erscheint: Start HTTP GET http://192.168.0.30/ und dann passiert nichts mehr, kein Error. Der Text bleibt einfach stehen. Muss ich noch andere Einstellungen treffen? Ich nutze Win7, und auf dem RedFly ist Version 445 installiert. Ziel ist es per WebServer Daten in Empfang zu nehmen, beispielsweise eine Farbe und diese dann an den BlinkM zu übergeben.
RedFly AdHoc Netzwerk
Hier mal noch der Bericht der seriellen Schnittstelle Un AT+RSI_FWVERSION? AT+RSI_BAND=0 AT+RSI_INIT AT+RSI_NUMSCAN=0 AT+RSI_SCAN=0 AT+RSI_NETWORK=IBSS_SEC,1,1 AT+RSI_PSK=12345 AT+RSI_JOIN=test123,0,2 AT+RSI_IPCONF=0,192.168.178.30,255.255.255.0 AT+RSI_LTCP=80
Hallo, Man kann die RedFly-WebServer-Seite auch direkt im Browser aufrufen: http://192.168.178.30 Die conn_test.htm ist nur ein Beispiel um Daten vom RedFly in eine bestehende HTML-Seite einzubinden und den Cross-Site-Schutz zu umgehen. Möglicherweise funktioniert dies nicht auf Grund von Sicherheitseinstellungen oder besteht vielleicht keine Internetverbindung? Gruß Andreas
Ich hab mal im Netzwerk auf Status geklickt. Es besteht keine Internetverbindung während ich mit dem RedFly Shield verbunden bin. Außerdem ist mir aufgefallen, dass bei Empfangenen Bytes eine 0 steht....also scheint die Verbindung doch noch nicht richtig hergestellt zu sein. Ich hab ebenfalls versucht ein AdHoc Netzwerk vom Netbook aus aufzubauen und dann mit dem Shield zu joinen, aber auch danach hat sich nichts geändert.
Hast du schon mal eine normale Verbindung ohne WEP-Verschlüsselung getestet? Was mir gerade auch noch auffällt, bei WEP muss die Passwortlänge genau stimmen. WEP-64bit: 10 Hex-Zeichen und bei WEP-128bit: 26 Hex-Zeichen Welche IP und Netzmaske hat der Netbook? Gruß Andreas
Huhu,
danke für den Tipp ;)
Ich hab gerade vom Netbook aus eine unverschlüsseltes Netzwerk aufgebaut,
per
ret = RedFly.join("Micro", IBSS_JOINER);
konnte ich mich verbinden, dann habe ich im Browser
http://192.168.178.30 eingegeben
und bekam die passende Antwort:
Hello, World!
analog input 0 is 407
analog input 1 is 312
analog input 2 is 272
analog input 3 is 278
analog input 4 is 1023
analog input 5 is 294
Aus wievielen Buchstaben muss das Passwort bestehen um auf 10, oder 26
Hex-Zeichen zu kommen? Ich würde die Verbindung lieber per PW sichern, als
diese offen zu lassen, aber es funktioniert zumindest erstmal.
Vielen Dank,
Martin
Aus 10 bzw. 26 Zeichen im Bereich von 0-9 und A-F, z.B. 1234567890 oder 1234567890ABCDEF1234567890 http://de.wikipedia.org/wiki/Hexadezimalsystem Gruß Andreas
Leider funktioniert das ganze nicht immer konstant. Ich habe es mehrfach wie oben(in meinem letzten Post) beschrieben versucht. Aber nicht immer erscheint die Hello World Seite. Auch wenn diese erscheint und ich auf Tab neu laden klicke, bekomme ich das Problem das auf der Adresse nichts mehr gefunden wird. Es ist dabei egal ob ich ein offenes Netzwerk, oder ein verschlüsseltes nutze.
Das kann passieren wenn man zu viele Anfragen kurz hintereinander sendet und diese nicht vollständig abgearbeitet wurden. Probiere mal die Baudrate höher zusetzen: RedFly.init(115200, HIGH_POWER) Gruß Andreas
So, ich bin jetzt im hausinternen WLAN, es hat gut geklappt das RedFly ins Wlan einzubinden. Allerdings hat das RedFly 2 IP Adressen und es scheint sich mit diesen abzuwechseln. Ich habe daraufhin das Webserver Beispiel gestartet: hier der Text der seriellen Schnittstelle(Netzwerkname und PW habe ich hier geändert). Un AT+RSI_FWVERSION? AT+RSI_BAND=0 AT+RSI_INIT AT+RSI_NUMSCAN=0 AT+RSI_SCAN=0 AT+RSI_NETWORK=INFRASTRUCTURE AT+RSI_PSK=pw AT+RSI_JOIN=name,0,2 AT+RSI_IPCONF=1,0,0 AT+RSI_LTCP=80 Soweit funktioniert alles, aber ich kann mich nicht über den Browser verbinden und auch der Wechsel der IP Adressen wundert mich.
Dann scheint etwas mit dem DHCP nicht richtig zu funktionieren. Vielleicht bekommt das Shield bei einem Verbindungsverlust oder beim DHCP Renewal eine neue IP vom DHCP-Server zugewiesen. Bei einigen DHCP-Servern kann man einstellen, dass bestimmte MAC-Adressen immer die selbe IP bekommen... Gruß Andreas
Hi, ich habe das RedFly mit dem Heimnetz verbunden. Jetzt ist mein Problem, dass das RedFly automatisch eine IP Adresse bekommt, diese muss ich wissen, um per Telnet auf das Shield zugreifen zu können, ist es möglich die IP über die serielle Schnittstelle auszugeben, falls ja, welcher Befehl führt dies aus? Gruß, Martin Fröhner
Ich habe eine neue Funktion getlocalip(uint8_t *ip) zum Abfragen der IP mit in die Lib v0.10 Beta eingebaut. Gruß Andreas
Hi, ich habe mal noch eine kurze Verständnis-Frage. Ich habe eben den WebServer Socket Sketch geladen, immer wenn ich den Serial Monitor starte, bzw. beende erlöschen die beiden LEDs auf dem RedFly, ist dieses Verhalten normal? Gruß, Martin Fröhner Ich wünsche dir Andreas ein frohes und besinnliches Weihnachtsfest.
Beim Öffnen des Serial Monitors in der Arduino Software, wird der Arduino automatisch resettet und dadurch wird das RedFly ebenfalls neugestartet. Gruß Andreas
Danke.
Heute hat auch endlich das RedFly vollständig funktioniert. Ich hatte
vorher einfach eine falsche IP-Adresse eingestellt. Der WLAN Scan, sowie
der Server laufen super.
Ich hab folgenden Code hinzugefügt:
[code]
server.println_P(PSTR("<form action=\"input_text.htm\">"));
server.println_P(PSTR("<p>Vorname:<br><input name=\"vorname\"
type=\"text\" size=\"30\" maxlength=\"30\"></p>"));
server.println_P(PSTR("<p>Zuname:<br><input name=\"zuname\"
type=\"text\" size=\"30\" maxlength=\"40\"></p>"));
server.println_P(PSTR("</form>"));
[\code]
Als Ergebnis bekomme ich 2 Textfelder, die ich mit Vor und Zuname füllen
kann. Nur wie kann ich das ganze auslesen? Bin gerade in der Doku am
suchen, hab aber noch nichts gefunden.
P.S.: Das RedFly ist ein tolles Produkt und ich freue mich das es jetzt
endlich so gut funktioniert.
So,
hab nochmal bisschen was geändert:
[code]
server.println_P(PSTR("<form action=\"/cgi-bin/comments.pl\" method=\"get\"
accept-charset=\"ISO-8859-1\">"));
server.println_P(PSTR("<textarea name=\"Text\" rows=\"5\"
cols=\"50\"></textarea></p>"));
server.println_P(PSTR("<p><input type=\"submit\"
value=\"Senden\"></p>"));
server.println_P(PSTR("</form>"));
[\code]
Jetzt hab ich ein Eingabefeld mit Knopf um die Daten zu senden, dass kann
ich per GET oder POST tun. Das Problem wo die Daten genau hingehen, bzw.
wie ich heran komme, besteht weiterhin.
Gruß,
Martin


