Hallo, ich bräuchte kurz Hilfe bei folgenden Vorhaben: - AVR ist im Dauerbetrieb und sammelt Daten - er schickt diese per http request alle 5 minuten ins Netzwerk (an meine Homepage im Netz) - Kommunikation soll unidirektional sein (keine Antwort nötig) D.h. der AVR schickt dann soetwas in der Art an den Router: "www.meineAngegegebenenDomain/data.php?in=23&in21=345" Wie realisiere ich das am einfachsten, ohne einen IP-Stack programmieren zu müssen? Eine fertige Lib wäre gut. Es sollte möglichst ein AVR(mega) sein, da ich über STK500 flashen will. Ideal wäre also dann zB ein ATmega8535 + irgendein_Netzwerk_Controller Da hier keine großen Daten übertragen werden sollen, ist SPI Anbindung sinnvoll. ENC28J60 zieht mir aber zu viel Strom. Gibts was anderes (lötbares) ?
ESP8266 kann das alles in einem und ist recht sparsam. Sicher dass du das so machen willst, ohne Anmeldung, API Key o.ä.?
Arne schrieb: > ich bräuchte kurz Hilfe bei folgenden Vorhaben: > > - AVR ist im Dauerbetrieb und sammelt Daten > - er schickt diese per http request alle 5 minuten ins Netzwerk (an > meine Homepage im Netz) > - Kommunikation soll unidirektional sein (keine Antwort nötig) Du hast sowas von keine Ahnung, dass es schon weh tut. Die Kommunikation einer TCP-Verbindung (und darauf setzt HTTP auf) kann niemals unidirektional sein, denn schon der Aufbau der Verbindung benötigt beide Datenrichtungen. Suchbegriffe zum Googlen: TCP, SYN, ACK. Davon abgesehen: bevor diese Verbindung überhaupt aufgebaut werden kann, muss erstmal die Zieladresse der Verbindung aus dem DNS-Namen ermittelt werden. Das läuft zwar verbindungslos über UDP, aber um die Frage zu stellen, muss man senden und um die Antwort zu erfahren, muss man empfangen. Also auch wieder bidirektionale Kommunikation nötig...
Vka schrieb: > ESP8266 kann das alles in einem und ist recht sparsam. > > Sicher dass du das so machen willst, ohne Anmeldung, API Key o.ä.? der ESP ist doch Wireless. Ich will aber wired. Welche Bedenken wegen der Sicherheit hast du? Die Aufruf-Syntax im Detail kenn ja niemand.
Arne schrieb: > Vka schrieb: >> ESP8266 kann das alles in einem und ist recht sparsam. >> >> Sicher dass du das so machen willst, ohne Anmeldung, API Key o.ä.? > > der ESP ist doch Wireless. Ich will aber wired. > > Welche Bedenken wegen der Sicherheit hast du? Die Aufruf-Syntax im > Detail kenn ja niemand. HTTP Jeder Depp kann das also mitlesen. Schau die Anwendungen wie ThingSpeak an, da wurde sowas schon tausendmal programmiert, eine weitere Lösung bringt rein gar nichts. Wirf den AVR raus und setz auf einen ESP8266/32, bis du Ethernet und alles eingebunden hast vergehen sonst unzählige Arbeitsstunden, für etwas IoT einen Ethernetanschluss zu nutzen ist verschwenderisch. Das NodeMCU Board ist relativ gut...
Sowas hab ich vor Jahren mit dem Net-IO gemacht. sammelt bei mir Wetterdaten und messwerte von 5 Energiezählern. Da gibts auch genug Software für, die man leicht auf seine Bedürfnisse anpassen kann. Forum http://www.net-io.de
> ohne einen IP-Stack programmieren zu müssen? Eine Möglichkeit wäre: Einen fertigen IP-Stack übernehmen statt selbst programmieren. http://www.ethersex.de
Arne schrieb: > ich bräuchte kurz Hilfe bei folgenden Vorhaben: "Kurz". LOL > - AVR ist im Dauerbetrieb und sammelt Daten > - er schickt diese per http request alle 5 minuten ins Netzwerk (an > meine Homepage im Netz) > - Kommunikation soll unidirektional sein (keine Antwort nötig) Und schon falsch. Ein HTTP-Server sendet mindestens einen Status zurück. Also z.B. 200 für "OK". Nix unidirektional. > D.h. der AVR schickt dann soetwas in der Art an den Router: > "www.meineAngegegebenenDomain/data.php?in=23&in21=345" > > Wie realisiere ich das am einfachsten, ohne einen IP-Stack programmieren > zu müssen? Eine fertige Lib wäre gut. Indem du irgend etwas nimmst, das HTTP und alle darunter liegenden Protokollschichten implementiert. Das wären dann also zusätzlich zu HTTP mindestens noch TCP und IP. Dazu noch ein low-level Protokoll, also entweder IEEE 802.11 (aka WLAN) oder IEE 802.3 (Ethernet) oder vielleicht auch SLIP/PPP (IP over Serial). > Es sollte möglichst ein AVR(mega) sein, da ich über STK500 flashen will. Dann schau dir vielleicht das AVR NetIO an. Das ist ein AVR mit einem ENC28J60 Ethernet Chip. > Ideal wäre also dann zB ein ATmega8535 + irgendein_Netzwerk_Controller > Da hier keine großen Daten übertragen werden sollen, ist SPI Anbindung > sinnvoll. ENC28J60 zieht mir aber zu viel Strom. Gibts was anderes Nicht, wenn du es an einen AVR tackern willst. Es gibt natürlich Alternativen wie etwa den WIZnet W5500, aber wahnsinnig Strom sparen die nicht. Ethernet ist nun mal eine stromhungrige Technologie.
Die CrumbX1-Net Module werden mit einem fertigen IP-Stack (von Adam Dunkels) verkauft. Fertig programmieren musst du sie aber trotzdem noch selbst. http://www.chip45.com/products/crumbx1-net_avr_xmega_module_board_atmega128d3_embedded_internet_ethernet_webserver_usb.php?de Ansonsten könnte dieses Ding interessant sein: https://www.digi.com/products/embedded-systems/system-on-modules/digiconnectme Das steuerst du über einen seriellen Port an. Ganz ähnlich wie den ESp8266 aber eben mit Kabel statt WLAN. Mit dem ESP8266 können allerdings sämtliche Alternativen finanziell gesehen nicht mithalten. Deswegen würde die Ablehnung von WLAN lieber nochmal bedenken.
> Ideal wäre also dann zB ein ATmega8535 + irgendein_Netzwerk_Controller Dazu habe ich was: http://stefanfrings.de/net_io/index.html Mit einem ESP8266 als "Netzwerkkarte" an dem bereits vorhandenen AVR oder dem ESP8266 alleine ist das allerdings deutlich einfacher umzusetzen. Tips dazu siehe http://stefanfrings.de/esp8266/index.html
Du willst AVR mit ETH verwenden: http://www.ulrichradig.de/home/index.php/avr/eth_m32_ex Da ist alles drinn und du kannst es anpassen. Ulrich hat hier grandiose Arbeit geleistet, aber in der heutigen IOT Welt ist das zu aufwändig, weil es einfachere Lösungen gibt, wie den ESP32. Der kann dir auch die Verbindung verschlüsseln (HTTPS). Du kannst dir auch für ~9 Euro (+SD Card + 5V NT) einen Orange PI kaufen oder einen Clone oder sogar den Raspi. Mit dem kannst du z.B. über "CURL" die Daten einfach versenden und kannst auch noch andere Dinge damit machen. Die Frage stellt sich eher, wieviel Aufwand du betreiben willst. Thema unidirectional und bidirectional Bei HTTP kann der logische Fluss unidiretional sein, aber die darunterliegenden Protokolle arbeiten bidirektional. Wenn du reines unidirektional willst, dann nimm UDP und schreib einen UDP Server am Internethost wo deine Homepage drauf ist. Problem: nur wenige Hoster lassen es zu, dass du selbst einen UDP oder TCP aufmachst. => Ergo überleg dir, worin du deine Kraft reinstecken willst: - AVR: man lernt viel über die Protokolle / Aufwand hoch - ESP32: Einfach und schnell / ggf. einarbeiten in die Arduino IDE was aber schnell geht - Raspi + Orange PI / ggf. mehr Leistungsaufnahme (sind 1-2W viel?) + ggf. Scripting in Bash/Python/...
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.