Hi! Erstmal kurz zu meiner Projektidee: ICh will auf Basis des Polin AVR NET IO, der RFID Platine von Polin und einem Funkmodul sowie einigen Sensoren eine kleine Homeautomatisierung mit Alarmanlage bauen. Falls das Klappt kommen noch einige features dazu. Grundprinzip (so soll es Funktionieren): AVR NET IO Als Zentrale, hier sind div. Sensoren angeschlossen. das AVR NET IO überträgt alle 5 Sekunden die Daten zu einem Webserver via GET oder POST (HTTP, auf eine Domain => HTTP; DNS; TCP; IP, Ethernet müssen hierfür Implementiert werden) beim Senden der Sensordaten via HTTP an ein PHP script auf dem Server bekommt das NET IO dann eine txt-datei zurück (also wie im Browser gesehen) mit Infos für das NET IO, z.B. Text für das Display im RFID Modul, eine liste von Variablen wie z.B. die Weckzeit für den nächsten Tag, Termine, die im Display gezeigt werden etc. Dann gibt es eben das RFID Modul (ATiny) mit einem Display und einem RS232 out, das für die Zugriffskontrolle zuständig ist: Sendet RFID-Zeichenketten dem anderen Mikrocontroller und bekommt in regelmäßigen abständen texte, die dann im Display gezeigt werden sollen. Jetzt meine Fragen: 1. Wo finde ich Infos darüber, wie ich HTTP, TCP, IP etc. implementieren kann, dass ich Infos via HTTP-GET oder POST an meinen Webserver übertragen kann und die resultierende Datei z.B. im EEPROM Zwischenspeichern kann 2. Wie verbinde ich den ATiny auf dem RFID Board mit dem ATMega auf dem NET-IO, dass diese miteinander Infos wie z.B. den Displaytext austauschen können? 3. KANN ich überhaupt auf dem Polin AVR NEt IO gleichzeitig Daten mit einem anderen Prozessor austauschen und via Netzwerk Daten schicken/empfangen
Hallo, also zum AVR-Net IO kann ich im speziellem nichts zu sagen. Aber was meines erachtens zu probelemen führen kann, ist die HTTP-GET / POST geschichte. So wie ich das verstehe möchtest du einfach "Nur" Daten von a nach b schicken auf einem Webserver. Wobei mir schleierhaft ist, ob der uC nun client oder server sein soll - vll. verstehe ich dich auch falsch. Aber den uC als HTTP-Client zu nutzen - naja ist sehr ungewöhnlich vor allem weil du dann replika (in einer vereinfachten Form) handeln musst. Ansonsten als Server ja ok kann funktionieren, einfache GET und POST geschichten funktionieren - aber den gesamten Funktionsumfang wirst du unter garantie nicht in einem AVR implementiert bekommen. Ansonsten wenns wirklich nur um das transferieren der Daten geht, würde ich wohl ein eigenes Protokoll dafür schreiben, das natürlich über TCP oder halt UDP je nachdem läuft. Hat den vorteil das du kein workaround benötigst wie die text-Datei. Du bist darüber hinaus in der Lage, den Overhead der Daten möglichst gering zu halten - aber auch da musst du genauer schauen was nacher das Bottleneck sein wird - zu 99%iger Sicherheit ists der AVR also musst du den Rechenaufwand moderat halten. Zum zweiten wie du nun den Tiny und den Mega mit einander verbindest - naja das ist dir doch selbst überlassen sprich I2C oder RS232 oder SPI würde sich da anbieten - wenn das RFID Board schon vorgefertigt ist, solltest du mal das DB lesen dort wird bestimmt stehen mit welcher Schnittstelle das ganze angesteuert werden kann. Desweiteren wirst du unter dem folgenden Link mehr über HTTP finden: http://www.ietf.org/rfc/rfc2616.txt Ich hoffe ich konnte dir mit dieser Antwort ein wenig weiterhelfen.
1. In den RFCs, oder du verwendest bestehende Bibliotheken dafür, zB die von Rading. 2. zB mittels UART oder TWI 3. Jein, den Ethernet Teil übernimmt ja der ENC Chip. Hauptproblem dürfte eher das SRAM sein.
Der uC soll Client sein. Ich hab einen webspace, daher ist auch kein anderes Protokoll möglich. Es geht lediglich darum, alle 5 Sekunden eine get Anfrage an den server zu schicken mit den aktuellen Sensorwerten und die Antwort zum Teil auf dem Display darzustellen.
Tobias Keller schrieb: > Der uC soll Client sein. Dann schau Dir, wie schon erwähnt, den TCP/IP Stack von Ulrich Radig an. Und/oder Ethersex. Und die Suche hier im Forum dürfte auch schon ein ganzes Stück weiterhelfen. > Ich hab einen webspace, daher ist auch kein anderes Protokoll möglich. Das geht durchaus. Wenn Du den Webserver als Client benutzt, sogar ohne Änderungen am NET-IO... Volker
Den Stack von Ulrich Radio hab ich mir angeschaut, er hat auch einen HTTP Klienten (Wetterabfrage) implementiert. Jedoch bekomme ich den Radig Server nicht auf den Prozessor, die Datei ist kompiliert 172kb groß, was kann ich hier falsch machen? Ich hab doch sogar Teile des Systems gelöscht (httpd, ntp, 1wire etc) und trotzdem kann ich die Datei irgendwie nicht auf den Mikrocontroller (ATMega32) flashen. Wenn ich es doch noch irgendwie schaffe, dieses Programm auf den Mega32 zu flashen, dann wäre ich schon einen großen schritt weiter. Wenn ich den uC als Server verwende, muss ich aber auch Portforwarding im Router aktivieren und einen dyndns einrichten, damit mein Webspace auch darauf zugreifen kann.
Die Idee ist schlecht. Das Projekt zu klotzig. Was machbar waere... eine abgespeckte Version. Das TCP/IP wird einfacher, wenn die Meldungsgroese kleiner wie der Buffer des Ethernet ist. Dann sendet man einfach Meldungen wie : GET /index.html?S=1234&V=1234 Dann muss man noch den Server dazu bringen diese Anfragen auf die Disk zu schreiben. Was auch immer vom Server zurueck kommt interessiert nicht und wird verworfen. Dh eigentlich braucht man keinen TCP/IP Stack.
ähm, dass ein Webserver eine Anfrage annimmt, braucht man aber das syn ack etc... also braucht man doch TCP, und doch, die Antwort des Servers interessiert, da der Webserver ja das schickt, was dann auf einem Display angezeigt werden soll.
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.