3. Blynkへのデータ送信

本章では、Blynkへのデータ送信方法をご紹介します。

ここでは、ドアおよび窓の検出デバイスを作成します。リードスイッチを使用した回路は、ドアや窓の隣に配置され、磁石はドアや窓の端に取り付けられます。 ドアや窓が閉じられると、リードスイッチは磁力でオンになり、R4ボード上の対応するピンの値が変化します。 Blynk.cloudはこの値を受け取るので、家を離れていても家のドアや窓が閉じているかどうかを確認できます。

現在、BlynkのLEDウィジェットを使用して、窓とドアが閉じているかどうか(すなわち、リードスイッチがオンまたはオフか)を示すことになります。

必要な部品

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

キットをまとめて購入すると確実に便利です、以下がそのリンクです:

名前

このキットのアイテム

リンク

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

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

コンポーネントの紹介

購入リンク

Arduino Uno R4 Minima

-

ブレッドボード

BUY

ESP8266モジュール

BUY

ジャンパーワイヤー

BUY

抵抗器

BUY

リードスイッチ

-

1. 回路を組む

注釈

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

../_images/iot_3_bb.png

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

  1. Datastream ページで Virtual Pin タイプの Datastream を作成し、リードスイッチの値を取得します。DATA TYPEを Integer に設定し、MINとMAXを 01 にします。

    ../_images/sp220609_162548.png
  2. Wed Dashboard ページで LED widget をドラッグアンドドロップし、値が1の場合、それは(色と共に)点灯し、それ以外の場合は白くなります。

    ../_images/sp220609_163350.png
  3. LED widget の設定ページで、 DatastreamReed(V1) として選択し、保存します。

    ../_images/sp220609_163502.png

3. コードの実行

  1. 3in1-kit\iot_project\3.push_data_to_blynk のパスの下の 3.push_data_to_blynk.ino ファイルを開く、またはこのコードを Arduino IDE にコピーします。

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

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

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

    ../_images/2_ready.png

    注釈

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

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

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

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

    まれに、上記の操作を3-5回繰り返す必要がある場合があります。しばらくお待ちください。

  5. これで、Blynkはあなたのドアや窓の状態を表示します。ドアや窓が閉じている場合、LEDウィジェットは緑色になり、そうでない場合は灰色になります。

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

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

この例では、次の行に注目してください。"Blynk CloudのV1 Datastreamに毎秒データを書き込む"は、これらの行で定義されています。

BlynkTimer timer;

void myTimerEvent()
{
    Blynk.virtualWrite(V1, pinValue);
}

void setup()
{
    timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
    timer.run(); // BlynkTimerを開始
}

Blynkライブラリは組み込みのタイマーを提供しています。まず、タイマーオブジェクトを作成します。

BlynkTimer timer;

setup() でタイマー間隔を設定します。ここでは、 myTimerEvent() 関数を毎秒1000msで実行するように設定します。

timer.setInterval(1000L, myTimerEvent);

loop() でBlynkTimerを実行します。

timer.run();

カスタム関数 myTimerEvent() を編集します。コード Blynk.virtualWrite(V1, pinValue) は、V1のデータpinValueを書き込むために使用されます。

void myTimerEvent()
{
    Blynk.virtualWrite(V1, pinValue);
}