ラズパイ

SwitchBot(スイッチボット)をラズパイ経由で遠隔操作する方法

2018年9月26日

どうも、CHASUKEです。

この記事では、SwitchBot(スイッチボット)をラズパイ経由で、外出先から遠隔操作する方法を紹介します。

この方法では、ラズベリーパイ公開されているAPI(Pythonスクリプト)を使ってSwitchBotを動かします。そのため、少しばかり専門的な知識が必要となります。

CHASUKE
といっても、手順通りやれば問題なく操作できます

 

ラズパイを使ってIoTホームを体験できる面白いネタになります。例えば、AmazonダッシュボタンのようなIoTデバイスから、SwitchBotを動かせます。自由にスクリプトが書けるので複雑なオートメーション化も作れます。

今回の方法では、下記のようなSwitchBot専用ハブ(ゲートウェイ)は必要ありません。既にラズパイをお持ちならすぐに試せます。

created by Rinker
スイッチボット(SwitchBot)
¥3,980 (2020/10/28時点)

ちなみに、SwitchBot専用ハブはスマートリモコンとしても使えます。あると便利なのは間違いありません。

必要なもの

必要なものは以下の通り。

  • スイッチボット(SwitchBot)
  • ラズベリーパイ(RaspberryPi)

 

▼スイッチボットは、1粒で4,480円です。

created by Rinker
スイッチボット(SwitchBot)
¥3,851 (2020/10/28時点)

今回のハックだけであれば、小型サイズのラズパイZEROでもOKです。他にもガンガン使っていきたいなら、通常のラズパイを選びましょう。

▼最新はラズパイ4です。

【開封レビュー】LABISTS ラズパイ4B(メモリ4GB)セットを購入してみた!

 

今回、僕が動作確認したOSバージョンは「Raspbian jessie 8.0」となります。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 8.0 (jessie)
Release:	8.0
Codename:	jessie

 

ちなみに最新OS「Raspbian Stretch」だと動きませんでした。

スイッチボットをラズパイ経由で操作する方法

スイッチボット公式のPythonスクリプトが公開(リンク)されていますので、こちらを使って操作していきます。

▼ざっと手順は以下の通り

  1. 必要なパッケージをインストール
  2. Pythonスクリプトをインストール
  3. Pythonスクリプトを実行

 

連携イメージは「ラズパイ→(Bluetooth)→スイッチボット」です。また、外出先からだと「スマホ・PC→(WiFi)→ラズパイ→(Bluetooth)→スイッチボット」となります。

専用ハブと同じで、Bluetooth通信が届く場所にスイッチボットを置く必要があります。

 

必要なパッケージをインストール

▼下記コマンドにてAPIを利用するために必要なパッケージをラズパイにインストールします。

$ 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

 

Pythonスクリプトをインストール

今回は、Python2を使います。

▼pythonコマンドでバージョンが「2」であることをチェックしときましょう。

$ python
Python 2.7.9 (default, Sep 17 2016, 20:26:04) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>exit()

 

CHASUKE
Python2.7.9」を使ってます

 

▼適当なフォルダに移動し、Pythonスクリプトをインストールします。

$ git clone https://github.com/OpenWonderLabs/python-host.git
$ cd python-host

 

Pythonスクリプトを実行

実行の前に、手持ちのSwitchBotのMACアドレスを調べる必要があります。アプリの設定画面から確認できます。

 

さて、準備OKです。

下記コマンドにて実行します。

$ sudo python switchbot.py 【MACアドレス】 Press

 

「ギュイーン..」と動けば成功です。

 

ちなみに、最後の「Press」がアクションになります。3つのアクションを指定可能です。

  • Press:アームを倒して引く
  • Turn On:アームを倒す
  • Turn Off:アームを引く

 

自作でPythonスクリプト作成・実行

先ほどは、用意されているPythonスクリプトをそのまま実行したのみですが、自作のPythonに以下のコードを利用して組み込むことも可能です。

ファイル名:switchbot_bluepy.py

import binascii
from bluepy.btle import Peripheral

p = Peripheral("【SwitchBotのMACアドレス】", "random")
hand_service = p.getServiceByUUID("cba20d00-224d-11e6-9fb8-0002a5d5c51b")
hand = hand_service.getCharacteristics("cba20002-224d-11e6-9fb8-0002a5d5c51b")[0]
hand.write(binascii.a2b_hex("570100"))
p.disconnect()

 

▼実行すると、動きます♪

python switchbot_bluepy.py

こちらは、例として「Press」を実行しています。ソースコードを修正することで、「Turn On」や「Turn Off」も操作可能です。

  • Press:binascii.a2b_hex("570100")
  • Turn On:binascii.a2b_hex("570103")
  • Turn Off:binascii.a2b_hex("570104")

 

こちらのコードも公開(リンク)されています。

Amazonダッシュボタンと連携させてみた

今回のAPIの仕組みを使えば、AmazonダッシュボタンのようなIoTボタンと簡単に連携が作れます。

 

CHASUKE
自作スクリプトからモノを制御できるのは面白い!

最後に

SwitchBotをPythonスクリプトを使って操作してみました。

スマホアプリや専用ハブを使えば、こんなことする必要ありません。けれど、自作スクリプトから自由にロボットを制御できるって面白いですよね。

意外と簡単にできてしまうので、面白いと思った方は是非お試しください!

▼物理スイッチをスマート化するIoTガジェット。

created by Rinker
スイッチボット(SwitchBot)
¥3,851 (2020/10/28時点)

▼最新のラズパイは普通にPC並のスペック。

それではまた。

Amazonでお得に買い物

Amazon.co.jpで買い物するならギフト券を現金チャージするのがお得です。チャージごとに最大2.5%分のAmazonポイントがもらえます。また、5000円チャージで1000円分ポイント還元キャンペーンも実施中!!

詳しくはコチラ

こちらの記事も読まれてます

  • この記事を書いた人
CHASUKE

CHASUKE

某IT企業でエンジニアをしているCHASUKEです。 当ブログでは生活を便利にするガジェットやサービスなどライフスタイルに関わる様々な情報をお届けします。レビュー依頼も受け付けています。「お問い合わせ」より気軽にご相談ください。

Copyright© CHASUKE.com , 2020 All Rights Reserved.