内容と仕様
Spresenseを使用した温度測定を行いました。この内容についてまとめます。
メインボードとして、Spresenseを使用。リアルタイムの温度計測及び、1分間の平均気温の算出を行いました。
得られた温度値はPC上のシリアルモニターで表示、キャラクタ型のLCDで表示という手法を取りました。
使用するもの
使った部材を下記の表にまとめます。
メインボードのSpresenseはモニター提供をしていただきました。
名称 | 型式 | 備考 |
---|---|---|
メインボード | Spresense | モニター提供品 |
温湿度センサ | DHT11 | |
LCD | 1602 LCD ディスプレイモジュール | 今回はamazonで購入: amazon |
I2C モジュール | シリアル インタフェース ボード | 今回はamazonで購入:amazon |
ジャンパ線 | - | 必要数を適宜用意 |
配線
DHT11モジュールの配線
DHT11(センサ) | Spresense |
---|---|
+ピン | Vin |
-ピン | GND |
OUTピン | 8番ピン |
LCDとI2Cモジュールの配線
I2CモジュールとSpresenseの配線
I2Cモジュール | Spresense |
---|---|
VCC | Vin |
GND | GND |
SCL | SCL |
SDA | SDA |
動作プログラム
DHT11を用いた測定プログラム
//Library Include//
#include "DHT.h"
#include <LiquidCrystal_I2C.h>
//Definition//
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); //LCD address 0x27
float temp_mun1;
int cnt1 = 0;
void dht_init();
void lcd_init();
//Initialization//
void setup() {
Serial.begin(9600);
lcd_init();
dht_init();
}
//main//
void loop() {
delay(2000);
float humi = dht.readHumidity();
float temp = dht.readTemperature();
if (isnan(humi) || isnan(temp)) {
Serial.println(F("Sensor not connected."));
return;
}
//heikin//
cnt1 = cnt1 + 2;
temp_mun1 = temp_mun1 + temp;
if (cnt1 >= 61) {
temp_mun1 = temp_mun1 / 30; //2sに1回の測定なので2で割る。
lcd.setCursor(0, 0);
lcd.print("AVE :");
lcd.setCursor(5, 0);
lcd.print(temp_mun1);
cnt1 = temp_mun1 = 0;
}
//Serial Output//
Serial.print(F("Temperature:"));
Serial.print(temp);
Serial.print(F("Humidity:"));
Serial.print(humi);
Serial.print(F(" "));
Serial.println(F("°C "));
/*Serial.print(F(" "));
Serial.print(temp_mun1); //Debug用
Serial.print(F(" "));
Serial.println(cnt1);*/
//LCD Output//
lcd.setCursor(0, 1);
lcd.print("TEMP:");
lcd.setCursor(5, 1);
lcd.print(temp);
}
void dht_init(void) {
dht.begin();
}
void lcd_init(void) {
lcd.init();
lcd.backlight();
lcd.clear();
}
動作結果
LCD本体には平均(上段)と現在(下段)の温度を表示することが出来た。
PC上のシリアルモニターでも同様に温度が表示をすることが出来た。
まとめ
今回はSpresenseを使用した温度測定を行ってみました。普段使用するArduinoなどと同じ感覚で製作を行うことができたと感じました。温度測定自体は初歩的な内容です。次は測定データの保存や別の方法での可視化などにトライしてみたいと思います。
またSpresense自体、様々なセンサ・機能を持ち合わせています。自身の技能や理解度などから、それらを発揮した作品が出来なかったことが課題です。せっかく提供していただきましたので、もっといろいろな使い方を試していきたいと思います。
最後になりますが、本コンテストにあたり機材提供をしていただきましたこと、お礼申し上げます。
投稿者の人気記事
-
Fuka
さんが
2024/01/31
に
編集
をしました。
(メッセージ: 初版)
-
Fuka
さんが
2024/01/31
に
編集
をしました。
(メッセージ: 内容追記)
-
Fuka
さんが
2024/01/31
に
編集
をしました。
-
Fuka
さんが
2024/01/31
に
編集
をしました。
ログインしてコメントを投稿する