Raspberry PiでPython3でBlynkへ接続するための準備と動作確認(スマホからRaspberry Piに数値を送って表示する)

BlynkをRaspberry Piに導入した後,このままではPython3でコードを書いてBlynkを使うことが出来ないことに気づいた.ネットで情報を探していると,どうやらPython3からBlynkへ接続するためのライブラリが用意されているようだったので,そのインストール手順のメモ.

使用機器

使用する機器は以下の通り.

  • Raspberry Pi 2 model B


Raspberry Pi 2 Model B (1)

Raspberry PiへのBlynkインストールの手順

これは前回の記事で書いたので,必要に応じて参照頂きたい.
www.eletech.work

Blynkライブラリ for Python3のインストール

pip3を使って以下のようにインストールする.

pi@raspberrypi:~ $ sudo pip3 install blynk-library-python
Collecting blynk-library-python
  Downloading https://files.pythonhosted.org/packages/37/01/91c464c3f9a36ad96e397c9652a339fbde71a3de99eabc22e7de6b2f3923/blynk-library-python-0.2.0.tar.gz
Building wheels for collected packages: blynk-library-python
  Running setup.py bdist_wheel for blynk-library-python ... done
  Stored in directory: /root/.cache/pip/wheels/fc/d4/df/7128f5d8bf6e86fba6107a971acb3f695fbde461a74dc75205
Successfully built blynk-library-python
Installing collected packages: blynk-library-python
Successfully installed blynk-library-python-0.2.0

無事,ver-0.2.0のライブラリがインストールされた.インストールはこれだけでOK.

スマホからRaspberry Piに数値を送ってみる

まずは,Raspberry Piと同じネットワークに接続されているスマホでは面白くないので,スマホのWiFiは切って4G接続にしておく.そして,スマホ側ではBlynkアプリを立ち上げ,以前作成したtestプロジェクトに「Slider」を設置する.

f:id:EleTECH:20190216215747p:plain
Sliderを使ってみる
この状態で,設置されたSliderのタップすると,色々設定できる画面になる.ここでは,以下リスト&図の通りに設定した.

  • OUTPUT:接続先はV1,数値は0~255の範囲
  • DECIMALS:整数
  • SEND ON RELEASE:ON
  • SHOW VALUE:ON

f:id:EleTECH:20190216220334p:plain
Sliderの詳細設定
次にRaspberry Pi側のプログラムの準備.Githubにサンプルコードがあるので,これを参考に以下のようなコードを書く(blynk-library-python/README.md at master · vshymanskyy/blynk-library-python · GitHub).Tokenは誰かに悪いことされないように隠しています.

import BlynkLib

# Initialize Blynk
blynk = BlynkLib.Blynk('b8********************************5a')

# Register Virtual Pins
@blynk.VIRTUAL_WRITE(1)
def my_write_handler(value):
    print('Current V1 value: {}'.format(value))

while True:
    blynk.run()

これを,Raspberry Piで実行する.

pi@raspberrypi:~ $ sudo python3 blynk_test.py blynk_test

    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ for Python v0.2.0 (Linux)

無事,PythonからBlynkを起動できていることを確認.この状態で,スマホアプリ側ではプロジェクト右上の接続ボタン(再生ボタンみたいな横サンカクボタン)を押すと,以下のような画面になる.

f:id:EleTECH:20190216221152p:plain
接続状態
この状態で,スライダを動かしてみると・・・
f:id:EleTECH:20190216221359p:plain
スライダを動かしてみる 1

pi@raspberrypi:~ $ sudo python3 blynk_test.py blynk_test

    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ for Python v0.2.0 (Linux)

Current V1 value: ['127']

おぉ!Raspberry Pi側でちゃんと受信できている!さらにスライダを動かしてみると・・・

f:id:EleTECH:20190216221506p:plain
スライダを動かしてみる 2

pi@raspberrypi:~ $ sudo python3 blynk_test.py blynk_test

    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ for Python v0.2.0 (Linux)

Current V1 value: ['127']
Current V1 value: ['255']

おぉぉ!ちゃんと,外部のネットワークからRaspberry Piに数値が送られ,Raspberry Pi側でこれを受信してアクション(今回はただのPrint)を起こせている.Blynk,なんて便利なんだろう.とりあえずこれで,Raspberry PiでPython3を使ってBlynkへ接続することに無事成功.