\r\n\r\n

blynkで始める簡単DIY IoTデバイス

blynkは、デバイスの遠隔操作やセンサーデータの読み取りをできるだけ速く、簡単にするために設計されたモノのインターネット(iot)サービスです...

Blynkは、デバイスの遠隔操作やセンサーデータの読み取りをできるだけ早く、簡単に行うことを目的としたIoT(Internet of Things)サービスです。この記事では、Blynkとは何か、どのように機能するのかを詳しく説明し、NodeMCUとRaspberry Pi開発ボードのサービスのさまざまな使用方法について、2つの短いサンプルプロジェクトを提供します。

近年、IoTデバイスが急速に普及し、マイコンを使ったスマートオブジェクトの開発は、かつてないほど容易になっています。ArduinoやRaspberry Piなどの開発ボードを使えば、自宅の電源ソケットからモーションアクションクリスマスデコレーションまで、あらゆるものを制御することが可能です。

初心者にとって問題となるのが、コーディングとネットワークです。blynkは、大規模なコーディングを必要とせず、スマート**のどこからでも簡単にデバイスにアクセスできることを目指しています。趣味や開発者向けに無料で提供されていますが、有料で商用利用も可能です。企業はBlynkを利用して独自のアプリケーションやシステムを作成し、自社ブランドで販売することができます。

Blynkは独自のサーバーやライブラリを使ってサービスを実装していますが、Blynkのアプリケーションは最大の強みになっているようです。

blynkアプリケーションへのアクセス

Blynkアプリは、AndroidとiOSで無料で利用できます。プロジェクトの出発点であり、IoTセットアップのためのカスタム制御を構築するための使いやすいドラッグアンドドロップシステムを特徴としています。新しいプロジェクトを開始すると、豊富なリストから開発ボードを選択し、接続方法も選択するよう促されるため、ワークフローはすぐに終わります。その後、アプリケーションから電子メールで認証トークンが送信され、Blynkサーバー経由でお客様の端末に接続されます。

制御要素はウィジェットと呼ばれ、ボタン、スライダー、ジョイスティック、グラフィックス、テキストフィードバックなど、さまざまな種類の入力手段と出力表示を備えています。また、LED、LCDディスプレイ、さらにライブビデオ用にスタイル化されたコントロールを持つコンポーネント固有のウィジェットもあります。また、Twitterへの自動投稿やカスタム通知などの機能を追加するウィジェットも特筆すべき点です。

アプリは無料ですが、一度に使用できるウィジェットの数を制限し、「電力」コストを与えています。このアプリでは、2,000ポンドの残高が与えられ、希望すればさらに購入することも可能です。

私は、ここに掲載されているプロジェクトの例では、提供される初期バランスで十分であることを発見しましたが、セットアップがもっと複雑であれば、すぐにエネルギー不足に陥るかもしれません。

各ウィジェットには編集メニューがあり、名前と色を変更することができます。次に、影響を与えるピン(基板上またはBlynkの仮想ピン)と、送信する値の範囲を選択します。グラフィックやテキストボックスなどの出力表示では、更新頻度を選択することもでき、貴重な帯域幅を節約できる場合があります。

Blynkは、アプリケーションとハードウェアの間のユーザー設定による接続である「仮想」ピンに命令を割り当てる機能も持っています。このように、アプリケーションの1つのボタンを使って、デバイス上のさまざまなイベントをトリガーすることができるのです。これらの使用方法については、後ほど説明します。

このアプリケーションは、アイテムを他の人と共有するオプションを提供します。QRコードを生成し、メールで送信するか、直接スキャンしてBlynkアプリで誰でも使用することができます。誰と共有しても、アイテムに変更を加えることができないので、迅速かつ簡単にデバイス制御を共有することができます。ただし、他の人がハードウェアにアクセスするためには、アプリ内のアイテムが起動している必要がある点に注意が必要です。

また、このプロジェクトは、ハードウェアへのアクセスを許可せずに共有することもできます。これは、照明をオン・オフさせずにアプリの使い方を教えるには最適な方法です

アプリケーションの作成は、非常に素早く、直感的に行えることがわかりました。作成したら、右上の再生マークを押せば、すぐに使い始めることができます。後で修正する必要がある場合は、同じボタンを押すだけで編集モードに戻ることができます。

ブリンクサーバ

デバイスを制御するためのアプリケーションを作成したら、デバイスと通信する方法として2つの選択肢があります。

Blynkのクラウドサーバーは、高速で応答性が高く、****で利用可能です。Wi-Fi機器への接続は、生成された認証コードをWi-Fiの詳細を記載したArduinoスケッチにコピーすることで簡単に行えます。Raspberry-Piについては、Blynkが提供するテストスクリプトを認証コードとともに実行することで、同じ結果を得ることができます。この記事の後半では、Blynkライブラリを使用して、サービスに接続するための独自のスクリプトを作成します。

BlynkはオープンソースのNettyベースのJavaサーバーを提供しており、あなたのコンピュータ、あるいはRaspberry-Piから実行することができます。ユーザーによっては、機能面やセキュリティ面でさまざまなメリットがありますが、ここでは提供されているBlynkのクラウドサーバーを利用する例に絞って説明します。

ブリンク・ライブラリー

Blynkの3つ目、最後の要素はBlynkライブラリです。このライブラリは、多くの開発ボードと連携し、アプリケーションとハードウェアの間の通信を可能にします。

最も単純なケースでは、ライブラリをインストールし、提供されている注釈付きのサンプルスケッチの一つを読み込むだけです。

blynk:初期設定

スマートフォン**にBlynkアプリをインストールし、アカウントを作成してください。認証トークンが送信されるため、必ず実際にアクセス可能なメールアドレスを使用してください。ここで、プロジェクトを作成し、使用するボードと接続方法を選択します。ここではWi-Fiで接続していますが、BluetoothやEthernet、GSMでの接続も可能です。

プロジェクトを作成します。これにより、認証トークンが自動的に送信されます。届かない場合は、プロジェクトの設定アイコン(小さなナット)を選択し、デバイスを選択して、「メール」を選択することで再送信できます。

次に、BlynkのウェブサイトからBlynkライブラリをインストールします。Arduinoの場合は、Arduino> librariesフォルダにファイルをコピーして、ライブラリをインストールします。初めてArduinoをお使いになる方は、こちらのガイドを参考にしてください。

Raspberry Piの場合、まずnode.jsをインストールする必要があります。この記事にnode.jsのインストールガイドがありますので、そちらを参照してください。

まず、Piが最新であること、build-essentialパッケージがインストールされていることを確認します。

sudo apt-get updatesudo apt-get upgradesudo apt-get install build-essential

次に、ターミナルウィンドウに次のように入力して、Nodeパッケージマネージャ、OnOffライブラリ、Blynkライブラリをインストールします。

sudo npm install -g npmsudo npm install -g onoffsudo npm install -g blynk-library

でBlynkのテストスクリプトを実行することで、すべてが問題ないことを確認することができます。

blynk.js [YourAuthorizationTokenHere]

すべて正常に動作していれば、このように表示されるはずです。

エラーが発生した場合は、Piが最新であること、node.jsの最新版がインストールされていることを確認し、NPM、OnOff、Blynkの各ライブラリを再インストールしてください。

nodemcuによるクイックセットアップ

最初の例では、Blynkを使った簡単なシステムのセットアップがいかに速くできるかを紹介します。コーディングは不要で、一度セットアップすれば、完全に自己完結します。ボードがWi-Fi接続できる環境であれば、Smart**を利用してどこからでもアクセスできます。

まず、テストボード上に簡単な回路を作成します。D0ピンをLEDのプラス端子に接続し,220Ωの抵抗でGND端子に戻す。

BlynkアプリケーションでNodeMCUプロジェクトを開きます。右側のメニューから、ボタンウィジェットを選択します。プロジェクト内のボタンを選択し、「プロパティ」メニューを表示します。ここでは、名前を付けて、NodeMCU基板のどのピンに影響を与えるかを選択します。出力リストからD0ピンを選択し、一瞬押すスイッチではなく、オン/オフスイッチになるようにモードを切り替えます。

戻るを押して(すべての変更は自動的に保存されます)、右上の再生アイコンを押して、アプリケーションを起動します。このボタンを押すと、いつでもプロジェクトの編集に戻ることができます。

次に、ArduinoIDEを開き、ツールメニューからNodeMCUのボードとポートを選択します。このメニューにボードが表示されない場合は、ESP8266ライブラリのインストールが必要な場合があります(このガイドが役に立ちます)。

Blynkがライブラリで提供しているESP8266スタンドアロンスクリプトを、ファイル > example> Blynk> Boards_uwifi> ESP8266_2;standalone に移動して開き、認証トークンのプレースホルダーをメールで受け取ったプレースホルダーに置き換え、Wi-Fiの詳細を入力してください。

char auth[] = "YourAuthToken";char ssid[] = "YourNetworkName";char pass[] = "YourPassword";

スケッチを新しい名前で保存し、ボードにアップロードします。これで、アプリケーションのボタンを押すと、LEDが点灯・消灯するはずです。うまくいかない場合は、アプリケーションの再生アイコンが押されたかどうかを確認してください。

このようなシンプルなケースでは、Blynkは非常に迅速にセットアップすることができます。

また、Blynkサーバーを使用しているため、マザーボードが自宅のWi-Fi回線に接続でき、スマート**がモバイルデータにアクセスできれば、どこからでもマザーボードをコントロールできることも特筆すべき点です。

ラズベリーの皮の上

Blynkのテストスクリプトを使うと、上記のRaspberry Piの例と全く同じようにBlynkを使うことができますが、Blynkの仮想ピンにはより深い機能があるので、これから検証していきます。

Blynkはnode.jsを使用しているので、今日書くコードはJavascriptになります。

Blynkライブラリを使い、ドアセンサーが開いているか閉じているかを報告し、ドアが開いていたらメールを送信し、**にプッシュ通知するアプリケーションを作成する予定です。

必要です。

  • 磁気ドアスイッチ(リードスイッチとも呼ばれる)
  • 1x 1kΩ抵抗
  • 1x 10km?
  • 1x 220?
  • 1x 発光ダイオード
  • テストボードと接続ケーブル

胸板を以下のようにセットします。

なお、BlynkのライブラリはPiのピンのGPIO番号を使うので、プロジェクト全体ではそれを使うことになります。5VとGNDピンをテストボード上の電源レールに接続します。Raspberry PiのGPIOピン22をLEDのアノードに接続し、カソードを220を介してグランドレールに接続する?抵抗器を使用します。GPIOピン17を1k?の片側に接続します。の抵抗に接続し、抵抗の反対側とパワーレールの5V側に10?最後に,リードスイッチをパワーレールのGND側に接続し,ライン上の1k?と10km?の抵抗に接続します。の抵抗は反対側で合流します。このプルアップ抵抗の設定により、スイッチが開いているときにピン17に高電圧が読み込まれることになります。

Blynkアプリケーションで新規プロジェクトを作成し、Raspberry Piボードを選択します。ウィジェットメニューから、タグ付き値、メール、通知ウィジェットを選択する

ラベルの付いた値を選択し、名前を付けてから、その入力端子として仮想ピンV0を選択します。また、情報の表示方法を変更することもできます。この場合、「ラベル」タブの /pin/ の前に "gate yes" を追加してください。読み出し周波数の値はデフォルトのままにしておきますが、これを変更することで別の速度でアプリケーションにデータを送信することができます。

注目すべきは、メールウィジェットが動作するためにはウィジェットが存在する必要がありますが、後でコードに追加するので、実際にメールアドレスを入力する必要はないことです。

アプリケーションの外観に満足したら、右上の再生ボタンを押してください。

次に、blynkdoor.jsという会社を作ってください。 コード全体は、ここに完全に注釈があります。

sudo nano blynkdoor.js

まず、Blynkライブラリをインポートし、ライセンスキーを追加して、スクリプトで使用するBlynkのインスタンスを作成する必要があります。

var blynklib = require('/usr/local/lib/node_modules/blynk-library');var AUTH ='PasteAuthorizationCodeHere'var blynk = new blynklib.Blynk(AUTH);

また、OnOffライブラリをインポートして、リードスイッチとLEDを設定するための変数を宣言する必要があります。また、Blynkアプリケーションに設定した仮想ピン用の変数を作成します。

var Gpio = require('onoff').Gpio,reed = new Gpio(17, 'in', 'both'), //register changes 'both' when switch is opened and closedled = new Gpio(22, 'out');var virtualPin = 0;

ここでは、OnOffライブラリのwatch機能を使って、リードスイッチの変化を監視することにします。ドアスイッチの値は0か1であり、その値が変わるたびにその変化をLED端子に書き込むことになります。

reed.watch(function(err,value){led.writeSync(value);

また、この値を使ってBlynkアプリケーションにデータを送信することもできます。ドアが閉まっている場合、タグ付きウィジェットで値を確認できるようにしてほしい。ドアが開いていたら、通知とメールで教えてほしい。これはif文とBlynkライブラリのvirtualWrite、notify、email関数を使って行っています。

if(value==0){ blynk.virtualWrite(virtualPin,"Closed"); c***ole.log('Door Closed'); }; if(value==1){ blynk.notify("The door just opened!"); blynk.email("[email protected]", "Front Door", "The front door just opened."); blynk.virtualWrite(virtualPin,"Open"); c***ole.log('Door Open'); };});

これで、リードスイッチの値が変化するたびに、そのデータが仮想ピンに送られ、アプリケーションの通知ウィジェットがドアを開けた場合は、そのデータもコンソールに送られるようになりました。最後の中括弧は、上記のwatch関数を開始したところから始まっていることに注意してください。

最後に、プログラムの最後にピンをリセットする必要があります。これとGPIO.cleanupファイル()は、すでにおなじみかもしれません。

process.on('SIGINT', function () { led.unexport(); reed.unexport();});

コードを保存して終了し、nodeを使用してスクリプトを実行します。

sudo node blynkdoor.js

これで、磁石をリードセンサーから離すと、ドアが開いたという通知が来て、ラベルの表示が変わるはずです。もう一度スイッチを切ると、ラベル表示が再び変化します。

なお、プッシュ通知を受けるためには、**上でBlynkアプリが起動している必要がありますが、メールはアプリの起動の有無にかかわらず有効です。

短い時間でしたが、Blynkはとても使いやすいサービスだと思います。DIYでホームオートメーションシステムを構築する場合、最も簡単な方法は、コーディングの知識がない人でも簡単にできるようにすることです。コーディングの知識を少し増やせば、さらに強力になり、より複雑なシステムや複数のイベントトリガーをアプリケーションの1つのボタンから押すことができるようになるのです。

このプロジェクトはBlynkの基本的な紹介ですが、ここで紹介する内容は、ほとんどすべてのホームオートメーションやマイクロコントローラのプロジェクトに簡単に変更できます。

Blynkを使ったことがある方、また、このサービスを使っためちゃくちゃ複雑なシステムをお持ちの方は、ぜひ下のコメント欄で教えてください。

Photo credit: Giuseppe Caccavale via YouTube.com

  • 2021-03-16 11:06 に公開
  • 閲覧 ( 31 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ