Guten Tag zusammen, mich interessiert aktuell wie denn der generelle Ablauf einer Verbindung zwischen PC Software und µC über Netzwerk stattfindet? Konkret möchte ich mir ein kleines Tool bastelen (mit C# am Windows PC) welches mir Daten aufs Netzwerk schickt, von einem µC angenommen wird der diese Daten entpackt und auf den I2C Bus ausgibt. Selbstverständlich soll auch ein Lesen möglich sein. Nun ist es so dass ich in C# und C jeweils Grundlagen besitze, sprich ich kann auf beiden Welten kleine Programme schreiben und I2C bzw. TWI Verbindungen laufen auch stabil. Was mir allerdings fehlt ist das Verständnis wie die Daten eingelesen und ausgegeben werden. Vielleicht könnt ihr mir ein wenig helfen? Danke :) Gruß Matthias
Nimm einen Netzwerk-UART Adapter wie nen XPORT. Damit kannst du dann über einen VCP Daten vom PC-Programm verschicken. Gruß JackFrost
Sieht verlockend aus... allerdings ziemlich teuer oO
Mittlerweile scheint der ESP8266 Preis/Leistungsmäßig auf jeden Fall der beste Kandidat für sowas zu sein, noch vor Ethernetboards wie dem AVR NET-IO von Pollin.
für 'mit Kabel' gibts auch immer noch den ENC28J60, als fertiges Modul für ca. 7-10€ von amazon/ebay oder noch billiger beim Ali. Dann gibts noch modernere Variant von WizNet, die sind aber auch wieder teurer.
1 | String tmp; |
2 | |
3 | #define BAUD_RATE 9600
|
4 | |
5 | void setup() { |
6 | Serial.begin(BAUD_RATE); |
7 | Serial1.begin(BAUD_RATE); |
8 | while (!Serial) { |
9 | ; // wait for serial port to connect. Needed for Leonardo only |
10 | }
|
11 | Serial.println("Hello Cactus Micro!"); |
12 | |
13 | // Enable esp8266
|
14 | pinMode(13, OUTPUT); |
15 | digitalWrite(13, HIGH); |
16 | };
|
17 | |
18 | void loop() { |
19 | |
20 | while (Serial1.available() > 0) { |
21 | tmp += char(Serial1.read()); |
22 | delay(2); |
23 | }
|
24 | |
25 | if(tmp.length() > 0) { |
26 | Serial.println(tmp); |
27 | tmp = ""; |
28 | }
|
29 | |
30 | if (Serial.available()) { |
31 | Serial1.write(Serial.read()); |
32 | }
|
33 | }
|
Quelle https://github.com/AprilBrother/cactus-micro-r2/blob/master/libraries/CactusMicro/examples/hardwareSerialMonitor/hardwareSerialMonitor.ino bildet dir eine brücke zwischen einem ESP8266 und einer seriellen usb schnittstelle ab... das ding verhält sich letztendlich wie eine serielle schnittstelle also eher kein hexenwerk ... ^^ http://wiki.aprbrother.com/wiki/Cactus_Micro_R2_Tutorial http://www.esp8266.com/
:
Bearbeitet durch User
Matthias M. schrieb: > mich interessiert aktuell wie denn der generelle Ablauf einer Verbindung > zwischen PC Software und µC über Netzwerk stattfindet? Hallo, es gibt keinen "generellen Ablauf". Die Frage lautet: Wie möchtest du das die Verbindung abläuft. Frage 1: Welche Art von Netzwerk - Ethernet - Seriell: RS232 /RS 485 ... - .... Frage 2: - Drathlos - Kabelgebunden Frage 3: Wir nehmen mal Ethernet basiert: - TCP/IP - UDP - OPC -OPC UA im einfachsten Fall hier wohl: TCP/IP oder UDP Vorschlag TIP: Es gab im Rahmen von C# Tutorials mal ein Beispiel für ein TCP/IP oder UDP basiertes Chatprogramm Als Einstieg gut geeignet. Es gibt auch µC seitig genügend Tutorials (Senden <->Empangen). Gruß
Danke für die vielen Tips erstmal. Kurze Frage noch zum XPort: So ganz verstanden hab ich es leider noch nicht. Im Xport steckt ein 32bit µC um den ich mich im Idealfall nicht sonderlich kümmere, richtig? Sprich ich stell meine IP über das Webinterface ein und der Xport schiebt mir dann die empfangenen Daten vom Ethernet TCP Stack auf den RS485 Bus in meinen µC. Dieser µC wiederum nimmt die Daten und packt Sie auf den I2C Bus. Aber wie bringe ich die Daten von meiner Software am PC auf den Ethernet Bus?
Da PC's keine freie externe I2C Schnittstelle haben und diese ohnehin nur für sehr kurze Leitungen vorgesehen sind, rate ich zu einer anderen Schnittstelle. Zum Beispiel RS232, RS485 oder Ethernet. Als Anregung, wie man sowas machen kann, schau Dir mal die zahlreichen NET-IO Projekte an. Meins findest du hier: http://stefanfrings.de/net_io/index.html Ich bevorzuge Textbasierte Kommunikationsprotokolle, weil man die ohne großen Aufwand mitlesen und manuell prüfen kann. Die Fehlersuche gestaltet sich auf deise Weise recht einfach. Vor allem dann, wenn man die Kommandos auch noch manuell absetzen kann.
> Sprich ich stell meine IP über das Webinterface ein und der Xport > schiebt mir dann die empfangenen Daten vom Ethernet TCP Stack auf > den RS485 Bus in meinen µC. Im Prinzip ja. Über das Webinterface konfigurierst du den Xport. Anschließend öffnest du mit deinem PC Programm einen IP-Socket. Die Daten werden dann transparent bidirektional zum Seriellen port durchgereicht. Aus Sicht der PC Anwendung ist es so, als hättest du eine serielle Verbindung über RS232 aufgebaut. Nur dass das Timing ein bisschen anders ist und du natürlich für den Verbindungsaufbau selbst andere Befehle brauchst. Bei Digicom findest du ähnliche Produkte unter dem namen "Digi Connect". Sie sind wirklich einfach anzuwenden - nur leider teuer. Weniger zuverlässig, dafür aber sehr billig und noch einfacher anzuwenden sind Bluetooth Module, zum Beispiel BTM-222, HC-05 oder HC-06. Da bist du dann schon ab 5 Euro dabei. > Aber wie bringe ich die Daten von meiner Software am PC auf den > Ethernet Bus? Na deine Software muss eine Verbindung über Ethernet aufbauen, nennt man auch IP-Socket. Siehe http://www.codeplanet.eu/tutorials/csharp/4-tcp-ip-socket-programmierung-in-csharp.html
Hallo, ja der ESP8266 ist preislich schon ein Hammer,... was der kostet dafür bekommt man nicht mal das Kabel mit den Steckern. Nachteil, es ist Funk und wenn man kein 2tes Netz hat dann hängt das Ding mit am Internet,... . Für eine kleine Applikation, nimm einen Arduino oder Raspberry Pi,... ist man ratz fatz fertig. Grüße Sebastian
solange man keine portweiterleitung einrichtet, macht das garnix ob ein esp8266 es am inet hängt... (ein router wird eh vorhanden sein...) die gibt es auch von conrad/franzis gleich mit nano dran für 25€ das stück http://iot.fkainka.de/technische-daten die dinger funktionieren einfach und das netzwerk wird wie jedes andere streamobjekt angesprochen (seriel ect...) blätter mal den advendskalender durch... der zeigt es eigentlich schritt für schritt wie die kommunikation mit anderen teilnehmern läuft... das trau ich einem 13jährigen problemlos zu... allerdings will ich wohl nochmal auf die Logo! http://w3.siemens.com/mcms/programmable-logic-controller/de/logikmodul-logo/seiten/produktneuheit.aspx hinweisen, die im produktiven umfeld wohl keine schlecht wahl wäre...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.