Forum: Mikrocontroller und Digitale Elektronik Atmega über Debian 5 webserver steuern


von Oliver B. (Gast)


Lesenswert?

Schön guten Tag @all,
ich heiße Oliver bin 25 Jahre alt und komme aus lübeck.

Ich weiß nicht ob ich hier richtig bin mit diesem tehma aber ich hoffe 
ihr könnt mir irgend wie helfen, denn über google habe ich nicht die 
antworten bekommen die ich mir vorgestellt habe.

Ich wollte gerne meinen Debian 5 webserver (500 MHz, 256 MB RAM) den ich 
bei mir laufen habe, dazu benutzen über z.b. eine PHP seite einen atmega 
anzusteuern der dann halt gewisse dinge tun soll, bzw. über can-bus 
befehle weiter gibt und natürlich auch anders rum der atmega seine daten 
zur auswertung an den webserver sendet und über eine php seite wieder 
aus gibt.
Bin da bei mir eine hausatomatisierung zu bauen und wollte dies 
natürlich dann auch von unterwegs verwalten können, auf den webserver 
greifen höchstens 10 leute zu wenn überhaupt, habe mir schon den avr 
webserver angeschaut und nach gebaut, aber wenn ich sowieso schon ein 
webserver laufen habe bietet sich diese möglichkeit ja an.
wäre das so möglich oder habt ihr bessere tipps??

Gruß Oliver

von M92 (Gast)


Lesenswert?

Hallo,

die einfachste Möglichkeit wäre dein Atmega per RS232 mit deinem 
Webserver zu verbinden. Per PHP ist soweit ich weiß eine Verbindung mit 
der seriellen Schnittstelle möglich. Ansonsten kannste dir auch in ner 
anderen Programmiersprache nen Programm für die Verbindung zur seriellen 
Schnittstelle schreiben und z.B. per shell_exec() in PHP aufrufen.

Ansonsten gibts die m.M.n. bessere Lösung über den Avr-Webserver. Den 
kannste ja per Ethernet in dein Netzwerk einbinden und dein 
Debian-Webserver holt/sendet über eine PHP-Socket-Verbindung die Daten. 
Der Avr-Webserver ist dann zugleich auf für deine Haussteuerung 
zuständig.
Den Avr-Webserver würde ich dann nur für den Zugriff vom Debian-Server 
aus freigeben.

Hoffe, das hilft.

Gruß
Michael

von TestX .. (xaos)


Lesenswert?

Oliver B. schrieb:
> Ich wollte gerne meinen Debian 5 webserver (500 MHz, 256 MB RAM) den ich
> bei mir laufen habe, dazu benutzen über z.b. eine PHP seite einen atmega
> anzusteuern der dann halt gewisse dinge tun soll, bzw. über can-bus
> befehle weiter gibt und natürlich auch anders rum der atmega seine daten
> zur auswertung an den webserver sendet und über eine php seite wieder
> aus gibt.

gerade das senden der daten AN den webserver ist ein problem... 
normalerweise nimmt der nur http requests entgegen... damit der auch auf 
can nachrichten etc reagiert kannst du ihn böse aufbohren oder die 
elegante lösung ist einen deviceserver zu schreiben, der mit dem 
webserver bzw. deiner webanwendung über ethernet kommuniziert, so mach 
ich das zB. der device server ist in java geschrieben und kümmert sich 
um echtzeit geschichten und hardware abstraktion. die steuerung selber 
läuft aber auf php basis..

von Hans (Gast)


Lesenswert?

Andi D. schrieb:
> gerade das senden der daten AN den webserver ist ein problem...
> normalerweise nimmt der nur http requests entgegen... damit der auch auf
> can nachrichten etc reagiert kannst du ihn böse aufbohren oder die
> elegante lösung ist einen deviceserver zu schreiben, der mit dem
> webserver bzw. deiner webanwendung über ethernet kommuniziert, so mach
> ich das zB. der device server ist in java geschrieben und kümmert sich
> um echtzeit geschichten und hardware abstraktion. die steuerung selber
> läuft aber auf php basis..


Häh?
Wieso ist das Senden der Daten an den Webserver ein Problem?
Der AVR muss doch nicht von selber Daten an den Webserver senden, das 
interessiert den Webserver doch nicht.

Der oben aufgezeigte Weg mit der seriellen Schnittstelle ist sicherlich 
der beste und ressourcenschonendste.
Wenn Daten vom Browser über den Webserver an den AVR gehen sollen, 
werden die halt vom Browser per Put/Get gesendet und über ein 
entsprechendes Skript wird das dann über die serielle Schnittstelle 
übergeben.
Andersrum geht das genauso: Wenn Daten aus dem AVR ausgelesen werden 
sollen, dann holt sich das Skript die entsprechenden Daten aus dem AVR, 
bearbeitet die und stellt die entsprechend dar.
Im Grunde eine ziemlich triviale Sache. Oliver muss sich halt nur ein 
simples Protokoll für die Kommunikation PC<->AVR überlegen, dann läuft 
das.

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.