Blynk アプリで 遠方から スマホ とESP32 の双方向リアルタイム同時通信

記事公開日:2017年6月21日
最終修正日:2017年10月7日

スポンサーリンク

こんばんは。

Twitter でもつぶやいていますが、前回の記事で、Arduino – ESP32 のWiFiClientSecure ライブラリで、数十回~200回程度、Web へ定期的に  connect  していると固まる現象が解決できなかったので、諦めて次に進もうと思います。

で、今回は、スマホアプリについて紹介します。
ある程度、聞いてはいたけど、実際使ってみて
「知らなかった~・・・」
という驚きのアプリの話題です。

Twitter の@ H0meMadeGarbage さんが Blynk というスマホアプリで ESP32 をリアルタイムコントロールしているのを見て、こんなに追従してくれるのなら自分も試してみようと思い立ったわけです。
H0meMadeGarbageさんの以下のブログ記事もご参照ください。

http://homemadegarbage.0t0.jp/pov-sphere08

Blynk というアプリは今までいろいろな方が使っているのはネットで見てはいたのですが、いつくかのアイテムが無料で、追加すると有料というところが、私にとっては敷居が高く、使おうという気にはなれなかったんです。

以前、私は自作ライブラリを作って、ESP32 と Wi-Fi リアルタイム双方向通信をやったことがあります。
以下の2つの記事をご参照ください。

ESP32 -DevKitC ( ESP-WROOM-32 )でスマホとWi-Fi リアルタイム双方向同時通信
オブジェの LED カラー を スマホ ブラウザ で WiFi リアルタイム コントロール してみた

これである程度満足していましたし、果たして同じようにここまで追従するのかという疑問もあって、今まで手を付けずにいました。

ところが、ところが・・・、

実際やってみると、何とも・・・、GREAT!!!
実にスバラシかったんです。

一番感動したのは、ローカルエリアだけでなく、3G や 4G 回線を使って、世界中のどこからでもリアルタイム操作が可能なことです。
ネットのつながる Wi-Fi環境さえあれば、地球の裏側からでも操作可能です。
しかも、リアルタイム双方向同時通信です。

クラウド系アプリというと、リアルタイム性は無く、連続データ送受信はまだ無理だろうと思っていました。
しかし、やってみると、意外とイイんです。
トラフィックを軽減するために、インターバルは長めですが、3G、4G回線などを使って地球の裏側から操作するには十分な追従性です。

私が作った Websocket ライブラリでは、ローカルエリアネットワーク(LAN) のみの対応だったので、これは新鮮でした。
しかも、Arduino スケッチも簡単!!!

それに、もう一つ特筆すべきは、複数の端末から同時に操作できて、複数の端末にセンサー値が返ってくるんです。
いゃぁ~・・・、これには参りましたね。
自分でそれを作って実現しようとすると、途方もない作業になります。
お見事!!!

やはり、実際にやってみるのとやってみないのとでは大違いですね。
改めて実感した次第です。

では、これの使い方を説明してみようと思います。

準備するもの

ESP32 – DevKitC ( ESP-WROOM-32 開発ボード )

私は秋月電子通商さんで購入しましたが、Amazonさんでも以下の販売店にありました。

CdSセル 1MΩ GL5528

ESP32_EWS_CdS_02

手元にあったものを使いましたが、Amazon.co.jp では以下で販売していました。
因みに私はここでは買ったことがありません。

定電流ダイオード E-103

マルツさん販売の定電流ダイオードがお勧めです。
10mAです。

1/4W 100kΩ程度の固定抵抗

100kΩ程度なら何でもよいと思います。

ブレッドボード SAD-101 (サンハヤト)

このブレッドボードは ESP32-DevKitC を載せても、片側1列、もう片側2列空くのでとても重宝しています。

日東 自己融着粘着テープ

電気工事でよく使うブチルゴムテープです。
LEDとCdSセルをくっつける時に使います。
ビニールテープみたいに粘着剤でくっつけるのではなく、粘土みたいに融着できるので便利です。

出来るだけ高速CPU の最新スマホ

双方向リアルタイム通信を行う為、出来るだけ最新の高性能CPU スマートフォンが良いです。

インターネットにつながった Wi-Fi ルーター環境

事前にインターネットにつながった Wi-Fi ルーター(アクセスポイント)環境は構築しておいてください。
インターネットにつながっていないと、Blynk が動作しません。
それに、ESP32 – DevKitC がセキュリティーで弾かれないように、ファイアウォールやMACアドレスフィルタリングなどの設定は済ませておいてください。

ジャンパーワイヤー、パソコン、USBケーブル等

ESP32 – DevKitC の接続

GPIO に接続した LED の明るさを光センサーの CdS セルを通して電圧値を AD コンバーターで読み取るという簡単な回路です。

ESP32_Blynk_01

実際に接続した写真はこんな感じです。

ESP32_Blynk_02

CdSセルに自己融着テープでくっ付けています。
これは、外部の光を遮断して、LED の光だけセンサー値に反映させたいためです。
それでも環境光に影響されてしまいます。
ESP32_EWS_CdS_12
付け方は以下の記事を参照してください。

ESP32 -DevKitC ( ESP-WROOM-32 )でスマホとWi-Fi リアルタイム双方向同時通信

Blynk について

まだ使い始めて間もなく、良く分からないのですが、ザッと説明します。
本家のページは以下のリンクです。

http://www.blynk.cc/

2015年2月から「KickStarter」で資金を募集してできたプロジェクトらしく、オープンソースライセンスの MIT だそうです。
通信は、昨今の流行りのクラウドサーバーを経由して行います。

大まかな概念図は以下のような感じです。

ESP32_Blynk_03

Blynk専用クラウドサーバーを経由しますので、ネットが繋がるWi-Fi 環境さえあれば、世界中のどの地域からでも通信が可能です。
Bluetooth 通信も可能らしいのですが、私はまだ試していません。

アプリは、Android と iPhone 用がありますが、デスクトップやノートパソコンは基本的に操作できません。

スマホアプリは無料でインストールすることができ、数種類のアイテムならば無料で使うことが出来ます。
それ以上アイテムが必要な場合は有料になります。

そして、ESP32 や ESP8266 は Arduino で開発ができます。
Arduino ライブラリをインストールする必要があります。

スポンサーリンク


mgo-tec電子工作 関連コンテンツ ( 広告含む )

投稿者:

mgo-tec

Arduino , ESP32 ( ESP-WROOM-32 ) , ESP8266 ( ESP-WROOM-02 )等を使って、主にスマホと連携した電子工作やプログラミング記事を書いてます。ライブラリも作ったりしてます。趣味、独学でやってますので、動作保証はしません。
電子回路やプログラミングの専門家ではありません。
畑違いの仕事をしてます。
でも、少しだけ電気の知識が必要な仕事なので、電気工事士や工事担任者等の資格は持ってます。

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)