Fuka が 2024年01月31日11時57分23秒 に編集
コメント無し
本文の変更
# 内容と仕様 Spresenseを使用した温度測定を行いました。この内容についてまとめます。 メインボードとして、Spresenseを使用。リアルタイムの温度計測及び、1分間の平均気温の算出を行いました。 得られた温度値はPC上のシリアルモニターで表示、キャラクタ型のLCDで表示という手法を取りました。 # 使用するもの 使った部材を下記の表にまとめます。 メインボードのSpresenseはモニター提供をしていただきました。 | 名称 | 型式 | 備考 | |:---:|:---:|:---:| | メインボード | Spresense | モニター提供品| | 温湿度センサ | DHT11 | | | LCD | 1602 LCD ディスプレイモジュール | 今回はamazonで購入: [amazon](https://www.amazon.co.jp/Ren-He-%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB-16%C3%972%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF-LCD%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E7%99%BD%E6%96%87%E5%AD%97%E3%83%96%E3%83%AB%E3%83%BC%E3%83%90%E3%83%83%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88/dp/B07D585T48/ref=sr_1_2_sspa?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=1602+lcd&qid=1706650979&sr=8-2-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1) | | I2C モジュール | シリアル インタフェース ボード | 今回はamazonで購入:[amazon](https://www.amazon.co.jp/Ren-He-%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9LCD-1602%E6%B6%B2%E6%99%B6%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB-arduino%E3%81%AB%E5%AF%BE%E5%BF%9C/dp/B07D7RQ2ZD/ref=sr_1_4_sspa?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=1602+lcd&qid=1706650979&sr=8-4-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1) | | ジャンパ線 |- | 必要数を適宜用意 | # 配線 実際に配線した状態の写真は下記のようになります。 ![キャプションを入力できます](https://camo.elchika.com/f50ee57c27c43734aaa7d011d6d52e99dbb8a539/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33313639316266322d353532392d343163372d383035302d6631303634653461393532652f32666665626530632d376362642d343938312d623165322d336338663965613262646534/) ### DHT11モジュールの配線 | DHT11(センサ) | Spresense | |:---:|:---:| | +ピン | Vin | | -ピン | GND | | OUTピン | 8番ピン | ### LCDとI2Cモジュールの配線 写真のようにそれぞれのピン配置が合うように設置。 ![キャプションを入力できます](https://camo.elchika.com/31689c34dbd4de201c6bcaf4dfa2ba5a9846a9f4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33313639316266322d353532392d343163372d383035302d6631303634653461393532652f39396364363834652d353433322d346436352d616639652d393533666333346635363932/) ### I2CモジュールとSpresenseの配線 | I2Cモジュール | Spresense | |:---:|:---:| | VCC | Vin | | GND | GND | | SCL | SCL | | SDA | SDA | # 動作プログラム ```arduino: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本体には平均(上段)と現在(下段)の温度を表示することが出来た。 ![動作時の様子](https://camo.elchika.com/46a002be302a94fe48c7fbfe570aa3e8a53efb07/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33313639316266322d353532392d343163372d383035302d6631303634653461393532652f33353466666635332d656333332d343835312d383138302d353666323430343164643834/) PC上のシリアルモニターでも同様に温度が表示をすることが出来た。 ![シリアル画面の様子](https://camo.elchika.com/407e2d5ede3e22119edaed500d9fe4643e4e1c6a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33313639316266322d353532392d343163372d383035302d6631303634653461393532652f33623036343531362d323637382d343262622d393665642d353465363563393139383933/) # まとめ
今回はSpresenseを使用した温度測定を行ってみました。普段使用するArduinoなどと同じ感覚で製作を行うことができたと感じました。温度測定自体は初歩的ない内容です。次は測定データの保存や別の方法での可視化などにトライしてみたいと思います。
今回はSpresenseを使用した温度測定を行ってみました。普段使用するArduinoなどと同じ感覚で製作を行うことができたと感じました。温度測定自体は初歩的な内容です。次は測定データの保存や別の方法での可視化などにトライしてみたいと思います。
またSpresense自体、様々なセンサ・機能を持ち合わせています。自身の技能や理解度などから、それらを発揮した作品が出来なかったことが課題です。せっかく提供していただきましたので、もっといろいろな使い方を試していきたいと思います。 最後になりますが、本コンテストにあたり機材提供をしていただきましたこと、お礼申し上げます。