- 3D-Druck Einstieg und Tipps         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 32

Thema: RN-XV WiFly Modul von Sparkfun

  1. #11
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    habe heute etwas mit dem WiFly gespielt. Im Manual ist angegeben, dass man es als HTML Client einstellen kann, der Daten sowohl an einen web server senden, als auch vom web server abrufen kann. Habe mir hierzu extra den Apache Server installiert. Habe aber keine Verbindung zustande gebracht.

    Umgekehrt kann man aber mit einem web browser Daten vom WiFly abrufen. Im Manual ist hierzu nicht´s angegeben. Das WiFly läßt sich aber als Server konfigurieren. Als IP Protokol muß man HTTP und TCP aktivieren (set ip protocol 1) und die Übertragung des header einstellen (z.B. set optio format 1). Dann läßt sich z.B. mit dem IE Explorer über IP:Port eine Verbindung zum WiFly herstellen. Je nach Einstellung sendet das WiFly z.B. wiederholt den Header, die Eingaben am Uart, oder die Sensordaten von den Ports. Wüßte aber nicht wie man mit dem IE Explorer Daten oder Abfragen an das WiFly schicken kann. Anbei ein screenshot der zeigt wie die Daten am IE Explorer ausgegeben werden. Wahrscheinlich läßt sich das WiFly zu einem webserver ausbauen, wenn man ausreichende Kenntisse über HTTP hat. Ansonsten ist die Datenübertragung mit einem Terminalprogramm wie dem Tara Term praktikabler.


    Wünsche Allen ein gutes neues Jahr!

    Christian

    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken WiFly HTTP.jpg  
    Geändert von Christian H (31.12.2012 um 20:39 Uhr)

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    Hallo Leute,

    war ein langer Kampf, aber jetzt habe ich es geschafft das WiFly als WebServer einzurichten. WiFly schickt im Sekundentakt Daten an den Client (Firefox besser als IExplorer). Und vom Client können Daten ans WiFly geschickt werden. Das Programm ist in einem ATmega32, der über UART mit dem WiFly verbunden ist. D.h. im WiFly sind nur wenige Einstellungen zu machen. Die website ist im ATmega gespeichert und könnte nach Bedarf angepaßt werden.

    Um überhaupt zu sehen was zwischen Client und Server abläuft, habe ich mit VB6 ein Programm geschrieben um den Datenaustausch zu verfolgen s.u.. Einiges aus dem header kann man streichen. Im wesentlichen läuft folgendes ab:
    Client (IExplorer) stellt TCP Verbindung mit webServer (Port 80) her:
    Client an Server: GET / HTTP/1.1 oder z.B: GET /start.htm oder GET /WiFly.gif je nachdem was gefragt ist. Weiteres ohne Belang.
    Server muß an Client antworten:
    HTTP/1.1 200 OK '+chr(13)+chr(10)
    Accept-Ranges: bytes '+chr(13)+chr(10)
    Content-Length: 2263 '+chr(13)+chr(10)+chr(13)+chr(10)
    Daten

    'Content-Length muß genau der Länge der folgenden Daten entsprechen

    Die Daten sind z.B: HTML. Die Seite die an den Client geht habe ich mit 3 Frames versehen. 1.Frame:Überschrift. 2. Frame Daten an den Client mit laufender aktualisierung. 3. Frame um Daten vom Client ans WiFly zu schicken.

    Für Interessierte hier der kompletten Code:
    Code:
     
    $regfile = "m32def.dat"
    $crystal = 4000000
    Dim Anfrage As String * 255
    Dim An$ As String * 255
    Dim A1$ As String * 255
    Dim B1$ As String * 255
    Dim C1$ As String * 255
    Dim D1$ As String * 200
    Dim Mes1 As String * 10
    Dim Mes2 As String * 10
    Dim Mes3 As String * 10
    Dim Mes4 As String * 10
    Dim Ende As String * 4
    Dim Header As String * 50
    Dim I As Integer , Ii As Integer , Iii As Byte , I4 As Integer , I1 As Integer , I2 As Byte , I3 As Byte , I5 As Byte , Zeit As Integer , Ta As Integer
    $baud = 19200
    Echo Off
    Config Timer0 = Timer , Prescale = 1024
    On Timer0 Zeiten
    Enable Interrupts
    Enable Timer0
    Start Timer0
     
     Header = "HTTP/1.1 200 OK" + Chr(13) + Chr(10)
     Header = Header + "Accept-Ranges: bytes" + Chr(13) + Chr(10)
    
     A1$ = "<html><frameset rows=5,15,10>"
     A1$ = A1$ + "<frame src=start.htm name=start><frame src=daten.htm name=Daten><frame src=kont.htm Name=Kommando>"
     A1$ = A1$ + "<noframes>Browser muß Frames unterstützen</noframes>"
     A1$ = A1$ + "</frameset></html>"
    D1$ = "<html><H1>Es klappt! der WiFlyServer ist online</H1></html>"
    
     Do
     Input Anfrage
     I1 = Instr(anfrage , "GET")                                'nur Inputs mit GET interessieren
     If I1 > 0 Then
      Mes1 = "06.01.2013" : Mes3 = "Sensor1"                    'Mes2 <> Zeit 
      I1 = Instr(anfrage , "eg5=")                              '>> Daten vom Client ans WiFly
      If I1 > 0 Then
       I2 = Instr(i1 , Anfrage , " ") : I3 = Instr(i1 , Anfrage , "%")
       If I3 < I2 And I3 <> 0 Then I2 = I3
       I1 = I1 + 4 : I2 = I2 - I1
       Mes4 = Mid(anfrage , I1 , I2)
      End If
     B1$ = "<meta http-equiv=refresh content=1><html>"          '>> Frame wird jede sec  aufgerufen
     B1$ = B1$ + "<P><Input Name=eg1 Size=10 Value=" + Mes1 + ">"
     B1$ = B1$ + "<P><Input Name=eg2 Size=10 Value=" + Mes2 + ">"
     B1$ = B1$ + "<P><Input Name=eg3 Size=10 Value=" + Mes3 + ">"
     B1$ = B1$ + "<P><Input Name=Eg4 Size=10 Value=" + Mes4 + "></Html>"
    
     C1$ = "<html><form><P><Input Name=eg5 Size=10 Value=" + Mes4 + ">"
     C1$ = C1$ + "<P><input type=submit value=send></form></html>"
    
     An$ = A1$
     I1 = Instr(anfrage , "daten.htm") : If I1 > 0 Then An$ = B1$
     I1 = Instr(anfrage , "kont.htm") : If I1 > 0 Then An$ = C1$
     I1 = Instr(anfrage , "start.htm") : If I1 > 0 Then An$ = D1$
     I4 = Len(An$)                                              'BitLänge muß exakt stimmen
     Print Header;
     Print "Content-Length: " + Str(i4) + Chr(13) + Chr(10) + Chr(13) + Chr(10);
     Print An$;
     Ta = Zeit : Ta = Ta + 50                                   'für Timeout s.u. 50  entspr. etwa 2 sec
    End If
    Loop
    End
    
    Zeiten:
    Zeit = Zeit + 1 : Mes2 = Str(zeit)
    If Zeit > Ta Then
        Ta = Zeit + 300 : Print "*CLOS*";                     ' falls länger als 2 sec keine Verbindung
    End If
    Return
    
    'Einstellungen für WiFly:
    'Set UART Baudrate 19200
    'Set Comm Remote = 0
    'Set Ip Protocol = 3   
    'Set IP localport 80
    


    Alles hat mich einige Zeit gekostet. Wollte zu Beginn z.B. eine .gif Datei anhängen. Hat Stunden gedauert bis ich gerafft habe, dass Bascom einen bug hat und CHR(0) nicht kennt. Dann stellt der IExplorer nicht alle Frames zusammen dar (ist wohl ein Timing-Problem). Mit Firefox funktioniert´s aber (ggf. muß man einen frame aktualisieren).

    Hoffe, die Infos sind für einige die mit WiFly arbeiten hilfreich. Deren Meinung hierzu würde mich natürlich interessieren. Habe mich gewundert, dass im Manual nicht´s hierüber zu finden war, obwohl das doch der Dreh-und Angelpunkt ist um mit dem WiFly und IExplorer zu arbeiten.
    Immer noch kommt es aber zu Ladefehler. Da ist noch Luft nach oben. Bin für jeden Tip dankbar!


    Gute Nacht

    Christian


    P.S.
    Die fehlerhafte Darstellung im Internet Explorer liegt wohl an den Sicherheits-Einstellungen >>http://www.ehow.com/how_7189333_enab...indows-xp.html . Kann das aber erst am Mittwoch ausprobieren.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken screenshot WiFly Webserver.JPG  
    Angehängte Dateien Angehängte Dateien
    Geändert von Christian H (07.01.2013 um 11:39 Uhr)

  3. #13
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260

    Update für WiFly-Server

    Hallo

    habe jetzt das Programm für den WiFly-Server noch etwas geändert. Frames sind zwischenzeitlich wohl out. Mit "Eingebettete Frames" <iframe> läuft das Programm aber tadellos, am besten mit dem Firefox. Habe das Programm auch noch etwas gestrafft und Internetzeit und Feldstärkeanzeige eingebaut.
    Code:
    $regfile = "m32def.dat"
    $crystal = 4000000
    Dim An$ As String * 255
    Dim Mes1 As String * 255
    Dim Mes2 As String * 255
    Dim Mes3 As String * 255
    Dim Mes4 As String * 255
    Dim Header As String * 50
    Dim I1 As Byte , I2 As Byte , I3 As Byte , I4 As Byte , Zeit As Integer , Ta As Integer
    Declare Sub Wifly
    Config Timer0 = Timer , Prescale = 1024
    On Timer0 Zeiten
    Enable Interrupts
    Echo Off
    $baud = 19200
    
    Print "$$$" ;    '
    Waitms 300
    Print "time" ; Chr(13);
    Waitms 500
    Print "show t" ; Chr(13);
    While Instr(mes1 , "Time") = 0
      Input Mes1      ' holt Zeit aus Internet
    Wend
    Print "show rssi" ; Chr(13);
    While Instr(mes2 , "RSSI") = 0
      Input Mes2        'Feldstärke
    Wend
    Print "exit" ; Chr(13);
    
    Enable Timer0
    Start Timer0
    
     Header = "HTTP/1.1 200 OK" + Chr(13) + Chr(10)
     Header = Header + "Accept-Ranges: bytes" + Chr(13) + Chr(10)
    
    Do
     '  Mes1 = Zeit Mes2=RSSI Mes3=timer Mes3= webbrowser an WiFly
      Wifly
    Loop
    End
    
    Sub Wifly
     While Ischarwaiting() = 1
     Input An$
      I1 = Instr(an$ , "GET")     'nur Inputs mit GET interessant
      If I1 > 0 Then
       I1 = Instr(an$ , "GET /?eg1=")   '>> Daten vom Client ans WiFly
       If I1 > 0 Then
        I1 = I1 + 10 : I2 = Instr(i1 , An$ , " ") : I3 = Instr(i1 , An$ , "%")
        If I3 < I2 And I3 > 0 Then I2 = I3
        I2 = I2 - I1
        Mes4 = Mid(an$ , I1 , I2) : If I2 = 0 Then Mes4 = ""    'wegen bug in Bascom
       End If
      I1 = Instr(an$ , "d.htm")       ' d.htm Name des eingebetteten Frame
      If I1 = 0 Then
       An$ = "<html><H1>Wifly-Server</H1>"
       An$ = An$ + "<iframe src=d.htm Width=90% Height=200></iframe>"
       An$ = An$ + "<P><form name=u1>send: <Input name=eg1 size=10 value=" + Mes4 + "></form>"
       An$ = An$ + "</html>"
      Else
       An$ = "<meta http-equiv=refresh content=1>"      '>> Seite wird jede sec aufgerufen
       An$ = An$ + "<html>Sensor1=" + Mes1
       An$ = An$ + "<P>Sensor2=" + Mes2
       An$ = An$ + "<P>Sensor3=" + Mes3
       An$ = An$ + "<P>Sensor4=" + Mes4 + "</html>"
      End If
      I2 = Len(an$)                                             'BitLänge muß exakt stimmen
      Print Header + "Content-Length: " + Str(i2) + Chr(13) + Chr(10) + Chr(13) + Chr(10);
      Print An$;
      Ta = Zeit + 50      'für Timeout s.u. 50  entspr. etwa 2 sec
     End If
     Wend
    End Sub
    Zeiten:
      Zeit = Zeit + 1 : Mes3 = Str(zeit)
      '  If Zeit > Ta Then        'timeout besser weglassen
      '    Ta = Zeit + 100        'funktioniert nicht zuverlässg
      '    Print "$$$" ;
      '    Waitms 300
      '    Print "close" ; Chr(13);          ' falls länger als 2 sec keine Verbindung
      '    Print "exit" ; Chr(13); 
      '  End If
    Return
    
    'Einstellungen für WiFly:
    'Set UART Baudrate 19200
    'Set Comm Remote = 0
    'Set Ip Protocol = 3
    Am Montag morgen habe ich erst https://www.roboternetz.de/community...ighlight=wiFly
    entdeckt. Werde mir demnächst ansehen was Arduino+Wifi Shield zu bieten haben. War für mich aber interessant die Lösung weitgehend selbst zu stricken. Vielleicht kann´s der eine oder andere der mit Bascom pogrammiert, verwenden.


    Beste Grüße

    Christian
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken screenshot WiFly Webserver.JPG  
    Geändert von Christian H (19.01.2013 um 11:28 Uhr)

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    04.01.2011
    Beiträge
    18
    Hallo!

    Hab heute auch mein Modul bekommen und wollte es einmal Testen. Meine Steuerung in dem ich das Modul einbauen will hat aber 5V. Reicht da ein einfacher Spannungsteiler aus oder brauche ich da noch einen Levelshifter? Mein Atmega2560 müsste ja 3,3v als High erkennen? Die Baudrate muss nicht all zu hoch sein da ich nicht viele Daten übertrage.

    Pirndi

  5. #15
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    Hallo pirindi,

    ich habe nur einen einfachen Spannungsteiler zwischen ATmega32 und WiFly.

    Christian

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    04.01.2011
    Beiträge
    18
    Wie hast du denn gebaut wenn ich fragen darf? Testen kann ich es mal mit meinem Xmega der hat 3,3v aber für später wäre deine Info sehr nett.
    Atmega TX - Spannungsteiler mit ???k Widerstand - RX Wifi stimmt das so?

    Bin mehr der Mechaniker als der Elektriker

  7. #17
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.05.2006
    Beiträge
    260
    Spannungsteiler aus 3 und 1,8 KOhm. Wie Du schreibst, damit an RX vom WiFly nicht mehr als 3,3 V anliegen. Natürlich 3,3 V Spannungsregler für das WiFly. Will damit das Easyradio von meinem Rasenrobo ersetzen. Funktioniert auch alles problemlos. Nehme dafür das UDP Protokoll und ein selbstgestricktes Programm auf meinem Rechner.

    Die Sache die ich in den letzen beiden posts beschrieben habe, um mit einem webbrowser mit dem WiFly zu kommunizieren, war vorerst nur Spielerei. Ist fast wie mit Kanonen auf Spatzen schießen, da man eine kleine website im ATmega abspeichern muß. Fand´s aber knifflig, insbesondere wenn im Webbrowser laufend die Daten ausgegeben werden sollen und man nebenher Daten auch vom webbrowser zum WiFly schicken will.

    Habe gestern noch mit der timer funktion gespielt. Auch nicht schlecht. Das WiFly holt sich damit die Uhrzeit aus dem Internet und man hat parallel dazu die Verbindung mit dem webbrowser.

    Die Funkmodule Xbee, Easyradio etc. werden´s meiner Meinung nach in Zukunft sehr schwer haben. Allenfalls die Reichweite könnte noch für die Funkmodule sprechen.

    Wozu brauchst Du das WiFly? Willst Du mit webbrowser arbeiten oder hast Du ein extra Programm auf dem Rechner. Programmierst Du mit Bascom oder C? Mich würde auch interessieren was die Arduino-Fraktion mit dem WiFi Shield alles machen kann.

    Gruß

    Christian
    Geändert von Christian H (13.01.2013 um 16:40 Uhr)

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    04.01.2011
    Beiträge
    18
    Ich programmiere in C (aber nicht Arduino). Hab mir einmal eine Aquarien-Steuerung gebastelt da werde ich es mal zum testen einbauen. Zeit abrufen, Daten loggen usw.. da kann man alle Funktionen ganz gut testen

  9. #19
    Neuer Benutzer Öfters hier
    Registriert seit
    04.01.2011
    Beiträge
    18
    Hallo Christian!

    Zu deiner frage Arduino hab das hier gefunden: http://sourceforge.net/projects/arduinowifly/files/
    Eine Fertige lib. Kannst ja mal durchsehen was man da alles machen kann.

    Ich selbst hab mir einen Ringbuffer besorgt und das Modul mal angesteuert. Klappt ganz gut. Jetzt muss ich mal einen Levelshifter bauen und dann auf meinen Mega2560 hängen.

    mfg daniel

  10. #20
    Neuer Benutzer Öfters hier
    Registriert seit
    24.04.2009
    Beiträge
    6
    Hi Christian,

    ich habe mir auch so ein Wlan Modul zugelegt und dank deiner ausführlichen Beschreibungen es auch erfolgreich ins Wlan gebracht.

    Mit µC Programmierung kenn ich mich noch so einigermaßen aus, aber auf dem PC wirds schon sehr eng. Hab mit ach und krach ein Programm in VB geschrieben, das Daten per Bluetooth raus schickt.

    Mich würde brennend dein Programm interressieren, welches du im ersten Beitrag erwähnt hast, mit dem du deine Daten überträgst. Gibt es ne Chance das du das Projekt zur Verfügung stellst ??


    Viele Grüße
    Philipp

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Ähnliche Themen

  1. XBee Adapter Board von Sparkfun?
    Von spelli2001 im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 19.07.2012, 15:44
  2. Ausgangswerte Beschleunigungssensor Sparkfun ADXL322
    Von jevermeister im Forum Sensoren / Sensorik
    Antworten: 11
    Letzter Beitrag: 03.05.2011, 14:52
  3. IR Sensor modul 3 von conrad
    Von Monsta im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 07.02.2010, 19:34
  4. Sparkfun Sammelbestellung, allerlei schönes Zeugs!
    Von Willa im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 6
    Letzter Beitrag: 01.06.2009, 09:00
  5. Sparkfun - Sammelbestellung
    Von flyingcat im Forum Elektronik
    Antworten: 13
    Letzter Beitrag: 01.03.2007, 14:58

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test