- 必要なコンポーネント
- 回路図
- ESP8266温度ロガーのThinger.ioセットアップ
- NodeMCUデータロガーのIFTTTセットアップ
- データロギングのためのNodeMCUのプログラミング
- NodeMCUからThinger.ioにデータを記録する
- 電子メールアラートを送信するためのThinger.ioでのエンドポイントの作成
以前は、NodeMCUを使用してGoogleシートに温度データを記録していました。ここでは、Thinger.io IoTクラウドにデータを送信し、魅力的なグラフィック形式で表示します。BMP180センサーはNodeMCUESP8266とインターフェースして、温度、湿度、高度のデータを収集し、Thinger.ioプラットフォームに送信します。このチュートリアルでは、デバイス、エンドポイント、データバケット、アクセストークンなど、thinger.ioプラットフォームのさまざまな機能を管理する方法を学習します。
必要なコンポーネント
- NodeMCU ESP8266
- BMP180圧力センサー
- ジャンパー線
- ブレッドボード
回路図
このESP8266データロガーの回路図は非常に単純です。ここでは、BMP180センサーのみがNodeMCUとインターフェースされています。
BMP180センサーはI2C通信プロトコルを使用します。したがって、BMP180のSCLピンとSDAピンをNodeMCUのSCLピンとSDAピン(D1とD2)に接続する必要があります。また、BMP180のVINとGNDピンをNodeMCUの3.3VとGNDに接続します。センサーを永久に損傷する可能性があるため、センサーを5Vに直接接続しないでください。
NodeMCUの詳細については、NodeMCUESP8266に基づくさまざまなIoTプロジェクトを確認してください。
ESP8266温度ロガーのThinger.ioセットアップ
Thinger.ioは、モノのインターネット向けのオープンソースプラットフォームです。非常に簡単な方法で、接続された製品のプロトタイプ作成、スケーリング、および管理に必要なすべてのツールを提供します。Thinger.ioは、デバイスデータを操作するための、データバック、ダッシュボード、エンドポイントの3つの重要なツールを提供します。これらのツールを使用して、デバイスデータを視覚化し、デバイスの相互運用性を拡張できます。
データバックス:データバックスツールを使用すると、デバイスデータをスケーラブルな方法で保存し、さまざまなサンプリング間隔をプログラミングしたり、デバイスによって発生したイベントを記録したりできます。
ダッシュボード:ダッシュボードツールには、ドラッグアンドドロップテクノロジーを使用して数分以内に作成できるカスタマイズ可能なウィジェットを備えたパネルがいくつかあり、リアルタイムの保存データを視覚化できます。
エンドポイント:エンドポイントを使用して、プラットフォームをIFTTT、カスタムWebサービス、電子メールなどの他のサービスと統合したり、他のデバイスに電話をかけたりすることができます。
このESP8266ロギングでは、これらのツールについて説明します。
Thinger.ioにデータを送信するには、Thinger.ioプラットフォームで無料のアカウントを作成し、以下の手順に従ってデバイスを接続する必要があります。
ステップ1:最初のステップは、新しいデバイスを作成することです。新しいデバイスを作成するには、メニュータブの[デバイス]をクリックしてから、[デバイスの追加]ボタンをクリックします。
次に、フォームにデバイスID、説明、および資格情報を入力するか、デバイスのランダムな資格情報を生成して、[デバイス の 追加]をクリックします。
それで全部です; デバイスを接続する準備ができました。次のステップでは、Thinger.ioプラットフォームにデータを送信するようにNodeMCUをプログラムします。
NodeMCUデータロガーのIFTTTセットアップ
ここでは、IFTTTを使用して、温度が制限を超えたときに電子メール警告を送信しています。IFTTT(If This Then That)は、アプレットと呼ばれる条件文のチェーンを作成できるWebベースのサービスです。これらのアプレットを使用して、Eメール、Twitter、Facebookの通知を送信できます。
IFTTTを使用するには、IFTTTアカウントを既にお持ちの場合はログインするか、アカウントを作成してください。
次に、「 Webhook 」を検索し、「 サービス 」 セクション の「 Webhook 」をクリックします。
次に、Webhookウィンドウで、右上隅にある[ドキュメント]をクリックして秘密鍵を取得します。このキーをコピーします。このキーは、Thinger.ioでエンドポイントを作成するときに使用されます。
その後、 WebhookとEメールサービス を使用してアプレットを作成します。アプレットを作成するには、プロファイルをクリックしてから、[作成]をクリックし ます。 '
次のウィンドウで、「 これ 」アイコンをクリックします。次に、検索セクションでWebhookを検索し、[ Webhook ]をクリックします。
次に 、[Webリクエスト の 受信] トリガーを選択し、イベント名を一時として入力してから、[トリガーの作成]をクリックします。
この後、「 Then That」 をクリックしてから、 「 Email 」 をクリックします。
さて、電子メールで、をクリックして 「私にメールを送って」 と電子メールの件名と本文を入力してアクションを作成]をクリックします。最後のステップで、「 完了 」をクリックしてアプレットのセットアップを完了します。
データロギングのためのNodeMCUのプログラミング
Thinger.ioにデータを送信するための完全なコードは、ページの最後に記載されています。ここでは、いくつかの重要な部分について説明します。
必要なすべてのライブラリを含めてコードを開始します。ThingerESP8266.hはAdafruit_BMP085.hがBMPセンサデータを読み取るために使用されている間のIoTプラットフォームとNodeMCUの間の接続を確立するために使用されます。ThingerESP8266.hライブラリは、ArduinoIDEライブラリマネージャーからインストールできます。
#include
次に、コードに資格情報を入力して、デバイスが認識され、アカウントに関連付けられるようにします。
#define USERNAME "あなたのアカウントユーザー名" #define DEVICE_ID "NodeMCU" //あなたのデバイス名#defineDEVICE_CREDENTIAL "FcLySVkP8YFR"
次に、エンドポイント名を入力します。エンドポイントは、プラットフォームをIFTTT、HTTTPリクエストなどの外部サービスと統合するために使用されます。
#define EMAIL_ENDPOINT "IFTTT"
気圧、温度、高度のデータを保存する変数を定義します。
int圧力、温度、高度;
ボイドループ() 内で、センサーデータを読み取ります。 PSONの データ型が異なるデータ型を保持することができます。したがって、Psonデータ型は、同時に複数の値を受け取るために使用されます。
事>>(pson&out){out = bmp.readPressure()/ 100; out = bmp.readAltitude(); out = bmp.readTemperature(); };
温度値が15度を超えた場合にエンドポイントを呼び出すには、 if 条件を使用します。ここで、データはエンドポイント名です。
if(Temperature> 15){thing.call_endpoint(EMAIL_ENDPOINT、 "data");} Serial.print( "Sending Data");
NodeMCUからThinger.ioにデータを記録する
次に、BMPセンサーをNodeMCUに接続し、コードをアップロードします。NodeMCUは、アカウントの資格情報を使用して、前に作成したデバイスに接続します。正常に接続されると、次の画像に示すように、接続済みと表示されます。
[デバイス]メニューからデバイス名をクリックするだけで、送信データ、受信データ、IPアドレス、接続時間などのデバイス統計を確認できます。
データを受信しているので、ウィジェットを使用してデータを視覚化するダッシュボードを作成します。
ダッシュボードを作成するには、メニュータブから[ダッシュボード]をクリックしてから、[ダッシュボードの 追加 ]をクリックし ます 。
次のウィンドウで、ダッシュボード名、ID、説明などのダッシュボードの詳細を入力し、[ダッシュボード]をクリックします。
この後、ダッシュボード名をクリックして新しいダッシュボードにアクセスします。デフォルトでは、ダッシュボードは空で表示されます。ウィジェットを追加するには、最初にダッシュボードの右上のスイッチをクリックして編集モードを有効にする必要があります。次に、[ ウィジェットの追加 ]ボタンをクリックします。
[ウィジェット の 追加]ボタンをクリックすると、ウィジェットの種類や背景色などを選択できるポップアップが表示されます。私の場合は、ゲージウィジェットを選択しました。
保存をクリックすると、次の画面に移動し、ソース値、デバイス、リソース、値、および更新モードを選択する必要があります。すべての値を選択し、[保存]ボタンをクリックします。
次に、残りの変数について同じ手順を繰り返します。私のダッシュボードは次のようになりました。
電子メールアラートを送信するためのThinger.ioでのエンドポイントの作成
次に、Thinger.ioをIFTTTと統合するエンドポイントを作成します。エンドポイントは、電子メールの送信、SMSの送信、REST APIの呼び出し、IFTTTとの対話、別のアカウントからのデバイスの呼び出し、または他のHTTPエンドポイントの呼び出しなどのアクションを実行するためにデバイスから呼び出すことができます。
エンドポイントを作成するには、メニュータブから[エンドポイント]オプションをクリックしてから、[エンドポイントの追加]をクリックします。
次のウィンドウで、必要な詳細を入力します。詳細は次のとおりです。
エンドポイントID:エンドポイントの一意の識別子。
エンドポイントの説明:エンドポイントに関する説明または詳細情報を記述します。
エンドポイントタイプ:指定されたオプションからエンドポイントタイプを選択します。
メーカーイベント名: IFTTTアプレット名を入力します。
Maker Channel Key: Webhookの秘密鍵。
この後、[エンドポイントのテスト]をクリックして、すべてが機能しているかどうかを確認します。温度データに関する警告が記載されたメールが送信されます。
IFTTT Webhookトリガーを使用する代わりに、Eメールまたはテレグラムメッセージを送信するか、エンドポイント機能を使用してHTTPリクエストを送信できます。
これは、NodeMCU ESP8266を使用して、BMP180センサーからインターネットに温度、圧力、および高度のデータを記録する方法です。
作業ビデオと完全なコードは、ページの最後にあります。