mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ENC28J60 PIC24 Daten an Server übertragen


Autor: Sascha P. (poggie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI Jungs,

ich habe mal wieder ein neues Projekt.
Ich muss/will Daten die ich mit einem PIC24FJ128 lese (z.B vom ADC / 8 
Kanäle - 50Hz Sample Rate) an einen Server senden.

Dieser Server soll die Daten z.b als csv datei speichern.
(Später kommt noch ein bisschen Datenverarbeitung auf dem Server hinzu)

Für die Netzwerkanbindung wird der ENC28J60 von Microchip verwendet.

Was müsste ich im uP tun und was ist Serverseitig notwendig.


Nehmen wir erst einmal ein einfaches Beispiel: der server hängt lokal 
bei mir im LAN und hat die FESTE IP 192.168.2.xxx
Jetzt stelle ich mir das so vor, das meine Hardware sich beim Server 
"anmeldet" und wenn ich einen Knopf an der Hardware drücke anfängt die 
Eingänge zu lesen und diese dann an den Server zu übertragen.
Serverseitig werden die Daten gelesen und gespeichert.
Das ganze muss so aufgebaut werden das ich von mehreren Units die Daten 
erfassen kann - also muss jede Hardware eine ID mitsenden.
Evtl. soll auf dem Server hinterher ein JAVA programm laufen was die 
Daten auch anzeigen kann.

Sehr ihr irgendwo probleme?

PS: Ich habe schon einige Projekte mit PICs und AVRs gemacht, aber im 
Netzwerk bin ich noch ein bisschen schwach. Please HELP :)


Danke
Sascha

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfacheste Variante: Der µC brüllt per UDP Broadcast zyklisch seine 
Messergebnisse raus, ob ihm nun jemand zuhört oder nicht. Routing-fähig 
ist das nicht, aber so lösen sich 95% des TCP/IP-Stacks in Luft auf, 
denn alles was du dazu tun musst ist einen solchen UDP Frame mit 
Sensor-ID und Messdatenpaket zusammenzustoppeln und dem ENC zu 
übergeben.

Autor: Sascha P. (poggie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> ob ihm nun jemand zuhört oder nicht.



Hi A.K
vielen Dank für deine schnelle antwort

Ok. das stellt insoweit ein problem da, das ich eigentlich sicher 
stellen muss das wenn eine Verbindung zum Server besteht die Daten auch 
dort ankommen

Autor: heinzhorst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal lade dir den TCP/IP-Stack von Microchip herunter und sieh dir 
die enthaltenen Beispielprojekte an. Die kannst du gut als Grundlage für 
dein Projekt verwenden. Und dann natürlich TCP verwenden und nicht UDP. 
Das mit dem Broadcast halte ich für keine gute Lösung, weil du dann 
keine Gewissheit hast, ob die Daten ankommen oder nicht. Da der Stack 
bereits fertig ist hält sich der Arbeitsaufwand damit in Grenzen und er 
muss sich garnicht zu 95% in Luft auflösen.

Autor: Sascha P. (poggie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die MCHP Application Library ist mir bekannt.
Allerdings muss ich mich dort noch weiter einarbeiten,

Sehe ich das richtig das ich mit TCPOpen() eine Verbindung zu meinem 
"Server" aufbauen kann und wenn der Server erreichbar ist mit TCPPut() 
meine Daten senden kann?

Da ich ja dauerhaft Daten übertragen will brauche ich doch nur einmal 
eine Verbindung aufbauen und kann dann immer neue Daten senden(es sei 
denn der Buffer ist voll). Im Falle einer "störung"/TCPDiconnect müsste 
ich dann wieder eine neue Verbindung aufbauen.

Was muss ich denn dann Serverseitig machen?
Ich würde später gerne ein Java programm schreiben/verwenden welches 
eine Verbindung akzeptieren und die Daten in einer Datei speichern kann. 
Kennt ihr Software die sowas zum testen schon kann? (Alternativ erst mal 
anzeigen)

Also ich habe x Geräte die sich alle, sobald sie eine Netzwerk 
verbindung haben beim Server anmelden und dann ihre Daten dauerhaft 
übertragen.

Habt ihr noch nen paar Tips wie ich das am besten realisieren kann?

PS: was macht den das Serial-to-ethernet bridge beispiel? kann man das 
vielleicht verwenden?


Danke für die Hilfe soweit schon einmal
 Sascha

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.