- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 32

Thema: RN-XV WiFly Modul von Sparkfun

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #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 10:39 Uhr)

Ähnliche Themen

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

Berechtigungen

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

Solar Speicher und Akkus Tests