Webserver Build&Summary aller Infos -wer hat Lust und Spass daran mitzuarbeiten

Hallo an alle Arduino-Jünger :slight_smile:

Ist mir gerade bei der Beantwortung einer Frage gekommen:

Da ich auch nicht (wie bestimmt viele Andere) der Obercrack in Programmierung und IT bin (man kann ja nicht alles können - wenn auch nicht völlig unbegabt) und Librarys und Proggies in Assambler so mal eben aus dem Handgelenk schüttele, würde ich mich freuen, wenn der eine oder andere Lust und vor allem Spass daran hätte (und noch besser vielleicht auch was dazu beitragen könnte - keine Bedingung :slight_smile: ) eine, wie soll ich sagen, Gruppe zu bilden, die mal ein Standard-Code zusammenstellt, für einen Webserver, der Ajax, XML usw. verarbeiten kann, Dateien auf die SD Karte hochladen kann, Passwortschutz beinhaltet usw, usw. Halt all die schönen Sachen, die man so gerne haben möchte.

Ein guter Anfang sind auf jeden Fall die Projekte:

http://playground.arduino.cc/Code/WebServerST
https://code.google.com/p/webduino/

Reinschauen lohnt sich wirklich. gerade der ST schlägt die gängigen Codes in Sachen Stabilität um Längen (funzt auch mit Ajax - zumindest bei mir - lässt sich auch Problemlos für WiFi Shild adaptieren) und der Webduino hat schon eine sehr umfangreiche Pallette an Funktionen. Die Leute sitzen da aber auch schon deutlich länger als eine Woche dran :slight_smile:

Ich werfe dies einfach mal so ungeniert in die Runde und würde mich über Resonanz sehr freuen.

Euch Allen schöne Feiertage

Grüße :slight_smile:

Wer Rechtschreibfehler findet darf sie nicht behalten, sondern muss sie weiterverschenken. Is schließlich bald Weihnachten :wink:

[Edit] (19.12.14). Reiner Webserver noch ohne nennenswerte Funktionalität. Wird fortgesetzt…

WebserverST6.ino (16.2 KB)

Schau mal hier: Ethersex (Deutsch) - Ethersex_Wiki

Es ist garantiert einfacher zu lernen wie man mit einem ISP umgeht und sich in diese Firmware einzuarbeiten als einen vollständigen Stack von 0 hochzuziehen. Diejenigen die sowas könnten werden bei Deiner Projektidee garantiert nicht mitmachen. Denn es gibt ja schon alles.

Habe die woche erst angefangen mich mit dieser Thematik näher auseinander zu setzen. Mein aktueller Stand der Dinge ist dieser:

angefangen habe ich mit:

sehr umfangreiches Tutorial und gut um sich mit der Funktionsweise von Ajax vertraut zu machen
aber auch sehr instabil in Bezug auf mehrere Requests vor allem aber, und das war der Knackpunkt, gleichzeizigen Zugriff auf Netzwerk und SD Karte, was die App extrem langsam machte und mitunter auch zur völligen Unbrauchbarkeit führte, da beide über den SPI angesprochen werden und sich nicht sehr mögen.

Weiter ging es dann mit dem WebserverST von SurferTim (ein sehr hilfsbereites Kerlchen und nicht minder begabt)

http://playground.arduino.cc/Code/WebServerST

Ich habe den einfunktionalen Rattenschwanz allerdings erst einmal auseinanderrupfen müssen, um hinter die Vorgehensweise und Funktionalität blicken zu können. Ein unbedeutender Schönheitsfehler ist zwar drin, ansonsten aber eine sehr gute Arbeitsvorlage wie ich meine.

Gerade adaptiere ich eine Ajax-fähige Ergänzung um mich mit dem zuvor genannten Tutorial weiter zu hangeln. Der Code erfreut vor allem durch problemlose Verwendung der SD Karte, da Lesen und Senden voneinander getrennt wurden.

Weiterhin von Interesse der Webserver von CatweazleNZ (http://forum.arduino.cc/index.php?topic=264115.0). Sein Live-Beispiel ist hier zu bewundern:

http://www.2wg.co.nz/PUBLIC.DIR/

Besonders sind hier die Möglichkeiten des Uploads auf die SD Karte sowie ein gewisser Hacker-Schutz zu erwähnen. Eine Passwordabfrage ist auch implementiert. Code ist noch nicht zur Gänze veröffentlicht, da wohl noch nicht ganz fertig, aber er arbeitet dran.

Und zu guter Letzt das Webduino Projekt von Ben Combee. 3 Jahre Arbeit haben einen recht komplexen Code und eine entsprechend umfangreiche Library hervorgebracht. Hier noch mal der Link der Vollständigkeit halber:

https://code.google.com/p/webduino/

Wie gesagt sehr umfangreiche Funktionalität und für den Augenblick noch ein wenig zu schwer verdaulich für mich. Da müssen meine Grundkenntnisse erst noch ein wenig für aufgefrischt werden.
Steht aber auf jeden Fall auf der ToDo-Liste.

Hervorheben möchte ich hier die Beispiele für Passwordschutz und Ajax. Alles (und vieles mehr) im Download zu finden.

Bis später dann - und meldet euch - keine Schüchternheit vortäuschen :slight_smile:

Cheers

Hallo Udo,

ich suche ja auch nicht unbedingt die, die bereits alles können und haben, sondern, diejenigen, welche so wie ich nach Lösungen für ihr Projekt suchen, welche ich für meinen Teil, zumindest auf den ersten Blick, nicht auf der von Dir genannten Seite finden konnte. Werde sie mir heute Abend aber mal näher zu Gemüte führen.
Sollte ich was passendes finden, werde ich es hier entsprechend posten. Danke für Deinen freundlichen Hinweis.

Vor allem suche ich Leute, die Spass mit dem Arduino und am Lernen mit ihm haben. Bisher bin ich auf meiner Suche nach Codes und Informationen nur auf Einzelkämpfer oder Ratlose gestoßen. Allen gemein ist jedoch stets eine nur Teil-Lösung. Doch ich denke, daß man auch zusammen Freude an einer Entwicklung haben kann, nach welcher bereits viele vergeblich suchen und entsprechen abmühen. Viele blinde Hühner finden deutlich mehr Körner als nur ein Einzelnes.

Abgesehen davon, freue ich mich bereits über Einen, der die von mir zusammengetragenen Informationen erfolgreich für sich nutzen konnte. Damit erfüllt es den Zweck dieses Forums bereits.

Übrigens ästhetisch äußerst ansprechend Dein blinkenlight Projekt :slight_smile:

Gruß
Heiko

panpira:
Ich habe den einfunktionalen Rattenschwanz allerdings erst einmal auseinanderrupfen müssen, um hinter die Vorgehensweise und Funktionalität blicken zu können. Ein unbedeutender Schönheitsfehler ist zwar drin, ansonsten aber eine sehr gute Arbeitsvorlage wie ich meine.

Grundsätzlich ist die 8-Bit Atmega-Hardware so schwach auf der Brust, dass Dir am Ende gar nichts anderes übrig bleibt, als eine "Arbeitsvorlage" an Dein Vorhaben anzupassen.

Für eine eierlegende Wollmilchsau als "full-featured Webserver" mit allem PiPaPo hast Du einfach nicht genug RAM-Speicher, nicht genug Flash-Speicher und nicht genug Rechenleistung.

Wenn Du einen full-featured Webserver brauchst, schaust Du Dich besser auf Plattformen mit stärkerer Hardware um, z.B. Raspberry Pi. So hat ein Raspberry 512 MB RAM und ein Arduino UNO hat 2 KB, also 0,002 MB. D.h. der Raspi hat das 512/0,002 = 256000 fache an RAM-Speicher wie ein UNO! Bei einem UNO-Webserver gibt es einfach Dinge, die Du überhaupt auf keine Art und Weise realisieren kannst, z.B. "sichere" und "verschlüsselte" Verbindungen mit dem https-Protokoll und die Verwaltung von Sicherheitszertifikaten.

Auf einem UNO ist der halbe RAM-Speicher (1KB) und fast der halbe Flash-Speicher (ca. 15 kb) belegt, wenn Du die SD-Karte verwendest. Und wenn Du einen Webserver mit Gebrauch der SD-Karte programmierst, sind drei Viertel von RAM- und Flash-Speicher beansprucht, so dass Du schon sehr genau überlegen mußt, was Du da noch an zusätzlichen Goodies drangestrickt bekommst. Da passt nicht mehr so sonderlich viel mit rein.

Mit den größeren Controllern wie Arduino MEGA oder dem DUE kannst Du zwar mehr realisieren, aber dann funktionieren Dinge ggf. nur noch auf der Zielplattform, für die Du es programmiert hast, und der kleine UNO fällt heraus.

Volle Leistung mit "allen" Features auf beliebig leistungsschwacher Hardware zu implementieren funktioniert nicht.

Und daher bleibt Dir bei diesen kleinen Controllern nicht viel mehr übrig, als aus einer vorhandenen "Arbeitsvorlage" und mit Blick auf die von Dir benötigten Features genau das einzubauen, was Du für Dein Projekt brauchst.

"Alles" an Features einzubauen und in einem Programm drinzuhaben, von dem Du dann je nach Projekt nur den einen oder den anderen Teil zu nutzen beabsichtigst, funktioniert mit den 8-Bit Atmegas und 2 KB RAM und 32 KB Flash nicht.

Eine Arbeitsvorlage "Arduino SD-Karten Webserver" habe ich auch mal hier im Forum gepostet. Auch der ist ausbaufähig. Aber eben nicht "für alles", sondern immer nur für entweder "ganz wenig mehr" (auf einem "UNO") oder auch "etwas mehr" (auf einem "MEGA") nach Bedarf und wie man es braucht.

Hallo Jurs,
danke für deine Antwort und Hinweise. An ein Filelisting hatte ich noch gar nicht gedacht. Schöner Punkt, den ich gerne übernehmen werde.

Habe tatsächlich auch hier irgendwo nen Raspberry rumflacken, doch der führt ein einsames Dasein (bisher), da ich mich noch nicht mit Linux anfreunden konnte. Hab da irgendwie ne irrationale Abneigung gegen, die sich früher oder später bestimmt legen wird. Ich bin halt nicht aus der IT sondern komme mehr aus der Hardware/Elektronik Ecke und der 3DKonstruktion. Habe vor 15 Jahren zwar viel mit C++ (vor allem astronomische Berechnungen und openGL, aber halt absolut nix mit Netzwerk) gemacht, aber diese Kenntnisse müssen erst einmal entstaubt und aufgefrischt werden.

Im Augenblick liegt ein Mega2560 auf meiner Folterbank und erfreut sich eines neuen R3 Ethernetschildes, welches ich gestern gegen das alte WiFi Shield ausgetauscht habe. Mit nem Repeater am Eth habe ich auch Wlan, nur eben ein sehr viel schnelleres mit deutlich viel mehr Reichweite.

In seinem Grundaufbau belegt der Webserver rund 25k (10%) und vom Ram sind rund 3,5k übrig. Also noch Platz nach oben. Wer also einen Webserver haben will, für den sollte es auch kein Hindernis sein 10Euro mehr für ein größeres Board auszugeben. So teuer sind die Dinger ja nu wirklich nicht. Warum also unbedingt nur einen Uno verwenden oder den berücksichtigen?

Für kleinere Bausteine wie den Uno kann man sich ja dann rausnehmen was man braucht und weglassen auf was man verzichten kann.

Es wäre jedoch schön, wenn man hier im Forum eine kleine, aufeinander abgestimmte Code-Sammlung (auf einem Punkt und nicht überall verteilt -> wochenlange Sucherrei, bäh) hätte, welche ich zu finden hoffte, aber nicht aufspühren konnte.

Was also spricht dagegen einfach mal alles auf einen geordneten Haufen zusammen zu tragen? Gerade hier im deutschpsachigen Forum. Ich kann zwar Datenblätter lesen, bin jedoch in der Kommunikation in englisch nicht sonderlich geübt (bessert sich aber erfreulicherweise), vielleicht geht es anderen auch so. Habe mir auf der "anderen Seite", dem "normalen" englischesprachigem Forum auch meinen bisherigen Wissensstand erwerben können. Wollte das alles jedoch auf das deutschsprachige Forum übertragen.

Nochmal auf das Schweinerippchen produzierende Wollmilchhuhn zurückkommend und dem Grund warum ich mich hier herumtreibe:

Ich baue für Freunde einen feinen Schwimmteich mit allem möglichen schicken Schnickschnack. Das Dingens soll über Arduinos gesteuert werden. Einer für die Lightshow, einer für die Steuerung der restlichen Technik wie Pumpen und Aktoren, sowie Überwachung der zahlreichen Sensorik.

Einer für die Benutzeroberfläche und Fernwartung (daher auch vor allem eine Uploadmöglichkeit) über Browser. Um den geht es mir hier.

Solltest Du der Ansicht sein, daß der Arduino für diesen Zweck völlig ungeeignet ist, wäre ich Dir für einen Denkanstoß, bzw Ermutigung in Richtung Raspberry und vor allem eine kleine Starthilfe dankbar. Ich hatte Anfangs ja auch vor die Brombeere dafür zu nutzen, aber dafür hätte ich mich erst in Linux, Python, Perl und hastenichgesehen einarbeiten müssen, was mich erst einmal abgeschreckt und mir vorerst jegliche Lust an dem Ding genommen hat.

Bis dahin werde ich einfach mal alles Erforderliche für den Arduino zusammensuchen bzw -tippen und dann die Ergebnisse regelmäßig als Attachment in meinen ersten Post reinschmeißen. Vielleicht hast Du ja auch noch mehr nützliche Codeschnippselchen die hier gut hineinpassen.

Hoffe Du meldest dich nochmal.

Greetings :slight_smile:

Ein Huhn haste ja schon, jetzt musste dich mit der Pute anfreunden :smiley:
Wenn sonst keiner ein Tipp für dich hat, dann schau dir meine Beiträge an.
Ich wollte früher auch nur mit Arduino über web steuern, hat aber hinten und vorne nicht gereicht.
Nun hab ich den Raspberry B mit OpenHab im Einsatz. Wenn du selbst nicht klarkommst mit der Installation, helf ich dir. Bin aber am renovieren, neue Kabel mit Leerrohr fürs Bussystem gleich mitverlegen.
Kann schon mal vorkommen dass ich etwas spät schreibe. Wenns was dringendes gibt, PN. Sonst bekommt man hier keine Benachrichtigung fals neuer Beitrag geschrieben wurde.

Hi Scorpi :slight_smile:
(muss ich unwillkürlich an Farscape denken :slight_smile: )

vielen Dank für Dein Hilfsangebot. Habe mit Linux jedoch wie gesagt noch keinen nennenswerten Kontakt gehabt (Linux mag mich nicht und ich es auch nicht - bisher). Bevor ich Dir also mit Noob-Fragen auf den Wecker gehe würde ich mir gerne Deine diesbezüglichen Beiträge zu Gemüte führen und mich entsprechend vorbilden.

Wo, bzw. wie finde ich diese denn in diesem Sammelsorium?

Falls Du rein zufällig in Berlin hausen solltest könnte ich Dir bei Deiner Renovierung mithelfen als Gegenleistung :slight_smile:

erfreute Grüße

Klick auf mein Usernamen und dann auf Show Posts.
Ganz früher, also fast die ersten Beiträge wären wohl ein Anfang für dich.
Berlin wäre 500km entfernt, wenn du ankommst bin ich bestimmt schon fertig :smiley:

Hi Scorpi,
danke für den Tip, werd ich mir mal reinziehn.

"Berlin wäre 500km entfernt" - phu, Glück gehabt :wink:

Ansonsten Stand der Dinge: Hab mir mal den Pi B+ geholt und eingerichtet (muste noch ne blöde Tastatur besorgen un n HDMI Kabel aber soweit allet schick). Feste IP, Autologin, Iceweasel, x11VNC sind auch schon gemacht. Dazu RealVNC auf meinem Schlepptop. Gibts dafür ne gleichwertige Variante für die man nich noch mal 30 Teuronen hinlegen muss um auch Dateien per Click&Drop zu transferieren?
Obwohl, wärs mir fast wert, wenn man bedenkt wieviele Stunden ich für den Arduino erfolglos gesucht habe um Dats upzuloaden auf die SD. Un noch son fetten 1000Seiten Wälzer damit ich Dir nich mit allzu blöden Fragen kommen muss :wink:

Aber ich muss schon sagen 32bit, 700MHz und fetter Speicher haben schon was für sich.

Werde aber trotzdem noch am Arduino Webserver dranbleiben. N Repeater at ja meist Mehrere Eth Plugs, da kommt er mit rein als Wachhund für den Pi (bzw die Anderen) und als redundantes System für den Notfall.

Noch n bissl Halbwissen aneignen und dann werd ich Dich löchern :slight_smile:

Du brauchst den ganzen kram nicht. Im Gegenteil, der soll runter.
Kühlrippen aufjedenfall draufkleben, naja... zu empfehlen.
Hier was zum lesen:
http://www.edv-buchversand.de/productinfo.php?cnt=productinfo&mode=2&type=2&id=fr-60244&index=2&preload=false&page=1&view=fit&Toolbar=1&pagemode=none

Danach hab ich es meistens gemacht:
http://www.renehering.de/2013/12/raspbian-auf-einem-raspberry-pi-installieren/

phpMyAdmin geht so:

Webmin hab ich früher installiert, momentan brauch ich den nicht. Ist halt ne Grafische Oberfläche, zum Dinge einstellen die man nicht braucht, meistens jedenfals. Ladet aber auf dem Raspberry etwas langsam.

Anderes Zeugs:

Achso, ich nutze Cyberduck, für den File Upload. FileZilla kannste auch nehmen.
Brauchst kein extra Server wie PROFTP installieren auf dem Raspberry, läuft über SFTP.

Von Python hab ich überhaupt nullkommanull Ahnung. Brauchst du eigentlich auch nicht. Wenn dann Java.

Kurz erklärt. openHAB läuft auf dem Raspberry. Der Arduino ist per USB an den Raspberry angeschlossen. Raspberry ist mit Internet verbunden, kannst also vom Handy, PC etc ( Java vorausgesetzt ) drauf zugreifen.
Kannst entweder per iOS oder Android App drauf zugreifen oder einfach vom Browser aus.

Weitere Infos:
http://www.mikrocontroller.net/articles/Evaluations-Platine_für_Heimautomatisierung#Arduino_und_openHAB

Ladest dir von HIER die Runtime core, Addons, Demo Setup und openHAB Designer herunter.

den openHAB Designer installierst du auf PC oder Mac, jenachdem was du hast. Fals Mac, startet der openHAB Designer nicht sofort, zumindest bei mir wollte der nicht sofort starten. Da musste in einer Datei was eintragen/ändern. Aber ich denke du hast ein PC, da brauchste dich wegen der installation bei mir nicht zu melden :smiley:

hab mir letztens schon die Videos dazu angeschaut, genau so sollte so was ausehen (aufm Arduino HaHaHa :slight_smile: )
sehr schick! vor allem die Gestensteuerung für die RGB lampe war cool :slight_smile:

Ach und die Kühlrippen muss ich noch morgen besorgen. Dachte auch an nen kleinen winz Lüfter. Is vielleicht nich verkehrt, da die Rippen wohl nich soooo viel bringen (hat jemand mal getestet). aber immerhin bei Vollast und 3D openGlide Schwitzung 9 Grad besser als ohne. Im Normalbetrieb wars gleich - wegen der blöden Wärmeleitpaste, die ohnehin nur schlecht Wärme leitet (is ja eigentlich nur dazu da damit keine Luft zwischen Kühlkörper und Wärmeproduzent is). Manche hatten sogar in anderen fällen bessere Ergebnsse mit Feinöl.

Schön daß ich Python weglassen kann, scheint mir eh ne ziemliche Krücke zu sein.

Und natürlich Danke für die Links :slight_smile:

Die Installation auf meinem Schleppi (Windoof) krieg ich schon irgendwie hin.

Annekdote zu Mac:
N Freund wurde mal gefragt ob man sich lieber n Mac oder n PC holen sollte. Der meinte - hol dir n Mac. Als er dann gefragt wurde "wie geht denn das?" gabs als Antwort: keine Ahnung, hab keinen Mac :slight_smile:

Weil er sich kein leisten kann.... hahaha :smiley:

sehr guter Link:
http://www.mikrocontroller.net/articles/Evaluations-Platine_für_Heimautomatisierung#Arduino_und_openHAB

[...Mit "get temperature" oder "get brightness" erhält man die Temperatur, bzw. die Helligkeit, falls der jeweilige Sensor angeschlossen ist...]

das is genau die Info, die mir noch gefehlt hat :slight_smile:

Bist n Schatz - Danke :slight_smile: