Forum: Mikrocontroller und Digitale Elektronik Webserver von ELV


von Martin M. (martin69)


Lesenswert?

Hallo,

bei ELV gibt es 3 Webserver:

IP-I/O-Interface IPIO 88, Komplettbausatz
Artikel-Nr.: 68-760-86
59,95 €

IP-Wetterdatenempfänger IPWE 1, Komplettbausatz
Artikel-Nr.: 68-769-34
59,95 €

homeputer-Web-Server für FHZ 1000/1300 PC
Artikel-Nr.: 68-671-09
49,95 €

Hat jemand Erfahrungen damit? Kann man diese eventuell für folgenden 
Zweck benutzen:

Ich habe mir eine Rolladensteuerung gebaut (Atmega128) und habe gerade 
das Redesign weitestgehend fertig, so daß ich die Leiterplatte fertigen 
lassen könnte. Doch vielleicht lohnt es sich noch, eine Schnittstelle zu 
einem Webserver vorzusehen, bevor ich die Leiterplatte ätzen lasse...

Es wäre ne geile Sache, wenn ich den Status der Rolläden abfragen könnte 
und die Rolläden auch per Internet steuern könnte (auf/ab, auch die 
Schaltzeiten (Uhrzeit) für auf und ab verändern).

Wie müßte man Webserver und Rolladensteuerung kommunizieren? RS232? Oder 
mit MOSI/MISO, ...?

Hab zwar die Beiträge hier über selbst gebaute Webserver gesehen, aber 
hab selbst noch keinen Durchblick. Vielleicht erleichtert einem der Kauf 
eines Webservers bei ELV die Sache...

von Jonny O. (-geo-)


Lesenswert?

Hallo Martin,

Möchtest du in jedem Fall einen embedded Webserver nutzen, oder kommt 
für dich auch ein gewöhnlicher PC als Server in Frage, an den du dann 
deine Rolladensteuerung anschließen kannst? Ist letzteres der Fall, ist 
eine Anbindung mittels RS232 sehr einfach. Ich habe hier eine Schaltung, 
mit der ich Sensorwerte über den Browser abfragen kann bzw. Geräte an 
und aus schalten kann. Allerdings muss dann ständig ein PC laufen. Für 
die Anbindung ans Internet nutze ich ein PHP- Programm.

Grüße
geo

von Webserver-Interessent (Gast)


Lesenswert?

Hallo!

Gibt es auch fertige Bausätze für embedded webserver(also nicht 
PC-Basierend)? Wie teuer kommt son Bausatz, wenn ein paar digitale 
Schaltmöglichkeiten ausreichen?(Am besten schon programmierte MCU)

von gast (Gast)


Lesenswert?

Dann brauchst du doch noch n dns server oder?

Wenn du nicht zufällig aus der CH kommst, hast du bestimmt k. feste IP 
dann brauchst du was, was dir überall sicherstellt, dass du dein 
Gerät(oder PC) immer(also nach jeder neuen Einwahl) unter der gleichen 
Eingabe erreichst. Dabei denke ich an die url in einem Browser. Diese 
sollte dich ja immer zum gleichen Gerät linken.

Bei DSL ist ja glaube ich nach 24h Schluss mit lustig und zack, ip weg. 
Und ich gehe mal davon aus, dass du, wenn du im Urlaub bist, nicht nur 
am ersten Tag die Rolläden fernsteuern möchtest ;)

von Simon K. (simon) Benutzerseite


Lesenswert?

Dafür benötigst du dann einen DynDNS-Eintrag + Client.

von Harry (Gast)


Lesenswert?

..oder einen Router der DYNDNS selbst kann ;-)

ps: Die meisten neueren Router haben diese Option bereits drin.

von Jonny O. (-geo-)


Lesenswert?

man kann sich bei dyndns.com registrieren (kostet nichts). Mit einem IP 
Updater den man dort ebenfalls runterladen kann, kann man seine ip infos 
automatisch aktualisieren lassen. Auf diese Weise hast du deine feste 
Adresse, die du anstelle deiner sich ändernden IP nutzen kannst. Klappt 
super und es ist so als hättest du eine statische IP.

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Jonny Obivan wrote:
> Hallo Martin,
>
> Möchtest du in jedem Fall einen embedded Webserver nutzen, oder kommt
> für dich auch ein gewöhnlicher PC als Server in Frage, an den du dann
> deine Rolladensteuerung anschließen kannst? Ist letzteres der Fall, ist
> eine Anbindung mittels RS232 sehr einfach. Ich habe hier eine Schaltung,
> mit der ich Sensorwerte über den Browser abfragen kann bzw. Geräte an
> und aus schalten kann. Allerdings muss dann ständig ein PC laufen. Für
> die Anbindung ans Internet nutze ich ein PHP- Programm.
>
> Grüße
> geo

Hallo geo,

das interessiert mich. Ich bin gerade am Entwickeln einer Alarmanlage. 
In einem späteren Entwicklungsstand habe ich dann auch vor, verschiedene 
Funktionen über einen WEB-Server (der dreht sich eh ständig in meiner 
Kammer)zu steuern. Als Schnittstelle habe ich die RS232 vorgesehen. Von 
Seiten µC ist mir eigentlich alles klar, ich hab aber keine Ahnung wie 
ich die Daten mit einer WEB-Seite lesen/schreiben kann. Ich hatte vor 
das ganze über PHP5 zu machen, habe in dieser Sprache aber bisher nur 
ein wenig rumgespielt und keine Ahnung wie man mit der COM kommuniziert. 
Deshalb eine Bitte: Würdest du mir ein wenig Code zukommen lassen, aus 
dem hervor geht, wie man mit der COM kommuniziert? Das ware ganz lieb.

Danke.

Sven

von Martin M. (martin69)


Lesenswert?

ja, ich benötige einen embedded Webserver. Ich möchte den PC nicht 
ständig laufen lassen.

Mit dem Webserver von ELV könnte man zumindest 8 Digitaleingänge 
schalten und einlesen. Für den Anfang könnte man damit leben. Aber 
Parameter in der Anlage zu editieren ist nicht möglich. Ich suche noch 
nach einer "besseren" Lösung.

Ich habe gesehen, daß Ulrich Rading selbst einen Webserver mit einem 
Atmel aufgebaut hast. Ich würde eher dazu tendieren, einen fertigen 
Baustein zu verwenden. Z.B. von Lantronix gibt es schon welche ab 30€ 
(bei Farnell).

Hat jemand ne Anhnung, ob die folgenden Webserver hierfür geeignet 
wären:
* XPort Direct+
* XPort
* XPort AR

Die Dokus hierzu findet man hier:
http://www.lantronix.com/support/documentation.html#embds

Besser wäre natürlich der "MatchPort b/g", denn da scheint das Ganze 
auch mit WLAN zu gehen. Aber ich denke das wird noch komplizierter als 
per Ethernetkabel...

Müßte man die HTML´s vom Prozessor senden? Ich vermute ja, denn darin 
sollen ja veränderliche Werte (Parameter) stehen. Man kann daher 
sicherlich nur Bilder und immer gleichbleibende HTML´s im Webserver 
ablegen. Korrekt?

Gruß
Martin

von Simon K. (simon) Benutzerseite


Lesenswert?

Wenn du (fortgeschrittene) Ahnung von Programmieren hast, kannst du auch 
beispielsweise meinen Webserver benutzen:
Beitrag "ENC28J60 (Mikro-)Web-Server die Nächste"

Den kann man zum Beispiel so umprogrammieren, dass über eine 
Browserseite Daten über eine serielle Schnittstelle (die an einem 
Pfostenstecker herausgeführt ist) gesendet werden.

Wie gesagt, nur wenn du wirklich Ahnung hast ;) Fertig wird es so etwas 
zugeschnittenes kaum geben.

von Jonny O. (-geo-)


Angehängte Dateien:

Lesenswert?

@ Sven Stefan,

Ich habe mal eine Beispiel.php Datei in den Anhang gestellt. Einfach mit 
dem Texteditor öffnen und am Ende des PHP Codes die folgenden Aufrufe 
entsprechend ändern(jeh nachdem was du für einen Comport hast und welche 
Geschwindigkeit):

rs232init("com2","9600");
senden("com2",$_POST[textfeld]);
$lese = lesen("com2","5");

Anschließend die PHP Datei in das Stammverzeichnis deines Servers legen 
und dann im Browser

http://localhost/Beispiel.php

aufrufen.

Gruß
geo

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Oh, danke. Das werde ich bei Gelegenheit mal ausprobieren. Im Moment 
versteh ich den Code zwar noch nicht so ganz, aber ich fuchs mich da mal 
rein. Zur Not kann ich ja meinen Sohn fragen ;-) .....

Gruß
Sven

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Hallo,

ich habe die Beispiel.php jetzt mal auf meinem Ubuntu-Server (Apache2, 
php5) ausprobiert. Die Seite startet auch, doch leider erhalte ich immer 
den Fehler: fopen(com2) [function.fopen]: failed to open strem: 
Permission denied.

Hab das nun schon mit den Einstellungen com2, tty01, ttyS1 und 
/dev/ttyS1 probiert. Aber immer der selbe Fehler. Was mache ich falsch?

Sven

von Jonny O. (-geo-)


Lesenswert?

Der Fehler kommt bei mir wenn die serielle Schnittstelle nicht geöffnet 
werden kann. Dies kommt vor wenn schon ein anderes Gerät auf die 
Schnittstelle zugreift oder aber die Schnittstelle gar nicht verfügbar 
ist. Mit Zugriffsrechten scheint das nichts zu tun zu haben.

Bist du ganz sicher das der Schnittstellenport stimmt und du bei den 
Funktionsaufrufen (nur ganz unten die) die richtige Schnittstelle 
gewählt hast? Es muss ja nicht com2 sein (com1 com3 com4 usw könnten 
auch möglich sein - probier die mal durch)  Klappt denn die 
Schnittstelle mit einem gewöhnlichen RS232 Monitorprogramm?

Wenn du willst schick ich dir nen RS232 Monitorprogramm

Gruß
geo

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Scheint doch an den Rechten zu liegen. Wenn ich /dev/ttyS3 mit chmod auf 
777 setze kommen keine Fehler mehr. Im Moment kann ich aber nicht sagen 
ob die Kommunikation funktioniert. Muss ich mal schauen, ob ich noch ein 
Crossoverkabel finde um einen anderen PC an den Server zu hängen. Dann 
sehe ich ja ob es geht. Danach wird dann mit µC getestet.

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Hey, bin begeistert! Das funktioniert ja. Ist schon toll. Test 
erfolgreich beendet. Nun kann es an die Feinheiten gehen. Hast du noch 
eine Idee, wie man die Warteschleife in eine Art Polling verwandeln 
kann, also das das php-Script immer an der Seriellen horcht?

Sven

von Jonny O. (-geo-)


Lesenswert?

Hallo Sven,

Fein das es klappt :-)

Was die Sache mit dem Polling betrifft:

Ich würde es Serverseitig auslegen (Eine Dauerschleife in PHP ist nicht 
zu empfehlen). Das heißt eine Anfrage an den µC senden, woraufhin dieser 
eine Antwort mit den geforderten Daten sendet. Also die Kommunikation 
immer vom Server Rechner aus initiieren. Du willst doch ohnehin von 
irgendwo per Browser auf deinen µC zugreifen. Da würde es nichts 
bringen, wenn dein µC dem Rechner etwas mitteilt, aber kein PHP Programm 
läuft. Ein PHP Programm wird ja erst dann gestartet, wenn es von einem 
Browser aus aufgerufen wird. Wenn du deine Anfrage automatisieren 
willst, kannst du im HTML Bereich einen Tag einfügen, der in bestimmten 
Abständen die Seite aktualisiert und dadurch Anfragen generiert und die 
Antworten dann entsprechend ausgibt.

Was genau möchtest du denn machen?

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Da hast du natürlich recht. Es sollte natürlich immer erst jemand die 
Seite aufrufen und wenn das geschieht sendet der Server eine Anfrage an 
den µC und der antwortet entsprechend.

So ganz ist mir das selbst noch nicht klar, was ich genau mit dieser 
Funktion machen will. Ich schrieb ja schon, das ich im Moment an einer 
Alarmanlage bastel. Das ganze Projekt ist vom Plan her recht komplex. Es 
gibt mehrere (bis max. 8) intelligente Türschlösser von denen jedes 5 
Alarmlinien hat und 3 Relais-Schaltausgänge. Die Schaltausgänge sollen 
aber auch vom Netz und von einem Timer aus aktiviert werden können. 
Außerdem habe ich mal noch einen Temperatursensor und einen EPROM für 
Logdateien mit eingebaut. Die Türschlösser sind alle über einen CAN-Bus 
mit einer Hauptsteuerung verbunden. Diese soll dann die Anbindung an den 
Server und an ein Handy haben. An die Hauptsteuerung will ich auch noch 
einen DCF77 hängen.

Interessant als WEB-Anwendung wäre sicherlich, den Zustand der Schlösser 
abzufragen. Aber auch das Ein- und Ausschalten der Schaltstufen sowie 
das Programmieren der Timer sollte funktionieren. Weiterhin hatte ich 
mir vorgestellt die Log-Daten der EPROMS darüber abzufragen und bei 
einer Programmänderung die µC über den CAN-Bus neu zu flashen.

Das wird sicherlich mein Meisterstück werden ;-) und wenn es jeweils 
funktionieren sollte, bin ich bestimmt Rentner... Aber egal ich finde 
darin eine Menge Betätigungsfelder wovon ich von einigen bisher noch 
sehr wenig Ahnung habe. Das ist aber nicht schlimm, da ich das Projekt 
für die nächsten 2-3 Jahre plane. Ist also keine Eile und man lernt 
ständig dazu. Und genau das ist es was mir an diesen Hobby so gefällt.

Schönen Tag noch
Sven

von Jonny O. (-geo-)


Lesenswert?

Hallo sven,

Das hört sich ja sehr spannend an. Kannst dich ja nochmal melden wenn du 
Fragen zum PHP Programm haben solltest. Ich denke das Beispiel lässt 
sich recht einfach erweitern.

Wo du grade von Handy sprichst: Ich habe ein PHP Programm geschrieben, 
dass mir SMS Nachrichten schickt wenn irgendwas passiert. Wenn dich das 
interessiert, stell ichs hier rein. Zum SMS verschicken muss man sich 
aber noch bei einem SMS Anbieter registrieren (zb. www.seriensms.de) 
(registrieren ist umsonst und eine sms kostet ca. 5 cent).

Ich denke das könnte für Alarmanlagenzwecke recht interessant sein. 
Denkbar wäre das der Server eine SMS generiert wenn irgendwas passiert 
und dir eine Nachricht sendet (Achtung Achtung Einbrecher ;-)). Das 
Einbinden von Webcambildern und Audiostreams geht auch recht 
unkompliziert (Für die totale Kontrolle von Überrall sozusagen g ).

Gruß
geo

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Hallo geo,

daran habe ich noch gar nicht gedacht, dass man SMS ja auch über den 
Server verschicken könnte. Würde mich auf alle Fälle auch interessieren. 
Damit würde ich mir den dritten µC in meiner Hauptsteuerung sparen 
können. Ich kann derzeit nur PICs in Assembler programmieren und die 
meisten haben nur eine UART implementiert. Deshalb war mein 
ursprünglicher Plan, drei Controller über I2C zu verbinden damit ich 
drei UART bekomme (CAN-Bus, COM des Servers und Handy). So könnte ich 
einen Kontroller sparen. Allerdings hatte ich auch im Hinterkopf eine 
SMS an das Handy schicken zu können auf die je nach Inhalt der SMS die 
Hauptsteuerung irgendwelche Schaltaufgaben vornimmt. Na mal sehen , 
klingt auf alle Fälle interessant. Ich muss mich sowieso mal intensiver 
mit HTML und PHP beschäftigen...

WEB-CAM hab ich zwar noch keine, daran gedacht hatte ich aber immer 
schon mal, sowas noch mit zu integrieren. Irgendwie hab ich das 
befürchtet, das mein Projekt so ausufert. Aber als erstes muss ich mal 
den Prototyp meines Türschlosses fertig stellen und das Programm dazu 
schreiben...

Sven

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Hallo geo,

so groß wie die Freude gestern war, kämpfe ich heute wieder genau mit 
dem selben Fehler und bekomme es diesmal aber nicht hin. Gestern war der 
Fehler weg, nachdem ich /dev/ttyS0 die Rechte 777 verpasst habe. Heute 
(nach einem Neustart des Servers) ist der Fehler wieder da. Die Rechte 
von ttyS0 hatten sich wieder zurückgesetzt und ein chmod 777 bringt 
heute nichts. Der Fehler bleibt. Auser das der Server über Nacht aus war 
habe ich an dem gestrigen Zustand nichts geändert. Was klappt den hier 
nicht und wo muss ich suchen? Kenne mich mit Linux leider nur 
oberflächlich aus und hier Fehlen mir jetzt die Grundlagen. Hat einer 
einen Tip? Danke.

Ach ja: Ein 'echo "Hallo" >/dev/ttyS0' auf dem Server klappt aber.

Sven

von Jonny O. (-geo-)


Lesenswert?

Bei Linux kann ich dir leider nicht weiterhelfen. Ich nutze WinXP und 
das XAMPP-Apache-Mysql-PHP Paket. Vermutlich sieht das da mit den 
Zugriffsrechten daher auch anders aus. Mal gucken - ev. meldet sich hier 
noch jemand.

Gruß
geo

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Das XAMPP hatte ich auch schon mal auf einem 2000er Server installiert. 
Ging eigentlich ganz gut. Ich wollte zwar ein wenig mehr in Richtung 
Linux machen, aber genau solche Probleme an denen man dann Tage lang 
sitzt um irgend eine Kleinigkeit hinzubekommen, treiben mich dann immer 
wieder zurück in die Hände von µ$ :-) Da werde ich wohl meinen 2000er 
Server wieder einschalten müssen und es mal damit ausprobieren. Das 
klappt dann sicher.

Gruß
Sven

PS: Denkst du mal noch an das SMS-Script?

von Jonny O. (-geo-)


Angehängte Dateien:

Lesenswert?

Hab die SMS- Beispieldatei mal angehängt.

Nach Registrieren bei Seriensms.de in der Beispieldatei statt 11111111 
die Handynummer eingeben, die man bei der Registrierung angegeben hat 
(Ist nicht die Empfängernummer sondern ne Art Benutzername)dann für 
xxxxxx das Passwort eingeben. Man erhält 23 Cent umsonst bei der 
Anmeldung - müsste zum Testen reichen.

Gruß
geo

von bobby (Gast)


Lesenswert?

Hallo Sven,

hab jetzt kein Ubuntu, sondern SuSE.
Hier genügt es, wenn Du Mitglied der Gruppe "uucp" wirst.
Dann kann die serielle Schnittstelle problemlos genutzt werden.

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Hallo,

ich hab das Beispiel.php nun mal auf einen anderen PC unter WinXP, XAMPP 
und PHP5 ausprobiert. Doch leider tritt hier genau der selbe Fehler auf. 
Nun habe ich keine rechte Idee mehr.

Was ich noch herausgefunden habe: Wenn ich vor der Ausführung des 
scripts den Status der COM mit "mode COM2: /status" abfrage, ist alles 
in Ordnung. Nach der Ausführung des Scripts bingt der mode Befehl den 
Fehler "Gerät COM2: ist momentan nicht verfügbar."

Woran kann das liegen und wie kann ich den Fehler abstellen?

Sven

von Jonny O. (-geo-)


Lesenswert?

Sven Stefan wrote:
> Hallo,
>
> ich hab das Beispiel.php nun mal auf einen anderen PC unter WinXP, XAMPP
> und PHP5 ausprobiert. Doch leider tritt hier genau der selbe Fehler auf.
> Nun habe ich keine rechte Idee mehr.
>
> Was ich noch herausgefunden habe: Wenn ich vor der Ausführung des
> scripts den Status der COM mit "mode COM2: /status" abfrage, ist alles
> in Ordnung. Nach der Ausführung des Scripts bingt der mode Befehl den
> Fehler "Gerät COM2: ist momentan nicht verfügbar."
>
> Woran kann das liegen und wie kann ich den Fehler abstellen?
>
> Sven

Mh - komisch. Das scheint fast so als würde die Schnittstelle nicht mehr 
geschlossen. Wenn ich das Skript laufen lasse, ist die Schnittstelle nur 
für den Zeitraum nicht verfügbar in welchem die Schnittstelle geöffnet 
ist (Und das ist in der Regel nur der Zeitraum vom Klicken des 
Sendenbuttons bis zu dem Zeitpunkt 5 Sekunden später wenn die 
empfangenen Zeichen ausgegeben werden und die Schnittstelle wieder 
geschlossen wird). Ich würde mal spontan sagen dass irgendwas am Script 
nicht optimal ist, oder der PHP Interpreter das nicht so interpretiert 
wie es gedacht ist.

Ich habe hier eine USB nach RS232 Schnittstelle am Laptop und mit der 
funktioniert es normal. Ev. gibt es da irgendeinen Konflikt mit der 
regulären Schnittstelle? Was ich auch komisch finde ist das es ja schon 
mal geklappt hat und nun nicht mehr.

Vermutlich ist es doch das beste ein CGI Programm zu nutzen. PHP ist 
einfach nicht für hardwarenahe Programmierung gedacht. Aber es wäre 
natürl. schon schön wenn es immer klappen würde.

Ev. meldet sich noch jemand zu dem Thema

Gruß
geo

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.