【iot農業・温度】スマホで温度センサーの値を表示させてみた

スポンサーリンク

DS18B20温度センサーは固有のシリアル番号が付与されているのでGPIOが同じでも読み取りができます。

ということは1本の信号線で多くの温度計測が出来ますね。

この温度センサーをesp32やarduinoで自作した備忘録です。

スポンサーリンク

温度センサー (DS18B20)

DS18B20デジタル温度計は、9ビットから12ビットの摂氏温度測定を提供し、中央のマイクロプロセッサとの通信に定義上1本のデータライン(およびグランド)のみを必要とする1-Wireバスを介して通信します。

ds18b20データシートよりgoogle翻訳

dds18b20の電圧,動作範囲,精度です。

電源 3.0V~5.5V

動作温度範囲:-55ºC〜+125ºC

精度+/- 0.5ºC (-10~80°C)

精度は低温や高温になるとやや劣ってくる(+/- 1°C)ようです。

スポンサーリンク

配線図

配線は2つの方法があると記されています。

『 【iot農業・温度】スマホで温度センサーの値を表示させてみた 』 ..配線図配線は2つの方法があると記されています。..

ここでは判りやすい赤枠で囲った方法を採用しました。

スポンサーリンク

必要なパーツ

温度センサーを動作させるための必要なパーツです。

アマゾンアソシエイトリンクから購入されるとカズに紹介料が入ります。 (^^;

スポンサーリンク

回路

温度センサー(ds18b20)とarduino(esp32)との回路です。ここではesp32のGPIO 32に接続しています。

赤 VCC 3.3V~5V

黒 GND

黄(信号) GPIO 4と4.7KΩ抵抗(VCCへ)

ここで使用するライブラリの作者によれば5KΩの抵抗でもいいらしい…

『 【iot農業・温度】スマホで温度センサーの値を表示させてみた 』 ..黄(信号) GPIO 4と4.7KΩ抵抗(VCCへ)ここで使用するライブラリの作者によれば5KΩの抵抗でもいいらしい…..

スポンサーリンク

arduino IDE

arduinoやesp32への書き込みにはarduinoIDEを使います。

arduinoIDEをパソコンにインストールする方法やesp32をarduino IDEで使えるようにする手順はこちらです。

スポンサーリンク

ライブラリのインストール

温度センサー ds18b20 をarduinoやesp32で動作させるのに必要なライブラリは次の2つです。

1 One Wireライブラリ

2 Arduino-Temperature-Control ライブラリ

One Wireライブラリはここから、Arduino-Temperature-Control-Libraryはここからダウンロード出来ます。

『 【iot農業・温度】スマホで温度センサーの値を表示させてみた 』 ..One Wireライブラリはここから、Arduino-Temperature-Control-Libraryはここからダウンロード出来ます。..

zipファイルをデスクトップにダウンロードしたらスケッチ→ライブラリをインクルード→ZIP形式のライブラリをインストールと進み先程ダウンロードしたzipファイルをそれぞれ選択して「開く」をクリックしてインストールします。

arduino IDEのメッセージボードに「ライブラリが追加されました」と出ればOKです。

インストールの確認はスケッチ→ライブラリをインクルード→ライブラリの管理と進みDallasと入力しMiles Burtonと表示されINSTALLEDとなっていればOKです。

『 【iot農業・温度】スマホで温度センサーの値を表示させてみた 』 ..インストールの確認はスケッチ→ライブラリをインクルード→ライブラリの管理と進みDallasと入力しMiles Burtonと表示されINSTALLEDとなっていればOKです。..

同様にonewireと入力しby Jim Studt…INSTALLEDとなっていればOKです。

スポンサーリンク

温度センサースケッチ

(詳しい使い方やスケッチはArduino-Temperature-Control-Library-masterのサンプルファイルに収められています。)

ここでは摂氏温度を表示させてみます。

華氏表示は sensors.getTempFByIndexを使います。

#include <OneWire.h>
#include <DallasTemperature.h>
const int GPIOPIN = 32;     
OneWire oneWire(GPIOPIN);
DallasTemperature sensors(&oneWire);
void setup() {
  Serial.begin(115200);
  sensors.begin();
}
void loop() {
  sensors.requestTemperatures(); 
  float Condo = sensors.getTempCByIndex(0); //センサーindexは0から開始
  Serial.print("温度");
  Serial.print(Condo); //摂氏表示
  Serial.println("ºC");
  delay(1000);
}
スポンサーリンク

スマホで温度表示

この温度センサーで計測した温度をスマホで見れるようにするにはフランスのIOT企業 cayenne社のプラットフォームを利用します。

カイエン社はビジネス向けの高度なiotプラットフォームを開発しAWS アマゾンクラウドも参加、マイクロソフトやアリババとも提携する一方で個人は無料で高度なプラットフォームを利用することが出来ます。

アカウント開設や設定方法などはこちらに詳しくまとめてみました。

スポンサーリンク

温度センサー (DS18B20) まとめ

温度センサーにはアナログ出力のNTC サーミスタもありますがesp32では温度のブレが大きいのでDS18B20 温度センサーに変えてみたところ結果が良かったので共有したいと思います。

ds18b20 温度センサーにはシリアル番号が付与されているので温度センサーを特定出来るのがいいですね。

複数の温度センサーを計測する方法はまた、別の機会で…(^^;