3. Blynkへデータをプッシュ¶
この章では、Blynkにデータを送信する方法を紹介します。
ここでは、ドアと窓の検出デバイスを作成します。リードスイッチの回路はドアや窓の隣に配置され、磁石はドアや窓の端に取り付けられます。 ドアや窓が閉じている場合、磁力でリードスイッチがオンになり、R3ボード上の対応するピンの値が変わります。 Blynk.cloudはこの値を受け取るので、家を離れていても家のドアや窓が閉まっているかどうかを確認できます。
今、BlynkのLEDウィジェットを使用して、窓やドアが閉まっているか(すなわち、リードスイッチがオンかオフか)を表示します。
必要な部品
このプロジェクトでは、以下の部品が必要です。
一式を購入するのが確実に便利です。以下にリンクを示します:
名前 |
このキットのアイテム |
リンク |
---|---|---|
3 in 1 Starter Kit |
380+ |
以下のリンクから個別に購入することもできます。
コンポーネントの紹介 |
購入リンク |
---|---|
- |
1. 回路を組む
注釈
ESP8266モジュールは安定した動作環境を提供するために高い電流が必要ですので、9Vの電池が接続されていることを確認してください。
2. ダッシュボードを編集
Datastream ページで、リードスイッチの値を取得するための Virtual Pin タイプの Datastream を作成します。データタイプは Integer 、MINとMAXを 0 および 1 に設定します。
Wed Dashboard ページに LED widget をドラッグアンドドロップします。値が1の場合、それは光る(色付き)、それ以外の場合、それは白になります。
LED widget の設定ページで、 Datastream として Reed(V1) を選択し、保存します。
3. コードの実行
3in1-kit\iot_project\3.push_data_to_blynk
のパスの下にある3.push_data_to_blynk.ino
ファイルを開く、またはこのコードを Arduino IDE にコピーします。あなた自身の
Template ID
、Device Name
、およびAuth Token
で置き換えます。また、使用しているWiFiのssid
とpassword
を入力する必要があります。詳しいチュートリアルは、 1.4 R3ボードをBlynkに接続 を参照してください。正しいボードとポートを選択した後、 Upoad ボタンをクリックします。
シリアルモニタを開き(ボーレートを115200に設定)、成功した接続などのプロンプトが表示されるのを待ちます。
注釈
接続時に
ESP is not responding
というメッセージが表示される場合、以下の手順に従ってください。9Vのバッテリーが接続されていることを確認してください。
RSTピンをGNDに1秒間接続してESP8266モジュールをリセットし、その後、それを抜きます。
R3ボード上のリセットボタンを押します。
ときどき、上記の操作を3〜5回繰り返す必要がある場合がありますので、お待ちください。
これで、Blynkはあなたのドアや窓の状態を表示します。ドアや窓が閉まっている場合、LEDウィジェットは緑色になり、それ以外の場合は灰色になります。
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()
内でタイマーの間隔を設定します。ここでは、1000msごとに myTimerEvent()
関数を実行するように設定しています。
timer.setInterval(1000L, myTimerEvent);
loop()
でBlynkTimerを実行します。
timer.run();
カスタム関数 myTimerEvent()
を編集します。コード Blynk.virtualWrite(V1, pinValue)
は、V1のデータpinValueを書き込むために使用されます。
void myTimerEvent()
{
Blynk.virtualWrite(V1, pinValue);
}