Sango, das in diesem Artikel verwendet wird, ist derzeit nicht verfügbar, da der Dienst beendet wurde. Verwenden Sie stattdessen etwas wie AWS IoT.
Machen Sie es möglich, die Klimaanlage mit möglichst geringem Aufwand unterwegs zu betreiben. Es kostet mehr als wenn Sie Ihr eigenes mit Infrarotlichtempfangselement + Infrarot-LED wegen der Auslassung machen. Verwenden Sie MQTT, da die Leitung ein Wohnungstyp ist und nicht direkt von außen zugänglich ist.
Infrarot-Fernbedienung Advance Eine Windows-Desktop-App des Herstellers Bit Trade One. Ich denke, es ist eine gute Idee, den Betrieb und die Benutzerfreundlichkeit einmal zu überprüfen. http://bit-trade-one.co.jp/product/module/adir01p/
Lassen Sie uns zunächst die Infrarot-Fernbedienung vom Raspelkuchen aus bedienen.
Erstellen Sie ein geeignetes Verzeichnis und verwenden Sie "git clone" als Werkzeug, um Infrared Remote Control Advance in der Befehlszeile zu bedienen.
$ mkdir /home/pi/aircon
$ cd /home/pi/aircon
$ git clone https://github.com/Drunkar/bto_ir_advanced_cmd.git
Installieren Sie libusb-1.0.0
. Erforderlich, um das Tool zu erstellen.
[Ergänzung] Es scheint, dass "libusb-1.0.0-dev" ebenfalls erforderlich ist.
https://qiita.com/Kaz-su/items/93ec120b4bb90de7da2b#comment-2ff5f5b73f0ff8ecea44
$ sudo apt-get install libusb-1.0.0
$ sudo apt-get install libusb-1.0-0-dev
make
. Sie können jetzt Infrared Remote Control Advance über die Befehlszeile verwenden.$ cd bto_ir_advanced_cmd
$ make
$ sudo make install
Schließen Sie den Vorschub der Infrarot-Fernbedienung an den Raspelkuchen an und speichern Sie das Fernbedienungssignal der Klimaanlage. Erstellen Sie ein Einschalt-Signal für die Heizung, eine Stoppsignaldatei für die Klimaanlage usw.
** [Empfangen beginnen] **
$ bto_advanced_USBIR_cmd -r
(Drücken Sie zum Vorrücken der Infrarot-Fernbedienung die Taste auf der Fernbedienung.)
** [Ende des Empfangs] **
$ bto_advanced_USBIR_cmd -s
** [Signal in Datei schreiben] **
$ bto_advanced_USBIR_cmd -g | tee data.txt
Erstellen Sie ein Skript zum Senden. (Ich habe es von einer Seite ausgeliehen, aber ich habe vergessen ... es tut mir leid)
$ vi send_ir
send_ir
#!/usr/bin/python3
import os
import sys
def send(code):
os.system('/usr/local/bin/bto_advanced_USBIR_cmd -d ' + code)
if __name__ == '__main__':
argv = sys.argv
try:
filename = argv[1]
if os.path.isfile(filename) is True:
f = open(filename, 'r')
code = f.read()
send(code)
sys.exit(0)
else:
sys.stderr.write('File not found.\n')
sys.exit(-1)
except (OSError, IndexError):
sys.stderr.write('File not found.\n')
sys.exit(-1)
Signalübertragung der Infrarot-Fernbedienung mit dem erstellten Skript
$ ./send_ir data.txt
Hat die Klimaanlage funktioniert?
Mit anderen Worten, wenn Sie " ./send_ir data.txt
"remote ausführen können, können Sie die Klimaanlage von außen bedienen.
Verwenden Sie MQTT, um die Fernsteuerung über das Internet zu aktivieren. (Die Erklärung von MQTT wird weggelassen ...)
Betreten Sie die Sango-Konsole und notieren Sie sich die MQTT-Verbindungsinformationen.
Installieren Sie die Python-MQTT-Bibliothek.
$ pip install paho-mqtt
Erstellen Sie ein Skript zum Abonnieren von MQTT basierend auf den MQTT-Verbindungsinformationen.
Mit der Meldung aircon_heat_on
wird das Heizungssignal eingeschaltet
Dies ist ein Beispiel, das ein Signal zum Stoppen der Klimaanlage mit der Meldung "aircon_off" sendet.
$ vi subscribe.py
subscribe.py
# coding:utf-8
import paho.mqtt.client as mqtt
import commands
def on_connect(client, userdata, flags, rc):
print('Connected with result code '+str(rc))
client.subscribe("[topic]")
def on_message(client, userdata, msg):
print(msg.topic + ' ' + str(msg.payload))
if msg.payload == "aircon_heat_on":
print "aircon heat ON!"
print commands.getoutput("./usbir_send ./aircon_heat_on.txt")
if msg.payload == "aircon_off":
print "aircon OFF!"
print commands.getoutput("./usbir_send ./aircon_off.txt")
if __name__ == '__main__':
username = '[username]'
password = '[password]'
host = 'lite.mqtt.shiguredo.jp'
port = 1883
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set(username, password=password)
client.connect(host, port=port, keepalive=60)
client.loop_forever()
Lass subscribe.py
laufen
Es scheint, dass hogehoge
weiterhin im Hintergrund funktioniert, selbst wenn ssh mit $ nohup [hogehoge] &
geschnitten wird. Es ist unglaublich.
$ nohup python subscribe.py &
Stellen Sie über MQTT Dash eine Verbindung zu Sango her und senden Sie eine Nachricht an [Thema] "aircon_heat_on" oder "aircon_off"
Haben die Wörter "Klimaanlagenheizung EIN!" Oder "Klimaanlage AUS!" Auf der Raspeye-Konsole angezeigt und die Klimaanlage funktioniert? Jetzt können Sie die Klimaanlage einschalten, bevor Sie nach Hause gehen. Ist es das beste Ich denke, es kann auf verschiedene Dinge wie Fernsehen angewendet werden, also versuchen Sie bitte, verschiedene Dinge zu machen.
――Wenn Sie sich für den Mechanismus der Infrarot-Fernbedienung interessieren, sollten Sie ein Infrarot-Lichtempfangselement, eine Infrarot-LED sowie ein Steckbrett und ein Experiment vorbereiten. --Bitte beachten Sie, dass die nicht erweiterte Infrarot-Fernbedienung wahrscheinlich über ein anderes Befehlszeilen-Tool zum Senden und Empfangen verfügt.