Le sango utilisé dans cet article est actuellement indisponible car le service est terminé. À la place, vous devriez utiliser quelque chose comme AWS IoT.
Permet de faire fonctionner le climatiseur en déplacement avec le moins d'effort possible. Cela coûte plus cher que si vous fabriquez le vôtre avec un élément récepteur de lumière infrarouge + LED infrarouge en raison de l'omission. Comme la ligne est de type appartement et n'est pas accessible directement de l'extérieur, utilisez MQTT.
Infrared Remote Control Advance Une application de bureau Windows créée par Bit Trade One, le fabricant. Je pense que c'est une bonne idée de vérifier une fois le fonctionnement et la convivialité. http://bit-trade-one.co.jp/product/module/adir01p/
Tout d'abord, faisons fonctionner la télécommande infrarouge à partir de la tarte à la râpe.
Créez un répertoire approprié et utilisez git clone
comme outil pour utiliser Infrared Remote Control Advance sur la ligne de commande.
$ mkdir /home/pi/aircon
$ cd /home/pi/aircon
$ git clone https://github.com/Drunkar/bto_ir_advanced_cmd.git
Installez libusb-1.0.0
. Requis pour créer l'outil.
[Ajout] Il semble que libusb-1.0.0-dev
soit également requis.
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
$ cd bto_ir_advanced_cmd
$ make
$ sudo make install
Connectez l'avance de la télécommande infrarouge à la tarte à la râpe et limez le signal de télécommande du climatiseur. Créez un signal de chauffage ON, un fichier de signal d'arrêt du climatiseur, etc.
** [Commencer à recevoir] **
$ bto_advanced_USBIR_cmd -r
(Vers l'avance de la télécommande infrarouge, appuyez sur le bouton de la télécommande.)
** [Fin de la réception] **
$ bto_advanced_USBIR_cmd -s
** [Ecrire le signal dans le fichier] **
$ bto_advanced_USBIR_cmd -g | tee data.txt
Créez un script pour l'envoi. (Je l'ai emprunté à la page de quelqu'un, mais j'ai oublié ... je suis désolé)
$ 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)
Transmission du signal de la télécommande infrarouge avec le script créé
$ ./send_ir data.txt
Le climatiseur a-t-il fonctionné? En d'autres termes, si vous pouvez exécuter "./send_ir data.txt`" à distance, vous pouvez faire fonctionner le climatiseur de l'extérieur.
Utilisez MQTT pour activer le contrôle à distance sur Internet. (L'explication de MQTT est omise ...)
Entrez dans la console sango et notez les informations de connexion MQTT.
Installez la bibliothèque python mqtt.
$ pip install paho-mqtt
Créez un script pour vous abonner à MQTT en fonction des informations de connexion MQTT.
Message ʻAircon_heat_on pour signaler le chauffage ON, Ceci est un exemple qui envoie un signal pour arrêter le climatiseur avec le message ʻaircon_off
.
$ 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()
Continuez à exécuter subscribe.py
Il semble que hogehoge
continuera à fonctionner en arrière-plan même si ssh est coupé avec $ nohup [hogehoge] &
. C'est étonnant.
$ nohup python subscribe.py &
Depuis MQTT Dash, connectez-vous à sango et envoyez un message à [sujet]
" aircon_heat_on "
ou " aircon_off "
Est-ce que les mots «aircon heat ON!» Ou «aircon OFF!» Apparaissent sur la console Raspeye et le climatiseur a fonctionné? Vous pouvez maintenant allumer le climatiseur avant de rentrer chez vous. Est-ce le meilleur? Je pense que cela peut être appliqué à diverses choses telles que la télévision, alors essayez de faire différentes choses.
――Si vous êtes intéressé par le mécanisme de la télécommande infrarouge, vous devez préparer un élément récepteur de lumière infrarouge, une LED infrarouge et une planche à pain et expérimenter.
$ bto_advanced_USBIR_cmd -d'cat data.txt'
.
Le signal de commande du climatiseur de Fujitsu n'a pas pu être envoyé.
Par conséquent, il existe une section qui utilise le script de l'opération avancée de la télécommande infrarouge - Étape 5.