Forum: Mikrocontroller und Digitale Elektronik Arduino - Webserver


von Christian Z. (christian_z71)


Lesenswert?

Hallo Forum!

Ich bin auf der Suche nach jemanden der mir beim Arduino Webserver 
helfen kann.

Was soll der Webserver können?
Konkret:
-) Startseite - z.B. Hallo Welt mit 2 Links
-) 1ter Link - Statusseite mit I/O's - Passwortgeschützt!
-) 2ter Link - Seite zum Steuern der Ausgänge - Passwortgeschützt!


Bis auf die Bedienung funktioniert die Seite schon - ich kann NUR keine 
Ausgänge schalten.
Wer kann mir weiterhelfen?

Bitte um Hilfe!

Schöne Grüße
Christian

von Fabian B. (Gast)


Lesenswert?

schreib doch einfach dein Problem hier rein? Warum soll dir nur eine 
Person helfen.

von Hawa M. (hawamand)


Lesenswert?

Der Fehler befindet sich auf Zeile 42

von Christian Z. (christian_z71)


Lesenswert?

@ Fabian: Mein Problem hab ich geschildert....
@ hawa mand: Welche Zeile 42?

Nachtrag: Ich würde den Code dann posten, wenn sich jemand angesprochen 
fühlt und mit weiterhelfen kann.

von kein adruasd freund (Gast)


Lesenswert?

Hi,

es ist immer schwierig jemanden zu helfen der sein Problem nur grob 
schildert aber schon etwas hat was teilweise funktioniert. Da kann man 
dann nur raten woran es liegt.

Generell bist du nicht der Erste der das versucht, daher würde ich dir 
vorschlagen, dass du erstmal schaust wie es die anderen Realisierunen 
machen (gibt auch nicht nur Adruino auf der Welt). Wenn du dann eine 
konkrete Frage hast hilft man hier gerne.

Btw. du kannst z.B. die Routine die aufgerufen wird, wenn eine Anfrage 
kommt, posten, das wäre schon mal ein guter Anfang bzw. Ansatzpunkt.

von Fabian B. (Gast)


Lesenswert?

Ich sehe kein Problem, nur eine Aufgabenstellung.

Funktioniert nicht ist keine Angabe.


Einfach Posten an welchen Stellen es haken könnte und das gucken sich 
mehr Leute an. Darum bitten dir helfen zu dürfen tun nur wenige (oder 
keine?).

hawamand meint wohl Zeile 42 in Datei 42.

von Christian Z. (christian_z71)


Angehängte Dateien:

Lesenswert?

Hallo!
Andere Systeme werden anders arbeiten als Arduino (so meine Meinung). 
Bin auch kein C-Programmierer - sonst würd ichs wahrscheinlich lösen 
können.
Ich kann nur den ganzen Code posten - weil ich ja nicht weiß worans 
liegt.

Vielleicht kann mir jemand dabei helfen den Code so umzuschreiben, dass 
dieser auch einen Bedienung mittels Passwortschutz möglich macht.

Grüße
Christian

von als cpp file (Gast)


Angehängte Dateien:

Lesenswert?

wenn als cpp file hochgeladen wird der text formatiert dargestellt...

von als cpp file (Gast)


Lesenswert?

...in der Codeansicht...

von kein adruasd freund (Gast)


Lesenswert?

Hi,

im Prinzip ist es nicht großartig unterschiedlich zu anderen Systemen. 
Zunächst solltest du verstehen was GET und POST macht und dir Firebug 
bzw. WireShark installieren und dir mal anschauen wie so eine Verbindung 
überhaupt aussieht.

Wenn du das hast würde ich hiermit anfangen

if (type == WebServer::POST){ ...

Damit kannst du prüfen ob das eine Anfrage vom Client ist, wenn es eine 
ist, würde ich mir die via serieller Schnitstelle ausgeben lassen und 
schauen was da ankommt und mir dann die Brocken raussuchen die 
interessant sind.

von Christian Z. (christian_z71)


Lesenswert?

Hallo!
Im Wordpad öffnen ists lesbar...

Im Prinzip bringt mir aber nichts....ich versteh auch nicht was es 
bringen soll (wo doch Webserver und PW-Abfrage bereits funktionieren), 
diese SW zu installieren. Zudem - seriell hab ich nicht sondern USB. Ich 
kann mir denken wo der Weg hinsoll nur - ICH bin kein Programmierer der 
Datenpakete analysieren kann.

Ich habe das Problem geschildert und bitte nun, jemand wissenden mir 
dabei zu helfen den Code weiterzuentwickeln, damit ich einen Ausgang 
steuern kann.

Nicht mehr und auch nicht weniger.....

Grüße

von Karl H. (kbuchegg)


Lesenswert?

Christian Z. schrieb:
> Hallo!
> Im Wordpad öffnen ists lesbar...

es geht nicht ums Wordpad.
Es geht darum, dass ich hier im Forum auf den Link zur Codeansicht 
klicken kann und dann krieg ich im Browser ein Fenster in dem dein Code 
mit Syntax-Coloring angezeigt wird.
Aber nur, wenn du es als c-file oder cpp-file ins Attachment hängst.
Daher die Bitte.


> Im Prinzip bringt mir aber nichts....

Doch, das bringt sogar jede Menge.
Denn dann siehst du erst mal, was so ein Web-Browser eigentlich so 
sendet, wenn er die Anfrage macht bzw. was er sendet, wenn eine Form 
abgeschickt wird. Und das ist immer einer der erste Punkte: erst mal 
muss klar sein, welchen Input ein Programm eigentlich bekommt, bzw. wie 
das funktioniert.

Und dann kannst du in den Code Ausgaben (über UART oder eben bei dir 
über USB - was für dich dasselbe ist) einbauen, sodass dir der 
Web-Server selber mitteilt, was er eigentlich empfängt, welche 
Codewörter er erkannt hat und wie er darauf reagiert. Und das ist schon 
mal um 100% besser, als wie wenn du im Nebel stochern musst.

> Ich habe das Problem geschildert und bitte nun, jemand wissenden mir
> dabei zu helfen den Code weiterzuentwickeln

OK. Klartext.
Nenn die Dinge beim Namen. Du hast den Code irgendwo abgeschrieben oder 
geklaut und brauchst jetzt jemanden, der ihn für dich fertig schreibt. 
Es ist ziemlich unwahrscheinlich, dass du im Stande bist einen 
Web-Server zu schreiben aber es nicht schaffst ein paar Ausgänge zu 
setzen.
Wir verstehen hier eh ziemlich viel. Aber was wir nicht abkönnen, das 
ist wenn uns jemand versucht für dumm zu verkaufen.

von Eumel (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Wir verstehen hier eh ziemlich viel. Aber was wir nicht abkönnen, das
> ist wenn uns jemand versucht für dumm zu verkaufen.

Und Arbeitsleistung für lau zu schnorren.
Du willst keine Hilfe. Du willst, dass etwas für dich gemacht wird.
Da ist ein großer unterschied.

von Michael K. (Gast)


Lesenswert?

Christian Z. schrieb:

> diese SW zu installieren. Zudem - seriell hab ich nicht sondern USB. Ich

USB:  Universal Serial Bus ...
Und ja, Du kannst über USB per Terminal mit dem Arduino reden.

> Nicht mehr und auch nicht weniger.....

Dazu wurde ja schon was gesagt. Ich sehe es genauso: Wenn Du nicht 
selbst etwas tun willst darfst Du auch nicht erwarten, daß andere es für 
Dich tun. Mit einer Ausnahme: Du bezahlst für die Arbeitsleistung derer, 
die Deine Arbeit machen.

von Christian Z. (christian_z71)


Lesenswert?

Hallo!
Sicher hab ich den Code auf diversen Seiten gefunden - von KLAUEN kann 
keine Rede sein - sonst würde er mir nicht bekannt sein.
Der Code wurde auf jeder Seite zur Verfügung gestellt.

Da ich selbst kein Programmierer bin, weder Java, HTML, noch C hab ich 
dieses Forum aufgesucht.
Und ja, ich Suche Hilfe damit mir jemand hilft. Wenn du darunter 
verstehst, es soll mir jemand den falschen Teil richtig stellen - ja 
bitte!
Gibts ja in anderen Bereichen auch - zb. im Excel-Forum, SPS-Foren, etc.

Verkaufen möcht ich gar nix - ich habe ein Problem und Suche hier Hilfe.
Ich verkaufe niemanden für dumm - aber ich habe ein Problem - den Code 
gepostet und hoffte, dass sich jemand (hobbymäßig) damit 
auseinandersetzt, und mir beim Problem weiterhelfen kann.
Nicht mehr und nicht weniger.....
Grüße

PS: Dass in diesem Forum der Code angezeigt werden kann, wußte ich 
nicht.
PPS: Und ich bin auch in anderen Foren, wo es beispielsweise durch 
zusenden und austesten und Richtigstellung des Codes einem 
weitergeholfen wird. Vielleicht war das der Grund der Annahme dass dem 
hier auch so ist.

von Karl H. (kbuchegg)


Angehängte Dateien:

Lesenswert?

Dein Code sieht so aus, als ob er für einen webduino gemacht wäre. Laut 
Homepage kommt der mit einem Beispiel, an dem man sich das alles mal 
ansehen kann.

von Karl H. (kbuchegg)


Lesenswert?

Christian Z. schrieb:

> PPS: Und ich bin auch in anderen Foren, wo es beispielsweise durch
> zusenden und austesten und Richtigstellung des Codes einem
> weitergeholfen wird. Vielleicht war das der Grund der Annahme dass dem
> hier auch so ist.

Ist auch hier so.
Aber wir sind keine Vereinigung freischaffender Ingenieure, die nur 
darauf warten, dir deine Probleme komplett von A bis Z zu lösen. Wir 
verstehen uns als ein Verein, der dir Hilfe zur Selbsthilfe gibt. D.h. 
in erster Linie erledigst DU DEINE Arbeit. Und nicht wir. Und wenn dazu 
gehört, dass du erst mal einige Tage lernen musst, wie die 
zugrundeliegenden Mechanismen funktionieren, dann ist das eben so un ist 
dein Problem.

Der Ansatzpunkt wurde ja schon genannt. Wenn der Client (der Browser) 
eine Form abschickt, dann schickt er einen POST zum Server. Dort kannst 
du dich einklinken, den restlichen Text im POST analysieren und nach 
Bedarf dann deine Ausgänge schalten.

von Christian Z. (christian_z71)


Lesenswert?

Hallo!
Dort ist aber kein PW-Schutz dabei. Und um den gehts mir schlußendlich.
Und diser funktioniert nur zum Teil.
Wie man den Status sich anzeigen läßt weiß ich ja, wie man Ausgänge 
setzt ebenso. Packt man diese Funktionen unter einen PW-Schutz 
funktioniert das Setzen der Ausgänge nicht mehr.
Grüße

von Karl H. (kbuchegg)


Lesenswert?

Was ist mit
1
       if (server.checkCredentials("dXNlcjp1c2Vy"))
2
         {
?
Funktioniert das so erst mal nicht?


Ich würds so machen:
In der Funktion, die das Formular aufbaut, in deinem Beispiel hier
1
  void htmlButton( WebServer server, char * label, char *name, int nameId, char *value)
2
      {
3
          P(buttonBegin) = "<form action='/private' method='POST'><p><input type='hidden'name='";
4
            server.printP(buttonBegin);
kommt am Anfang genau die gleiche Abfrage nach den Credentials rein, so 
dass der Web-Browser das Formular schon mal nicht ohne User/Passwort zu 
Gesicht bekommt.
Gleichzeitig benutze ich im Form einen hidden Parameter, der zb aus 
einer Zufallszahl besteht. Und wenn vom Client das OK für das Formular 
zurückkommt, prüfe ich, ob die vom Client mitgegebene Zufallszahl im 
Hidden Parameter mit meiner gespeicherten am Server übereinstimmt. Tut 
sie das, dann ist der POST gültig und wird ausgewertet. Tut sie es 
nicht, dann wird der POST ignoriert bzw. mit er Fehler-Seite 
beantwortet.

Alles in allem scheint mir das mit der Vorarbeit, die der 
Klassenersteller geleistet hat, nicht weiter schwer zu sein.

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
Noch kein Account? Hier anmelden.