ESPDuino-32:Ambientで温度をモニター

WEBサービスのAmbientに温度データ送信します。温度センサーは DS18B20 を使いました。

黒をGND、赤を5V、黄色のデータ信号をGPIO5にそれぞれ接続しました。さらに黄色の線とVCC(5V)の間に4.7kΩの抵抗を挿入してプルアップが必要です。

Ambientの設定

Ambient https://ambidata.io/ でアカウントを作成してください。無料で作成可能です。Ambientにログインして「チャネルを作る」をクリックし、チャネルの情報が表示されるのを待ちます。作成したチャネルの “チャネルID” と “ライトキー” を控えておいてください。

AmbientにアクセスするにはArduino用のライブラリが存在するので、それをインストールします。[ツール]>[ライブラリを管理]を開いて、”ambient”を検索すると”Ambient ESP32 ESP8266 lib” が見つかるのでインストールしてください。

DS18B20

DS18B20には次の2本のライブラリを使います。それぞれのページで緑色の [Code] ボタンを押し、[Download ZIP] でダウンロードしたら、Arduino IDE の [スケッチ]>[ライブラリをインクルード]>[.ZIP形式のライブラリをインストール] から読み込んでください。

GitHub - PaulStoffregen/OneWire: Library for Dallas/Maxim 1-Wire Chips
Library for Dallas/Maxim 1-Wire Chips. Contribute to PaulStoffregen/OneWire development by creating an account on GitHub...
GitHub - milesburton/Arduino-Temperature-Control-Library: Arduino Temperature Library
Arduino Temperature Library. Contribute to milesburton/Arduino-Temperature-Control-Library development by creating an ac...
スケッチを作成
[ファイル]>[スケッチ例]>[Ambient ESP32 ESP8266 lib] > [ESP8266] > [Ambient_ESP8266]を読み込んでください。このソースコードと、WiFiServerでGPIO制御 のソースコードを参考にしてコーディングを進めます。温度センサーからデータを読み込む部分も追加でコーディングが必要です。最終的なソースコードはセンサーや実験環境に依存しますが次のようになります。
使用するWiFiは外部のインターネットに接続可能なものが必要です。スマホのテザリング機能でも構いません。冒頭部分の設定項目を接続環境に合わせて変更してください。

const char* ssid     = “yourssid“;
const char* password = “yourpasswd“;

その下のところで、Ambientで作ったチャネルの、チャネルIDとライトキーを設定してください。

unsigned int channelId = 100;
const char* writeKey = “ライトキー“;

動作確認

ESPDuino-32を動作させ、シリアルモニタで観察するとWiFiに接続したことがわかります。300ms毎に温度データが送信されます。Ambientの管理画面からチャネルを表示するとグラフが表示されます。センサーの金属部を手で握ると温度センサーが反応していることがわかります。

コメント