編集履歴一覧に戻る
Fukaのアイコン画像

Fuka が 2024年01月31日11時47分27秒 に編集

コメント無し

本文の変更

-

# 内容 Spresenseを使用し温度測定行いました。 また、測定値はシリアルデータおよび、LCD表示を行いす。

+

# 内容と仕様 Spresenseを使用し温度測定行いました。この内容ついとめます。

+

メインボードとして、Spresenseを使用。リアルタイムの温度計測及び、1分間の平均気温の算出を行いました。 得られた温度値はPC上のシリアルモニターで表示、キャラクタ型のLCDで表示という手法を取りました。

# 使用するもの

-

仕様部材を下記の表にまとめました

+

使った部材を下記の表にまとめま

メインボードのSpresenseはモニター提供をしていただきました。 | 名称 | 型式 | 備考 | |:---:|:---:|:---:|

-

| メインボード | Spresense | | | 温湿度センサ | DHT11 | | | LCD | 1602 LCD ディスプレイモジュール | 購入先: [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](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) | | ジャンパ線 | | 必要数を適宜用意 |

+

| メインボード | 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);

-

//Serial.println(F("DHT11 test!"));

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(temp_mun1); //Debug

Serial.print(F(" ")); Serial.println(cnt1);*/ //LCD Output//

-

lcd.setCursor(0, 1); // カーソルの位置を指定

+

lcd.setCursor(0, 1);

lcd.print("TEMP:");

-

lcd.setCursor(5, 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(); } ``` # 動作結果

-

![キャプションを入力できます](https://camo.elchika.com/46a002be302a94fe48c7fbfe570aa3e8a53efb07/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33313639316266322d353532392d343163372d383035302d6631303634653461393532652f33353466666635332d656333332d343835312d383138302d353666323430343164643834/)

+

LCD本体には平均(上段)と現在(下段)の温度を表示することが出来た。 ![動作時の様子](https://camo.elchika.com/46a002be302a94fe48c7fbfe570aa3e8a53efb07/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33313639316266322d353532392d343163372d383035302d6631303634653461393532652f33353466666635332d656333332d343835312d383138302d353666323430343164643834/)

+

PC上のシリアルモニターでも同様に温度が表示をすることが出来た。 ![シリアル画面の様子](https://camo.elchika.com/407e2d5ede3e22119edaed500d9fe4643e4e1c6a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33313639316266322d353532392d343163372d383035302d6631303634653461393532652f33623036343531362d323637382d343262622d393665642d353465363563393139383933/)

# まとめ

-

今回はSpresenseを使用した温度測定を行した

+

今回はSpresenseを使用した温度測定を行ってみました。普段使用するArduinoなどと同じ感覚で製作を行うことができたと感じました。温度測定自体は初歩的な内容です。次は測定データの保存や別の方法での可視化などにトライしてみたいと思いす。 またSpresense自体、様々なセンサ・機能を持ち合わせています。自身の技能や理解度などから、それらを発揮した作品が出来なかったことが課題ですせっかく提供していただきましたので、もっといろいろな使い方を試していきたいと思います。

+

最後になりますが、本コンテストにあたり機材提供をしていただきましたこと、お礼申し上げます。

+