myaon が 2021年02月28日20時30分15秒 に編集
初版
タイトルの変更
Raspberry PiとSwitchBotで目覚まし蛍光灯自動点灯
タグの変更
RaspberryPi
SwitchBot
秋葉原2021
本文の変更
部屋のライトのON/OFFにSwitchBotを活用しているのですが、目覚ましのタイミングで電気を付けて強制的に起きられたらいいですよね。IoT的な諸々の連携はSwitchBot専用ハブがあれば簡単にその辺り設定できるらしいんですが、地味にお高い... ですが、公式のPythonスクリプトを使えばラズパイ経由で操作可能という記事が! https://chasuke.com/switchbot-raspi/ これを使って早速目覚まし時計を作っていきます。 ライブラリを指定された通りにインストール。 ``` $ sudo apt-get update $ sudo apt-get install python-pexpect $ sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev $ sudo apt-get install libudev-dev libical-dev libreadline-dev $ sudo pip install bluepy $ git clone https://github.com/OpenWonderLabs/python-host.git $ cd python-host ``` スマホアプリからSwitchBotのMACアドレスを調べて ``` $ sudo python switchbot.py "MACアドレス" Turn On $ sudo python switchbot.py "MACアドレス" Turn Off ``` こんな風にコマンドをたたくとSwitchBotがその通りに動いてくれます! あとは目覚まし時計的に時間に応じて実行できるように処理を加えます。 datetimeを使って得た時間が6時半のときサブプロセスで先ほどのプログラムを実行するというシンプルな構造。 ```python:auto_switch.py import subprocess import datetime import time try: while True: dt_now = datetime.datetime.now() if dt_now.hour == 6 and dt_now.minute == 30: subprocess.call(['sudo','python','/home/pi/python-host/switchbot.py','\'MACアドレス\'','Trun On']) time.sleep(60) except KeyboardInterrupt: sys.exit(0) ``` 無事動いてくれて、毎朝寝起きの目に強烈な光を届けてくれるようになりました。 めでたしめでたし。