2. Blynkからデータを取得する

この章では、Blynkを使用して回路を制御する方法を学びます。インターネットを介してLEDを点灯させましょう!

必要な部品

このプロジェクトでは、以下のコンポーネントが必要です。

キット全体を購入すると非常に便利です。こちらがリンクです:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

以下のリンクからそれぞれ個別に購入することもできます。

コンポーネントの紹介

購入リンク

Arduino Uno R4 Minima

-

ブレッドボード

BUY

ESP8266モジュール

BUY

ジャンパーワイヤー

BUY

抵抗器

BUY

LED

BUY

1. 回路を組む

注釈

ESP8266モジュールは安定した動作環境を提供するために高電流が必要ですので、9Vの電池が接続されていることを確認してください。

../_images/iot_2_bb.png

2. ダッシュボードを編集

  1. 以前に作成した Quickstart Device に移動し、右上のメニューアイコンをクリックして edit dashboard を選択します。

    ../_images/sp220609_112825.png
  2. Datastreamsは、Blynkのウィジェットとボード上のコードがお互いを認識することを可能にします。完全な設定プロセスを体験するために、DatastreamsページからすべてのDatastreamsを削除します。

    ../_images/sp220609_114723.png
  3. Datastreamsを削除する前に、警告を慎重に読み、それが正しいことを確認してください。

    ../_images/sp220609_114929.png
  4. Blynkのスイッチを使用してLEDを制御するために使用される Virtual Pin タイプのDatastreamを作成します。

    ../_images/sp220609_115124.png
  5. Virtual Pin を設定します。ボタンとLEDはONとOFFのみ必要なので、DATA TYPEを Integer に設定し、MINとMAXを 01 に設定します。

    ../_images/sp220609_115520.png
  6. Web Dashboard ページに移動し、既存のウィジェットを削除します。

    ../_images/sp220609_133707.png
  7. 左の Widget Box から switch ウィジェットをドラッグアンドドロップします。

    ../_images/sp220609_114508.png
  8. 次に、それを設定します。

    ../_images/sp20220615180127.png
  9. Datastream を以前に設定したものとして選択します。

    ../_images/sp220609_133741.png
  10. Datastreamを選択すると、いくつかのカスタム設定が表示されます。それを確認したら、保存をクリックします。

    ../_images/sp220609_133950.png
  11. 最後に、 Save And Apply をクリックします。

    ../_images/sp220609_141733.png

3. コードの実行

  1. 3in1-kit\iot_project\2.get_data_from_blynk のパスの下の 2.get_data_from_blynk.ino ファイルを開くか、このコードを Arduino IDE にコピーしてください。

  2. Template IDDevice Name、および Auth Token を自分のものに置き換えてください。使用しているWiFiの ssidpassword も入力する必要があります。詳しいチュートリアルについては、 1.4 R4ボードをBlynkに接続する を参照してください。

  3. 正しいボードとポートを選択した後、 Upoad ボタンをクリックします。

    ../_images/2_upload.png
  4. シリアルモニタを開く(ボーレートを115200に設定)し、成功した接続のようなプロンプトが表示されるのを待ちます。

    ../_images/2_ready.png

    注釈

    接続時に ESP is not responding というメッセージが表示された場合は、以下の手順に従ってください。

    • 9Vの電池が接続されていることを確認してください。

    • RSTピンを1秒間GNDに接続してESP8266モジュールをリセットし、それを抜きます。

    • ボードのリセットボタンを押します。

    こうした操作を3〜5回繰り返す必要があることもありますので、お待ちください。

  5. Blynkに戻ると、ステータスがオンラインに変わり、blynkのスイッチウィジェットでR4ボードに接続されたLEDを制御できるようになります。

    ../_images/2_blynk_button.png
  6. Blynkをモバイルデバイスで使用したい場合は、 モバイルデバイスでのBlynkの使用方法 を参照してください。

どのように動作するのか?

このプロジェクトのコードと前章の 1.4 R4ボードをBlynkに接続する のコードの違いは以下の行です。

const int ledPin=6;

BLYNK_WRITE(V0)
{
    int pinValue = param.asInt(); // ピン V0 からの受信値を変数に代入する
     // 以下も使用できます。
     // 文字列 i = param.asStr();
     // ダブル d = param.asDouble();
    digitalWrite(ledPin,pinValue);
}

void setup()
{
    pinMode(ledPin,OUTPUT);
}

ledPinの pinMode および digitalWrite に関しては、既によく知っていると思いますので、再度説明しません。注目すべきは BLYNK_WRITE(V0) 関数です。

これにより、Blynkの V0 の値が変わると、Blynk.Cloudはデバイスに「私は Virtual Pin V0に書き込んでいます」と伝え、デバイスはこの情報を取得すると何かを実行できるようになります。

前の手順で V0 データストリームを作成し、それをスイッチ ウィジェットに適用しました。 これは、Switch Widget を操作するたびに BLYNK_WRITE(V0) がトリガーされることを意味します。

この関数には2つの指示を書きました。

int pinValue = param.asInt();

V0の値を取得し、変数 pinValue に割り当てます。

digitalWrite(ledPin,pinValue);

BlynkのスイッチウィジェットがLEDを制御できるように、取得したV0の値をledPinに書き込みます。