IoTで温度管理が可能|センサーを使って温度計を作る方法

温度管理

IoTの技術を使えば、業務の効率化を図れます。しかし、「IoTという言葉は最近よく耳にするけれど、IoTを使うとどんなことができるの?」といった疑問を持つ方も少なくありません。

今回はそのような疑問のなかでも、「温度管理もIoTで可能なのか」という疑問に応えるための記事となっております。

この記事では、IoT技術の仕組みを解説するとともに、IoTを使った温度管理は何ができるのかを、実際に手を動かし、画像付きで解説していきます。

目次

IoT技術を使えば温度管理を効率化できる

今回は、以下の写真のような簡易的な装置を作ります。これによって、温度を管理することができます。

温度管理

IoTを使えば温度管理を効率的に行うことができます。例えば、離れた場所の温度管理をまとめて操作することができます。

食品を扱う倉庫では、開閉が多い冷蔵庫内の温度を一定に保つために、IoTの温度管理技術を活用しています。その他にも、建設現場では各作業員に配布された装置からデータを取得、分析することで、熱中症対策に役立てられています。

このように、センサーで取得した気温に対して処理を行うことで温度管理をすることができます。

IoT温度管理システムの構成

温度管理システム

IoTデバイスを構成する要素は主に3つあります。

要素役割具体例
入力デバイス周囲の環境からデータを取得する温度センサー、加速度センサー、照度センサー、測距センサー
マイコンボード取得したデータに対して処理を行うArduino、Raspberry Pi、ESPrDeveloper
出力デバイス処理を行ったデータを出力するブザー、モニター、LED照明

また、上記に加えてセンサーで取得したデータを分析するために「インターネット」でクラウドと通信する必要があります。

温度管理をするには、入力デバイスから温度をセンシングし、マイコンボードで出力デバイスに対して何かしらの指示を出す、という流れになります。

簡易的なIoT温度管理システムを自作してみた

一定温度に達するとブザーを鳴らす」といった仕組みの装置を実際に作ってみました。

フロー図

フロー図

構成図

用意するもの

装置を作るにあたり、以下のものを用意しました。

準備物
  • ベースシールド
  • Grove ブザー
  • Grove 温度センサ ー
  • Grove ケーブル ×2
  • ArduinoUno R3
  • USBケーブル Bコネクタ
  • PC(今回はWindowsで作業)
  • Arduino IDE(エディタ)

※上記にはGrove-Starter Kit v3 (スターターキット)の一部が含まれています

スターターキットとは:各メーカーから発売している自作工作向けのキットがあり、簡易装置をつくるための一通りの道具が揃っています。
温度管理以外にも様々な工作をしてみたい、仕組みを詳しく知りたい、という方はこちらのキットから始めることをおすすめします。購入はこちら ⇒ Grove – Arduino初心者向けキット

①開発環境の構築

プログラムを作るために、Arduinoの開発環境を構築していきます。

STEP
ArduinoIDEをインストール

Arduino公式HPから各PCにあったものをダウンロードしてください
ダウンロード / 手順書
途中、寄付の画面に遷移しますが、寄付をしてもいいという方は金額のボタンをクリックしてください。
それ以外の方は「JUST DOWNLOAD」をクリックしてArduinoのダウンロード画面に進みます。

IDEがダウンロードができたら、Arduinoのエディタを開きます。

STEP
マイコンボードとポートを指定

USBケーブルでPCとArduinoを接続します。
プログラムを動かすためには、マイコンボードと、シリアルポート、を指定しなければいけません。今回使用するものをそれぞれ選びましょう。

シリアルポートとは:1度に1bitずつのデータを送受信するための、ケーブルの接続口のことをいいます。「Arduino」と表示されているポートを指定していれば問題ありません。

マイコンボードの選択

シリアルポートの選択

STEP
動作確認

通称 Lチカ(LEDをチカチカさせる) と呼ばれるプログラムの動作確認を行います。
この確認をすることで、プログラムが正常に動いているかの確認を簡易的に行うことができます。開いたエディタの上部メニューから ファイル → スケッチ例 → 01.Basics → Blink を選択します。

スケッチとは:Arduinoにおけるプログラムのことを指します。そのため、スケッチ例とは元々導入されてあるサンプルプログラムのことを指しています。

Blink」というLEDを点滅させるプログラムが開きました。
」のボタンをクリックすることで、このファイルをマイコンボードに書き込みます。
プログラムはマイコンに書き込んだ直後から、電源を抜くまで動作し続けます。

ファイルへの書き込み

ArduinoUNOのLEDが点滅したため、無事PCとマイコンボードが正常に接続されていることを確認できました。
また「delay(1000)」 の数字を変更することで点滅時間を調整できます。

②プログラムを作成

正常に動作できたことが確認できたので、いよいよ温度を測定していきます。

STEP
ボードとセンサーを接続する

Arduinoとベースシールドを接続します。このベースシールドに各パーツを繋ぎます。
温度を検知するためのセンサー「Grove – 温度センサー 」と、
音を出力するためのパーツ「Grove-ブザー」をベースシールドに繋げます。
その際、接続するピンを正しいピンに入れてください。

  • 温度センサー ⇒ 「A0」のポート
  • ブザー ⇒ 「D3」のポート

※ピンの位置によって異なる信号を受信、または送信するため、意図しないピンに挿した場合、正しいデータを取得することができません。

Grove – 温度センサー

Grove-ブザー

接続ポート

STEP
プログラムを作成

Groveのセンサーを利用した場合、Seeedstudioの公式からサンプルプログラムが提供されています。今回はそちらを参考にし、プログラムを作成しました。
参考:温度センサー:Grove_Temperature_Sensor.ino / ブザー:Grove_Buzzer.ino

const int buzzerPin = 3;       // Buzzerの接続ピンを指定(D3)
const int temperaturePin = A0; // Temperatureセンサーの接続ピンを指定(A0)
 
void setup()
{
  Serial.begin(9600);               // シリアルモニタに表示する為の設定
  pinMode(temperaturePin, INPUT);   // Temperatureセンサーからデータを取得
  pinMode(buzzerPin, OUTPUT);       // Buzzerでブザー音を出力
}
 
void loop()
{
  int temperature = getTemperature(temperaturePin);
  int threshold = 28.0;    // 設定温度
 
  if (threshold <= temperature)
  {
    // 閾値を超えていればブザーを鳴らす
    buzzer(buzzerPin, 1000);
  }
  else
  {
    // 閾値を超えていないので、何もしない
  }
  delay(1000);
}
 
int getTemperature(int temperaturePin)      //温度の読み取りと摂氏への変換式
{
  int B = 3975;
  int val = analogRead(temperaturePin);    // ピンからの値を取得
  float resistance = (float)(1023 - val) * 10000 / val;                          
  float temperature = 1 / (log(resistance / 10000) / B + 1 / 298.15) - 273.15;
  Serial.println(temperature);                                                   
  return temperature;
}
 
int buzzer(int buzzerPin,int tone)        //ブザーを鳴らす設定
{
  digitalWrite(buzzerPin, HIGH);
  delayMicroseconds(tone);
  digitalWrite(buzzerPin, LOW);
  delayMicroseconds(tone);
}

C/C++を元に開発されたArduino言語で記述しています。
こちらのプログラムを元に装置を動かしてみましょう。

IoT温度管理システムを動かしてみた

現在の気温は約26.0℃とちょうどいい気温です。多少の誤差はありますが、表示している温度も同じくらいです。

実際に手で握って温度を上げてみました。28.0℃を設定値にしているので、28℃を超えるとブザーが鳴ります。

動画の通り、市販の温度計は26℃を指しているのに対して、システムは28℃以上を超えています。

28.0℃を超えた 時点で音が鳴り始めました。設定温度を超えると音がなる装置を作ることができました。

正しく動作しない場合

画面に出力される数字が実際の温度と合わない場合や、装置が動かない場合は下記の点を確認してください。

  • Arduinoの側面についているVCCの切替スイッチを5V側にする
  • 最初の数分は誤差があるので、ある程度時間が経つと実際の温度に近づく
  • 正しいポートに接続されているか再確認

自身の場合、スイッチがあることに気が付かず数時間ほど悩みました。

今回の装置はサンプルを元に作成したため、比較的容易に作ることができましたが、一から作るとなると膨大な時間と労力が必要になります。自身も専門的な知識を持つ方々からアドバイスをいただきながら作りましたが、より複雑な装置を計画するとなれば、1人で作ることは難しいため、ソフトウェアエンジニアだけでなく、エレキエンジニア、メカエンジニアなどの専門的な知識を持つ方との協力が必要だと感じました。

関連記事

直近では、温度センサの活用で現場の改善を図る企業も増えてきています。
以下の記事で活用例を紹介しています。

まとめ

今回は、IoTの技術を活かした、簡易的な温度管理システムを構築しました。これらの技術を応用すれば、これまで行なっていた温度管理という業務を効率化でき、よりビジネスを加速させることが可能です。

食品や製品、または装置の温度管理や、従業員の体調面を見守るためのシステムを構築など、さまざまなビジネスシーンで役立てることができるでしょう。

IoTによる温度管理ならASTINAにご相談ください

IoTに精通したASTINAであれば、温度管理に関するソリューションのご提供が可能です。システム開発・ネットワークおよびデバイスの開発まで一気通貫してご対応いたします。

開発実績としては、屋外環境に対応した、気温・湿度・照度を図るロガーや、農業用デバイスがございます。農業用デバイスについては、日照量・土壌水分量・土壌温度の管理にも対応いたしました。

食品や室内温度だけではなく、屋外環境の計測など、農業のDX・アグリテックに関するご相談も承っています。弊社は、IoTだけではなく、メカ装置のスペシャリストやAIエンジニアも在籍しておりますので、幅広く対応いたします。

問い合わせボタン
この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!
目次