【設置編】Blynk local Server をRaspberry Piで作る

published_with_changes 更新日: event_note 公開日:

labelBlynk labelIoT labelRaspberry pi

「アレクサ、部屋の温度を教えて」実現のための第2歩になります。脇道かもしれません。下準備です。Alexaが部屋の温度を答えるためには、Amazon Alexaのサービスに温度情報が伝わらねばなりません。

その温度情報をAlexaのサービスに伝えるのがBlynkです。Blynkはクラウドサービスなのですが、色々使いたいのでガジェットが無料になるローカルサーバーを作ります。今回はローカルサーバーの設置までです。

これを作ったのは2年くらい前(2019年)です。今はBlynkのサービスが新しくなり、Local serverがなくなったようです。

手順と用意したRaspberry Pi

ローカルサーバーの設置手順は大きく分けて
  1. Raspberry PiにRasbianをインストールする。
  2. Raspberry PiにBlynk Serverをインストールする。

です。


用意したRaspberry Piは「Raspberry Pi Zero W スターターキット」です。その内容は、
  • 本体:Raspberry Pi Zero W V1.1
  • ケース:Piケース Official for Pi Zero 赤/白
  • USB電源アダプター:USB電源アダプタ 5V/1A/1m microUSBコネクタ
  • SD:OS書込済 Team microSDHC 8GB CL10 アダプター付
  • HDMI変換アダプター:Raspberry Pi mini HDMI → HDMI アダプター 白
  • USB変換ケーブル:Raspberry Pi USB 2.0 OTG micro USB -> USB A 15cm 白
  • GPIOピンヘッダー:2×20 2.54mm ピンヘッダー for Pi GPIO


1.Raspberry PiにRasbianをインストールする。

KeyboardやmouseなしでRaspberry Piのインストールしました。HDMIでモニタ代わりのTVに繋いでRasbianが立ち上がりましたが、Keyboardやmouseなしでは何もできません。

インストールにはHDMIモニタとUSBドングル付きのコードレスキーボードとマウスが必要です。が、それらが無くてもsshで繋ぎPCから入出力を行う方法があったので、やり方をまとめておきます。

以下は、「Raspberry Pi Zero W」をWindows10 PCだけでセットアップする方法です。

1 Rasbianインストール

1) microSDを「SDFormatter」でフォーマットする

Windows PCで操作します。上のリンク先からフォーマッターをダウンロードして、microSDを再フォーマットします。具体的な方法は、次が詳しいです。

【STEP-02】Raspberry Piに使用するmicroSDカードのフォーマット

【STEP-02】Raspberry Piに使用するmicroSDカードのフォーマット

一度、PCやRaspberry Piで使ったSDカードに新規でOSをインストールしたり、バックアップを取るときだけでなく、新品のSDカードを購入して最初に使うときも、必ずRaspberry Pi公式サイトが推奨する“SDメモリカードフォーマ

2) RasbianをmicroSDカードに書き込む

microSDカードをUSBに接続しておきます。続いて、Raspberry Pi OS(以下、Rasbian)のwindows10公式ダウンロードサイトから”Raspberry Pi Imager”をダウンロードして実行します。



「CHOOSE OS」, 「CHOOSED CARD」, 「WRITE - yes」の順に押してRasbianをインストールします。

2 Rasbian起動設定

【2023/10/03 追記】
Raspberry pi Imagerのバージョンアップによって、次項の
    1) SSHの事前設定(ssh空ファイル作成)
    2) 無線LANの事前設定
は、右下の歯車マークをクリックすると、ここで設定できるようになりました。

この設定を行って、Raspberry Pi OSをインストールすると、次項の 1)と 2) は不要になります。

1) SSHの事前設定(ssh空ファイル作成)

一旦、SDカードをPCから抜き差しするとSDカードが見えるようになります。
次の手順で、作ったSDカードのルート(/boot)に空のsshファイルを作成します。

  • エクスプローラ左クリック->新規作成->テキストドキュメント->拡張子なしのsshにリネーム

2) 無線LANの事前設定

ルートに、"wpa_supplicant.conf"という名前のファイルを下記内容で作成します。

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="SSID" // アクセスポイント “***your ssid***”
    psk="暗号化キー" //同パスワード "***uour password***”
}


3) Raspberry piのIPアドレスを調べる

Raspberry pi に作ったSDカードをセットして、USB電源5V(だけでよい)をつなぎます。続いて、コマンドプロンプトで"arp -a" とやって、LAN内のIP一覧を出します。

物理アドレスが "b8-27"で始まるものがRaspberry Piになります。この例だと、192.168.0.22が該当します。



4) 疎通確認

"ping 192.168.0.22"とやって、疎通確認をします。物理的にはRaspberry PiがLANに接続されました。


3 VNCの有効化


1) TeratermでRaspberi Piに接続

ここからは、Teratermを使います。TCP/IP、ホスト名はRaspberrypi.local とし、OKをクリックです。

(補足事項)
いつの頃からか、ホスト名がRaspberrypi.local では「無効なホスト」と出て、つながらなくなりました。(Teratermが閉じる)。代わりにホスト名をRaspberry piのIPアドレス "192.168.0.22"にすると問題なくログイン画面が出ます。

ユーザ名 :pi  (初期値) パスフレーズ :raspberry (初期値)を入力して、OKをクリックします。


Tera Term上で、"sudo raspi-config"(raspiを-configオプションで実行。-configの前に空白はいりません。)と入力します。


2) Raspberi Pi software Configuration ToolでVNCの有効化を行う

Raspberi Pi software Configuration Tool(raspi -config)が起動します。”3 Interface Options” を選択。次に"P3 VNC"を選択。  VNCの有効化を行います。

"2 Display Options"から、"D1 Resolution"を選択。解像度を1024x768にします。



4 Raspberry Pi 環境設定

VNC(RealVNCビューワ)で接続し、日本語の設定を行います。
  • 接続先:raspberrypi.local
  • Username:pi(初期値)
  • Password:raspberry(初期値)

「設定」、「Raspberry Pi 」と選択していき、次の項目を設定します。

1) Locale設定

  • Language:ja(Japanese)
  • Character Set:EUC-JP

2) Time Zoneの設定

  • Area:Japan

3) Keyboardの設定

  • Layout:Japanese
  • Variant:Japanese

4) WiFi Countryの設定

  • Country:JP Japan


ここまでで、Rasbianのインストールができました。続いて、Blynk Serverをインストールします。

2.Raspberry PiにBlynk Serverをインストールする

Blynkは、インターネット経由でArduino、ESP8266、RaspberryPiなどを制御するためのiOSおよびAndroidアプリを備えたプラットフォームです。
ウィジェットをドラッグアンドドロップするだけで、すべてのプロジェクトのグラフィックインターフェイスを簡単に構築できます。

参考にしたサイトはここです。

Creating a Local Blynk Server

Creating a Local Blynk Server

Creating a Local Blynk Server: In this post, we learn how to create a local Blynk server which will greatly reduce the overall latency that is sometimes present when using the default, remote server. We set it up using a Pi Zero W and we also create a demo project to make sure it…


ここからの操作はVNCビューワーで行います。

1) Login to Raspberry Pi via ssh;(Raspberry Piにsshでログイン)



2)Install java 8;(Java 8をインストールする)

VNCビューワーにあるTerminalを開き、次のインストールコマンドを入れます。

$ sudo apt install openjdk-8-jdk openjdk-8-jre


3) Make sure you are using Java 8;(Java バージョンなどを確認)

VNCビューワーにあるTerminalで次の内容を確認します。

$ java -version

Output: java version "1.8"


4) Download Blynk server jar file;(Blynk serverをインストールする)

VNCビューワーにあるTerminalで次のコマンドを入力します。

(注記)GitHubから公式ライブラリが削除されたので、次のコマンドは無効になりました。すぐ下のブロック内が代用です。

$ wget "https://github.com/blynkkk/blynk-server/releases/download/v0.41.16/server-0.41.16-java8.jar"


Blynk Local Server Library(非公式)

ローカルサーバーがサポートされなくなったので、ライブラリがGitHubから削除されていました。ここのBlynkコミュニティで話されています。(Where to download Blynk local server - Issues and Errors

代わりのライブラリです。コミュニティにいつも登場するPeteKnightさんがアップロードされています。
PeteKnight  Regular   
@StarHelix if you read the topic in full then you’ll see that there is a copy here:



VNCビューワーにあるTerminalで次のコマンドを入力します。PeteKnightさんのコピーライブラリです。

$ wget "https://github.com/Peterkn2001/blynk-server/releases/download/v0.41.16/server-0.41.16-java8.jar"


【2023/10/03 訂正】

ファイル名が"server-0.41.13-java8.jar" となっていたので、"server-0.41.16-java8.jar" に訂正



5)Run the server;(Blynk serverを動かす)

  • default 'hardware port 8080'
  • default 'application port 9443' (SSL port)

VNCビューワーにあるTerminalで次のコマンドを入力します。

$ java -jar server-0.41.16-java8.jar -dataFolder /home/pi/Blynk

 

立ち上げに成功すると次のような表示が出ます。

Blynk Server successfully started. 

All server output is stored in current folder in 'logs/blynk.log' file.


6)Raspberry Piの起動時にBlynkサーバーが自動で立ち上がるようにする

ファイル"/etc/rc.local"の最終行に1行追加します。crontab -e を開いて実行します。(実際は crontab -e は使いませんでした。別ブログに書きましたが、rebootでアカウントが消えるという問題が発生してその対策で、$ sudo nano /etc/rc.localとnanoエディターを使って編集しました。)

$ crontab -e

 ファイルの一番下までスクロールして、次のように入力します。

@reboot java -jar /home/pi/server-0.41.16 -java8.jar -dataFolder / home / pi / Blynk &

CTRL + X、Yの順に入力し、Enterキーを押して、ファイルを保存します


7)mail.propertiesの作成 

Blynkサーバーは、各プロジェクトの認証トークンが記載された電子メールを送信します。このため、次のコマンドを実行して”mail.properties”ファイルを作成し、メールの設定をおこないます。

mail.propertiesは、javaのあるフォルダに作ります。"/home/pi"

$ sudo nano mail.properties

mail.properties

mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.host=smtp.gmail.com
mail.smtp.port=587
mail.smtp.username=for.example@gmail.com // yourメールアドレス
mail.smtp.password=***your password*** // yourメールアドレスのパスワード

(注記)ここのID(メールアドレス)とパスワードは、BlynkのログインID/パスワードではないことに注意

 

8)Raspberry Piの再起動

リブートして、完成です。

$ sudo reboot

Powered by Blogger | Designed by QooQ

keyboard_double_arrow_down

keyboard_double_arrow_down