Ich arbeite an meinem Hausautomationsprojekt. Ich habe einen Server auf Digital Ocean. Ich möchte meinen PHP-Code auf diesen Server legen und dieser Server stellt eine Verbindung zu meinem Raspberry Pi her. Wie kann ich Nachrichten zwischen meinem Server und Raspberry Pi weitergeben? Ich möchte meine Website über das Internet steuern.
Licht einschalten (aus dem Internet) -> Digital Ocean Server -> My Home Router -> Raspberry Pi
Und umgekehrt. Der Grund, warum ich diese Frage schreibe, ist, wie man diese Dinge verbindet. Jedes Mal, wenn der Server eine Nachricht empfängt, muss er eine Nachricht an Raspberry Pi weitergeben (Push) oder Raspberry Pi muss prüfen, ob eine Nachricht für mich vorhanden ist oder nicht (Umfrage). Aber wie geht das? So übertragen Sie Nachrichten zwischen Intranet und Internet.
UPDATE: Ich habe einige Sachen gefunden. Kann mir jemand sagen, ob es nützlich ist oder nicht. Weil ich neu darin bin.
https://nodejs.org/api/http.html#http_http
http://aiohttp.readthedocs.io/en/stable/client.html
quelle
Wenn Sie sich für die Route von MQTT entscheiden, müssen Sie auf dem Pi Folgendes tun :
Wählen Sie eine Sprache aus, in die der Clientcode geschrieben werden soll. Die Bibliotheken, die Sie in Ihrer Bearbeitung verknüpft haben, sind HTTP-Bibliotheken für Node.js bzw. Python. Ihre Wahl hängt also davon ab, in welcher Sie sich am wohlsten fühlen.
Suchen Sie eine MQTT-Clientbibliothek für Ihre Sprache. Ich würde nicht empfehlen, eine HTTP-Bibliothek direkt zu verwenden. Es ist zu viel Arbeit, MQTT über eine unformatierte Verbindung zu verwenden. Verwenden Sie stattdessen eine Bibliothek wie
paho-mqtt
für Python. Es gibt einige Beispiele bei HiveMQ .Abonnieren Sie ein Thema, das angibt, ob das Licht eingeschaltet sein soll .
Hier ist ein Beispiel dafür mit
paho-mqtt
:Sie müssen nur implementieren
lightbulb_on
undlightbulb_off
dann die Nachrichton
oderoff
an das MQTT-Thema senden, um denlightbulb/state
Status der Glühbirne umzuschalten. Dies würde von dem Gerät aus erfolgen, von dem aus Sie die Glühbirne steuern möchten.quelle
Vielleicht möchten Sie sich Beispiele des MQTT-Protokolls ansehen. Es wird Ihnen helfen, Server und Pi über einen Broker zu verbinden, um die Pub-Sub-Kommunikation zu ermöglichen.
Versuchen Sie Folgendes: https://github.com/bluerhinos/phpMQTT und https://eclipse.org/paho/clients/java/ Behalten Sie einfach die MQTT-Spezifikationsversion im Auge, die von den Clients / Brokern unterstützt wird. Ich erwähne dies, weil dies Projekte aus verschiedenen Repositories sind.
quelle