2016-06-21 4 views
-1

Nur ein paar Tage nachdem wir uns entschlossen hatten zu reisen, dachte ich, ich müsste das Haus irgendwie überwachen, während wir weg sind. Also muss ich einen Mikrocontroller an die Appliances anschließen und ihn über das Web-Interface steuern, um sie ein- oder auszuschalten, und was ich versuche, meinen Heim-PC in einen Server zu verwandeln, und ich habe bereits Apache installiert und konfiguriert Jetzt, um den Mikrocontroller über die Webseite zu steuern, muss ich serielle Daten über den DB9-Port senden. Die Frage ist, was ist der beste Weg, um serielle Daten aus HTML zu senden? Ist es durch Javascript oder ist es etwas anderes? Und wie?Wie kommuniziert man mit dem Mikrocontroller über eine Webschnittstelle?

+0

zu viele gute Lösungen, um eine Antwort zu geben. das ist zu breit und auch primär meinungsbezogen ... –

Antwort

0

Kurze Antwort:

HTML

Javascript

... und 1 Sprache, die Unterstützung für TCP-Sockets und Geräte (DB9) hat.

Dies könnte C, C++, Python, Ruby, C#, Objective-C, Java und so weiter sein.

Lange Antwort:

  1. Der Web-Server (HTML/Javascript/CSS)

  2. Der RESTful Server (C oder Java oder andere: Dieses System 3 Komponenten haben würde)

  3. Der serielle DB9 - Server (Tiny C/Assembly/Other)

Der beste Weg, diese Ergebnisse zu erzielen, ist die Erstellung eines sogenannten RESTful-API-Servers, der in einer Sprache geschrieben ist, die gut in Ihr Betriebssystem integriert ist. Sie müssen ein Programm schreiben, das TCP-Verbindungen akzeptiert, vorzugsweise über Port 80 oder 443 (zur Sicherheit). Das Programm parst dann HTTP-Daten, Header und Körper usw. und gibt dementsprechend einen Befehl an den Mikrocontroller aus.

Hier ist eine gute Anleitung, Rest: Dr. Dobbs Rest

Ich nehme an, Sie wissen, wie Daten über eine serielle Schnittstelle zu senden. Wenn Sie in Linux und Sie eine im Verzeichnis "dev" eingehängt haben, können Sie einfach in die entsprechende Datei schreiben. In anderen Situationen habe ich das Linux-Programm "screen" vorher geskriptet.

Sie können Ihr Serverprogramm in jeder Sprache schreiben, die Zugriff auf TCP-Sockets hat, was normalerweise durch sys-Aufrufe auf Ihrem Betriebssystem erleichtert wird.

Die RESTful-API kann getrennt von Ihrem eigentlichen HTML-Serverprogramm sein ... welches Apache ist. Fügen Sie dann innerhalb Ihres gelieferten HTML-Inhalts ein javascript onclick-Ereignis ein, das eine erholsame Anfrage an Ihren erholsamen Server sendet.