検索
連載

IoTとは何かを問いただすため、まずは薪ストーブに熱電対センサーを取り付ける注目デバイスで組み込み開発をアップグレード(33)(2/2 ページ)

注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。今回から、IoTとは何かを問いただすことを目的に「センサーの値を遠くまで届ける」をテーマにした新シリーズを始める。そのモデルケースとして、まずは薪ストーブに熱電対センサーを取り付けるところから始める。

Share
Tweet
LINE
Hatena
前のページへ |       

Arduinoで動作する温度測定プログラム

 リスト1はArduinoで動作する温度測定プログラムです。MAX6675モジュールから温度の値を取得して、見やすく加工し、仮想シリアルポートでPCに10進数として送り出す内容になっています。

 #include <SPI.h>
 int temp; 
void setup() {
  SPI.setBitOrder(MSBFIRST);           
  SPI.setClockDivider(SPI_CLOCK_DIV4); 
  SPI.setDataMode(SPI_MODE0);         
  SPI.begin();                       
  Serial.begin(9600);              
}
void loop() { 
  delay(500);                    
  digitalWrite(SS, LOW);           
  temp = SPI.transfer(0x00) << 8;  
  temp |= SPI.transfer(0x00);      
  digitalWrite(SS, HIGH);          
  Serial.println((temp >> 3) * 0.25);
}
リスト1 温度測定プログラム

 setup()関数では、SPIの設定とSPIの動作を有効にします。その後仮想シリアルポートを同様に有効にします。loop()関数では0.5秒間隔で温度データを取得し、見やすく整形した後で仮想シリアルポートに数値データを送ります。

 SPI.transferで8ビットの値を2回取得しています。最初に読み出したのが上位バイト、2回目が下位バイトです。tempに格納された16ビットのうち、温度データは上位12ビットなので下位に3ビット分シフトさせています。

 それに分解能である0.25をかけて、セ氏の温度表示にしています。

実験

 図3は、熱電対センサーキットとArduinoによって実測した、薪ストーブに着火してから1分以内の温度変化のグラフです。

図3
図3 薪ストーブに着火してから1分以内の温度変化のグラフ[クリックで拡大]

 縦軸が温度で、横軸が時間です。時間の単位は0.5秒なので、グラフの左端から右端までの時間は24.5秒になります。着火前は24℃台だったので、24.5秒で5℃以上温度が上昇していることが分かります。

 温度測定プログラムの設定に基づき0.5秒ごとに測定していますが、熱電対センサーを取り付けた金属製の金具自体がそれなりの熱容量を持っていると思いますので、約5秒ごとでも十分なのではないかと思っています。そのあたりは、運用しながら最適値を見つけられればと思っています。

おわりに

 本シリーズでは、この熱電対センサーを取り付けた薪ストーブをモデルケースとして、センサーが取得した値をさまざまな方法でなるべく遠くに届ける工夫を展開していきたいと思います。(次回に続く)

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る