2. Blynkからデータを取得

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

必要な部品

このプロジェクトには、以下の部品が必要です。

一式を購入することは非常に便利です。以下がリンクです:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

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

コンポーネントの紹介

購入リンク

SunFounder R3ボード

BUY

ブレッドボード

BUY

ESP8266 モジュール

BUY

ジャンパーワイヤー

BUY

抵抗器

BUY

LED

BUY

1. 回路を組む

注釈

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

../_images/wiring_led.jpg

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

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

    ../_images/sp220609_112825.png
  2. Datastreamsは、BlynkのウィジェットとR3ボードのコードが相互に認識するための機能です。完全な設定プロセスを体験するために、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 NameAuth Token をあなた自身のものに置き換えます。使用中のWiFiの ssidpassword も入力する必要があります。詳しいチュートリアルは、 1.4 R3ボードをBlynkに接続 を参照してください。

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

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

    ../_images/2_ready.png

    注釈

    接続時に ESP is not responding のメッセージが表示される場合、次の手順に従ってください。

    • 9Vのバッテリーが接続されていることを確認します。

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

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

    ときどき、上記の操作を3〜5回繰り返す必要があるかもしれませんので、お待ちください。

  5. Blynkに戻ると、ステータスがオンラインに変わっているのがわかります。これで、blynkのスイッチウィジェットを使用してR3ボードに接続されているLEDを制御することができます。

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

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

このプロジェクトのコードと前章の 1.4 R3ボードをBlynkに接続 のコードとの違いは、以下の行になります。

const int ledPin=6;

BLYNK_WRITE(V0)
{
    int pinValue = param.asInt(); // V0からの入力値を変数に割り当てる
    // 以下も使用可能:
    // String i = param.asStr();
    // double d = param.asDouble();
    digitalWrite(ledPin,pinValue);
}

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

ledPinの pinModedigitalWrite については、すでにお馴染みだと思いますので、再度説明しません。注目すべきは、BLYNK_WRITE(V0) 関数です。

この関数が行うのは、Blynkの V0 の値が変更されると、Blynk.Cloudがあなたのデバイスに「 Virtual Pin V0に書き込みをしています」と通知し、この情報を受け取ったデバイスが何かの動作をすることができることです。

前のステップでV0 Datastreamを作成し、スイッチウィジェットに適用しました。 これは、スイッチウィジェットを操作するたびに、 BLYNK_WRITE(V0) がトリガされることを意味します。

この関数には2つの命令を書き込んでいます。

int pinValue = param.asInt();

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

digitalWrite(ledPin,pinValue);

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