Hallo zusammen, es gibt ja einige Projekte mit AVRs + Webservern. Meine Überlegung ist nun nicht eine separate PC Konfigurationssoftware zu entwickeln, sondern direkt auf dem AVR eine Website mit umfangreichen Konfigurationsmöglichkeiten zu erstellen. Packt das ein AVR überhaupt? Das ganze wäre ja ziemlich aufwendig: WIFI Point-to-Point, der AVR müsste in der Lage sein dem PC per DHCP eine IP zu geben, die Websites dynamisch zu erstellen. Die Websites könnten ja stark mit Javascript erstellt werden, so dass der Avr eigentlich nur die Daten validieren und speichern/laden muss. Wenn ich darüber nachdenke könnte man da aber ja auch fast schon wieder irgendeine fertige Lösung nehmen wie einen Raspberry Pi 1... Was haltet ihr von dem Ansatz? Gruß, Samuel
Mit nem Raspberry PI kein Problem - damit hast du auch viel mehr Spaß. Selbst wenn es ein AVR hinkriegt, wäre es total umständlich und langsam ...
Hallo Michael, eigentlich wäre das eher ein typisches Mikrocontroller Anwendungsgebiet: Ansteuerung Displays, Midi Übertragung, Tastereingaben. ich habe gerade den Raspberry Pi Zero entdeckt. Der klingt sehr sehr interessant finde ich und preislich auch nicht so teuer und könnte beim angepeilten Kostenrahmen sogar noch wirtschaftlich sein. Gruß, Samuel
Hallo, was umfangreiche Möglichkeiten sind, ist ja recht dehnbar. Auf einem AVR direkt nicht, wie schon geschrieben wurde. Möglich wäre, wenn umfangreich ohne unnötige Spielereien usw. reicht, einen ESP8266 zu nehmen. Das WLAN-Modul kann frei programmiert werden, z.B. auch aus der Arduino-IDE, hat einen 80MHz Kern und rund 50kB Ram frei, dazu 1MB Flash und 3MB, die als spezielles Flash-Filesystem genutzt werden können. Also normale Formularelemente sind kein Problem, JS vom Platzbedarf auch nicht. Ist natürlich letztlich Handarbeit, den Seitenquelltext zusammenzubasteln. Das Modul kann sowohl Client als auch Accesspoint, sogar beides gleichzeitig. Ist also was, wenn man eine Hobby-Herausforderung sucht, sonst einen RasPi nehmen. Die Module kosten aus China zwischen wenige Euro. Gruß aus Berlin Michael
:
Bearbeitet durch User
Hallo Michael, das klingt auch interessant. Je mehr ich darüber nachdenke, desto sympatischer wird mir ein Kleinst-Einplatinencomputer: vieles funktioniert "out-of-the-box", Speicher im überfluss (für meine Anwendung) und vor allem muss ich mich nicht mit Grundlagen wie Netzwerk-Stack, Webserver rumplagen. Konfigurieren kann ich die, nur selber programmieren, auch wenn nur rudimentär ist schon noch mal etwas anderes. Kennt wer irgendwas ganz kleines, wo Linux drauf läuft und schon direkt WLAN dabei ist? Gruß, Samuel
Hallo, dann nimm doch den Pi-Zero und steck einen USB Mini-WLAN-Stick ran. Gruß aus Berlin Michael
Hi Michael, hätte ja sein können, das noch etwas ähnliches günstig zu haben ist. Jemand Erfahrung mit den Bootzeiten vom Linuxsystem? Kriegt man das auf um die 5s runter, wenn dort ein schlanker Webserver und ein selbst geschriebener Dienst läuft (sehr simpel, selbst ein AVR langweilt sich bei den Aufgaben)? Gruß, Samuel
Hallo, habe ich noch nicht probiert bzw. drauf geachtet. Der hat zu laufen und nicht zu booten... ;-) Bei mir ist das so: ich habe bei Strom einen "Komfortverbrauch", den ich geneigt bin zu bezahlen. NAS, Drucker, Switch usw. und eben auch ein Pi oder im Moment ein AVR-NetIO. Wenn das zuviel wird, baue ich irgendwas um, wo man sparen kann. In den letzten Jahren hat das immer geklappt, der Pi z.B. verbraucht weniger als das alte NetIO, der ist zur Zeit nur dran, weil es das Filesystem des Pi nach 2 oder 3 Jahren zerlegt hatte. Gruß aus Berlin Michael
Du könntest mal das hier ansehen: http://www.john-lassen.de/index.php/projects/esp-8266-arduino-ide-webconfig
Samuel S. schrieb: > Kriegt man das auf > um die 5s runter, wenn dort ein schlanker Webserver und ein selbst > geschriebener Dienst läuft (sehr simpel, selbst ein AVR langweilt sich > bei den Aufgaben)? > Nicht Out-of-the-Box. Ich habs eben mal mit einem Raspberry Pi mit minimalem System (Raspbian) und WLAN-Stick grob gestoppt. Der erste Ping wird nach ca. 18s beantwortet. Ok, man könnte da sicher noch etwas optimieren, aber <10s halte ich für ausgeschlossen. Die meiste Zeit wird bei der Initialisierung des Netzwerk verbraucht (WLAN-Hardware initialisieren, Adr. via DHCP holen etc.) Harry
Samuel S. schrieb: > es gibt ja einige Projekte mit AVRs + Webservern. > Meine Überlegung ist nun nicht eine separate PC Konfigurationssoftware > zu entwickeln, sondern direkt auf dem AVR eine Website mit umfangreichen > Konfigurationsmöglichkeiten zu erstellen. So etwas habe ich auf einem PIC18F67J60 gemacht. Ähnliche Rechenleistung wie ein AVR, aber Ethernet MAC+PHY eingebaut. Die kleinste, billigste und einfachste Möglichkeit, einen Ethernet-Knoten zu realisieren. fchk
Harry L. schrieb: > Die meiste Zeit wird bei der Initialisierung des Netzwerk verbraucht > (WLAN-Hardware initialisieren, Adr. via DHCP holen etc.) > > Harry Hallo Harry, WLAN kann ruhig ein paar Sekunden dauern, wichtig ist möglich schnell meinen Dienst laufen zu haben, der dann auf die GPIOs schreiben kann, während dann WIFI hochfährt. lg samuel
Naja, wenn du den in /etc/rc.S startest (der darf dann aber auch nur wenige Abhängigkeiten haben!), könnte das mit den 5s knapp hinhauen. Harry
Hallo zusammen, meine ersten Tests, ohne große Optimierungen bringen auf einen Raspberry Pi 1 B folgende Bootzeiten: Startup finished in 1.223s (kernel) + 17.973s (userspace) = 19.197s davon sind allerdings schon knapp 11s vom DHCP Dienst. Mit 5 Sekunden könnte also mit Optimierungen vielleicht wirklich noch zu schaffen sein. Netzwerk ist auch nicht so wichtig, wichtig ist das die anderen Dienste schnell lauffähig sind. Gruß, Samuel
Hallo, hat nicht direkt damit zu tun, hat mich jetzt aber interessiert: das oben erwähnte ESP8266 WLAN-Modul hat natürlich kein OS in dem Sinn. Es steuert hier nur ein Display als Uhr an. Vom PowerOn bis zur Display-Initialisierung rund 1s. Damit sind also die GPIOs gesetzt und mein Starttext ausgegeben. Weitere 4 Sekunden für das Einloggen ins WLAN incl. DHCP und die Abfrage des NTP um die Uhr zu stellen. Nach 5 Sekunden stimmt die Uhrzeit. Hatte ich bisher nicht drauf geachtet. Der WLAN-Connect bis es eine IP hat sind ca. 2-3s, war beim Debug gut zu sehen, habe aber nicht auf die genqaue Zeit geachtet. Irgendwie mag ich das China-Teil. ;-) Gruß aus Berlin Michael
Hi Michael, das klingt doch auch ganz gut. Ich versuche erstmal weiter mit dem Raspberry. Wenn es den wirklich mal hier für 5$ gibt, dann kostet der mit WIFI und SD Karte ja ca. 15 Eur, das ist noch verkraftbar. Dafür ist die Programmierung halt deutlich einfacher, ich kann mir bekannte Techniken wie Sqlite für die Daten nutzen usw. Gruß, Samuel
Michael U. schrieb: > Hallo, > > habe ich noch nicht probiert bzw. drauf geachtet. > Der hat zu laufen und nicht zu booten... ;-) > > Bei mir ist das so: ich habe bei Strom einen "Komfortverbrauch", den ich > geneigt bin zu bezahlen. > NAS, Drucker, Switch usw. und eben auch ein Pi oder im Moment ein > AVR-NetIO. > > Wenn das zuviel wird, baue ich irgendwas um, wo man sparen kann. > In den letzten Jahren hat das immer geklappt, der Pi z.B. verbraucht > weniger als das alte NetIO, der ist zur Zeit nur dran, weil es das > Filesystem des Pi nach 2 oder 3 Jahren zerlegt hatte. > > Gruß aus Berlin > Michael Der Raspi verbraucht echt weniger wie 200mA? Kann ich kaum glauben. Wie hast du das gemacht? Im Idle? Muss ich dann direkt mal testen.
Hallo, wenn die Kühlkörper an den Sopnnungsreglern am NetIO selbst bei 7,5V Netzteilspannung warm werden und das Netzteil einer alten Kodak-DC260 auch nicht gerade ein Wirkungsgrad-Wunder ist, passt das schon. Schon das 5V 1A Netzteilchen bringt da Vorteile. Ich habe allerdings am Pi nicht gemessen gebe ich zu. Es steckt nichts dran außer dem RFM12. Ich stelle also diese Behauptung von mir mal selbst in Frage... Gruß aus Berlin Michael
Hallo, mit 200mA könnte schon hinkommen, siehe: https://www.bitblokes.de/2015/11/stromverbrauch-des-raspberry-pi-zero-gemessen/ lg samuel
Nach gestrigem rumprobieren bin ich unsicher ob der raspberry alleine wirklich funktionieren würde in meinem Fall. Zum einen habe ich bisher Probleme mit der midi baid rate beim UART, außerdem ist es kein Echtzeitsystemen.Reaktionen im zweistelligen ms Bereich sind zwar ok, aber mehr darf es nicht sein. Es wird wohl doch auf einen Mikrocontroller hinauslaufen müssen. Ggf in Verbindung mit dem pi,der nur eine konfigurationsoberfläche bereitstellt und die Daten für den uC speichert. Bei der Lösung mit obigem soc gibt es wieder Probleme mit Speicherplatz, zu wenig ios und die Webserver Geschichte ist viel aufwendiger... LG Samuel
Wenn statt WLAN auch verkabeltes Ethernet geht (was ich zwischen den Zeilen herausgelesen habe), könnte auch dieses AVR Projekt als Basis geeignet sein: http://stefanfrings.de/avr_io/index.html
samuel schrieb: > Bei der Lösung mit obigem soc gibt es wieder Probleme mit > Speicherplatz, zu wenig ios und die Webserver Geschichte ist viel > aufwendiger... welchem soc? fchk
Michael U. schrieb: > In den letzten Jahren hat das immer geklappt, der Pi z.B. verbraucht > weniger als das alte NetIO Das stimmt schlicht nicht. Nichtmal dann, wenn man das NetIO in der, bezüglich der Stromversorgung extrem idiotischen Originalschaltung betreibt, was natürlich sowieso nur komplette Vollidioten für einen Dauerbetrieb ernsthaft in Erwägung ziehen würden...
Hallo, @c-hater (Gast): a) Danke für die Blumen b) ich kann mir den Stromverbrauch bis jetzt durchaus leisten c) wenn jetzt die Ökologie kommt, geh raus und werfe eine Leuchtreklame ein, spart mehr und ich brauche die nicht. Gruß aus Berlin Michael
je länger ich rumsuche, desto ratloser werde ich auf welche platform ich setze. Aktuell tendiere ich zum ESP8266 (Webserver) mit AVR Atmega (IO, Displays, Midi etc.)und SD Karte. Das ist aber auch umständlich, da so beide auf die SD schreiben müssten. Der ESP8266 würde einzeln aber denke ich nicht ausreichen... Insgesamt benötige ich 32x Taster, 4x ADC, 1x UART Midi + mehrere LCD Displays in 8 bit Ansteuerung (über die enable Leitung ausgewählt) + kommunikation zwischen ggf. zwei uC + Anbindung Speicher. Das ist also schon so einiges. gruß, samuel
Hallo, irgendwie habe ich wohl Dein Projekt mißverstanden. Konfigurationsseite auf einem Websebver (egal ob ESP oder RasPi) hieß für micht, irgendwelche Einstellungen machen zu können, die der Webserver speichert und dem eigentlichen System als Konfig zur Verfügung stellt. >Insgesamt benötige ich 32x Taster, 4x ADC, 1x UART Midi + mehrere LCD >Displays in 8 bit Ansteuerung (über die enable Leitung ausgewählt) + >kommunikation zwischen ggf. zwei uC + Anbindung Speicher. Das ist für mich ein System, das irgendwie mit einem Webserver nicht viel zu zu hat. Für würde sich das technisch so darstellen, daß das von Dir hier aufgezählte System statt z.B. mit Drehencoder oder Touchdisplay per Webseite konfiguriert werden soll. Von diesem System und dessen Voraussetzngen war aber bisher noch garnicht die Rede. Gruß aus Berlin Michael
Hallo Michael, ja, genau das ist meine Absihct. Sorry wenn ich das bisher nicht so klar ausgedrückt habe. Eigentlich ist das also eher ein klassiches uC Projekt, nur Konfiguriert über einen WLAN erreichbaren Webserver. Gruß, Samuel
noch als ergänzung: zuerst dache ich auch, der raspberry pi zero wäre alleine ausreichend, aber das ist mir nach einer Nacht drüber schlafen doch zu "zeitkritisch". Die Konfiguration kann dauern, aber das andere muss schnell gehen und vor allem reproduzierbar sein. lg samuel
Dann würde ich einen der großen Mikrocontroller verwenden (ATmega 2560, Xmega oder ARM) sowie den ESP8266 für das WLAN Interface.
Hi Stefan, ja, das ist jetzt auch mein Ansatz. Planung: - ESP8266 nur für WIFI per UART vom Mikrocontroller gesteuert - Mikrocontroller z.B. Atmega 644/1284 oder besser gleich ein ARM Ich befürchte, dass die normalen Atmegas die Website nicht schnell genug liefern können. Ich bin gerade am versuchen rauszufinden in welchen ARM ich mich einarbeiten werde. Am liebsten einen von Atmel, da ich das AVR Studio bereits gut kenne, aber auch da gibt es so viele Typen aber diese scheinen nicht so gut privat zu beziehen zu sein. gruß, samuel
Ich kenne deinen Zeitplan zwar nicht aber evtl. ist es möglich auf den ESP32 zu warten. Das Pinout ist ja schon öffentlich da könntest du schauen ob dir die Pins reichen. In der Zwichenzeit kannst du ja schonmal den Webserver auf dem ESP8266 basteln. Wenn du dich in was neues einarbeiten willst wie wäre es dan mit RTOS? (läuft auf dem esp32)
Hallo, In etwas neues einarbeiten will ich mich eher nicht. Am liebsten wäre mir daher schon ein avr oder embedded Linux. Ihm werde jetzt erstmal avr mit dem esp8266 testen. LG Samuel
Hallo, ich experimentiere im Moment in ganz anderem Zusammenhang mit AVR und ESP. Letztlich wird es bei mir so enden: der AVR macht sein Ding für sich alleine. Wenn en Byte an der sereillen des AVR ankommt, wird es in einem Buffer gesammelt. Kommt ein NewLine ist die Zeilw zuende und es wird ein Flag gesetzt, daß Daten da sind und vearbeitet werden können. Der ESP stellt den Webserver und macht die Vorberarbeitung der Daten wenn nötig. Er hängt als Client am AP bei mir. Wenn keine Verbindung zum AP herzustellen geht (falsche SSID o.ä.) geht er in den Accesspoint-Mode. Da kann ich den dann per Handy, Tablett oder Notebook in mein lokales Netz wieder einhängen. Klappt so auch, ist nur noch nicht ganz fertig. Ich nutze zur Zeit nur den Weg, Daten zum AVR zu schicken. Das geht natürlich auch anderslang, also Daten vom AVR zum ESP per serieller zu senden. Wirkliche Echtzeit brauche ich zwischen den Systemen nicht, wenn ich eine Statusänderung im Webinterface erst 0,5s später erfahre ist es egal und wenn eine Konfigänderung ebenso verzögert vom AVR übernommen wird, stört es auch nicht. Damit stören sich die beiden nicht, weder der ESP bei Client-Zugriffen auf den Webserver noch der AVR bei seinen "Echtzeit"aufgaben. Die serielle läuft auf beiden Seiten Interruptgesteuert, außer Byte abholen und Flag setzen, wenn nötig, brauchen die keine Rechenzeit. Noch gefällt mir mein Konzept... Ach ja, bisher alles bunte Mischung in dr Arduino-IDE, sowohl für den AVR als auch den ESP. Für den ESP werde ich wohl das OTA-Update einbauen, den AVR mit Arduiono-Bootloader könnte ich auch vom ESP seriell flashen, müßte ich nur den AVR-Reset noch an ein ESP-I/O hängen. Mal schauen... Gruß aus Berlin Michael
> Ich befürchte, dass die normalen Atmegas die Website nicht schnell > genug liefern können. Wie schnell ist denn schnell genug? Also wenn ich eine Webseite in weniger als 2 Sekunden empfange, bin ich in der Regel zufrieden. Warum sollte ein AVR das nicht können? 2 Sekunden ist eine Menge Zeit.
Hallo, dann ist der AVR aber ziemlich mit dem Erzeugen und absenden der Webseite beschäftigt und wenn er auch noch das zurückkommende Formular parsen muß, um die Konfig-Werte wieder rauszukramen, auch. Das erledigt ein ESP schneller, siehe mein Posting davor. Meine momentane Spielweise oben im Bild: ProMini, ESP8266-12, RFM12-433MHz und RFM12-868MHz. Gruß aus Berlin Michael
Hallo, ich habe auch überlegt den ESP die Website machen zu lassen. Die Website wird nicht eine Miniseite mit ein paar Buttons um eine LED an oder aus zu machen. Ich werde wohl insgesamt damit ca. 512KB Konfigurationsdaten bearbeiten müssen. Die Website wird viel Javascript benutzten und somit viel auf dem Client direkt machen. Allerdings sollten die per Ajax gesendeten Daten sollten schon Zeitnah verarbeitet werden. Ich überlege noch wie ich diese Daten sende, vielleicht schon so gut wie fertig aufbereitet, dass ich sie nur noch ins EEPROM schieben muss, um Rechenpower zu sparen. Wichtig ist bei allem, dass das UART, das MIDI Befehle sendet die Konfiguration schnell genug aus dem EEPROM bekommt. Displayansteuerung und Website ist nicht so zeitkritisch. LG Samuel
ich bin mir aber auch noch unschlüssig wo ich das eeprom oder ggf. sd karte dran hänge: an den esp oder an den avr? jeweils einer muss die daten dann ja an den anderen durchreichen. Optimal wäre ein eeprom, das von zwei gleichzeitig beschrieben / gelesen werden könnte...
Samuel S. schrieb: > Optimal wäre ein eeprom, das von zwei gleichzeitig beschrieben / gelesen > werden könnte... http://de.rs-online.com/web/p/speicherbausteine-eeprom/7814796/ http://www.onsemi.com/pub_link/Collateral/CAT24C208-D.PDF wenn es von der Größe her reicht...
>Optimal wäre ein eeprom, das von zwei gleichzeitig beschrieben / gelesen >werden könnte... Das willst du nicht, glaub es mir;)
ich habe gerade gesehen, dass die esp je nach Version bis zu 4MB Speicher mitbringen, das würde ausreichen. Wenn ich dadurch zusätzliche Bauteile spare würde ich den wohl einfach benutzten. lg samuel
Hallo, probier es aus, teste es. Der ESP Kostet nicht wirklich Geld. Mit der 4MB Version hast Du max. 3MB als SPIFS verfügbar, ob das für Deine Zwecke sinnvoll ist, kann ich nciht entscheiden, die Webseite selbst kann da aber sicher rein. Die Daten dann am AVR in einen SPI-Flash?. Den AVR kannst Du ja auch als SPI-Slave an den ESP-SPI hängen, da ist der AVR das begrenzende Elemnt mit seiner SPI-Rate. Der kann bei 16MHz 8MHz SPI-Takt, also theoretisch 1 MByte pro Sekunde übertragen. Du wirst ja vermutlich nicht ständig mit maximaler Geschwindigkeit MIDI-Events senden wollen. SPI-SRAM wäre sicher möglich, habe ich aber noch nie nach Preis und Verfügbarkeit geschaut. Beim Start dann eben die Init-Daten vom ESP über den AVR in den SRAM schieben. Oder nach NV-SRAM schauen, die sind batteriegestützt, keine Ahnung, was die kosten. Gruß aus Berlin Michael
das scheint aktuell der weg zu sein: ESP8266 als Speicher und Webserver AVR nur für Midi Ausgabe, Displayansteuerung, Tastereingaben usw. Midi Ausgaben werden eher nur kurzzeitig auf Tastereingabe sein. Dann wird aus dem EEPROM ausgelesen, was zu senden ist und dann das schnellstmöglich gesendet. Dabei soll man keine verzögerung mitbekommen und es soll in "echtzeit" gehen, also reproduzierbar schnell. daher bin ich ja von meiner raspberry pi zero idee abgekommen. wer weiß was der gerade macht während ich den Taster drücke...
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.