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

Fuka が 2024年01月31日07時09分10秒 に編集

初版

タイトルの変更

+

Spresenseを使用した温度測定

タグの変更

+

SPRESENSE

+

DHT11

+

LCD

メイン画像の変更

メイン画像が設定されました

記事種類の変更

+

製作品

本文の変更

+

# 内容 Spresenseを使用して温度測定行います。 また、測定値はシリアルデータおよび、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) | | ジャンパ線 | | 必要数を適宜用意 | # 配線 実際に配線した状態の写真は下記のようになります。 ### 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.print(F("°C ")); Serial.print(F(" ")); Serial.print(temp_mun1); 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(); } ``` # 動作結果 ![キャプションを入力できます](https://camo.elchika.com/46a002be302a94fe48c7fbfe570aa3e8a53efb07/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f33313639316266322d353532392d343163372d383035302d6631303634653461393532652f33353466666635332d656333332d343835312d383138302d353666323430343164643834/) # まとめ 今回はSpresenseを使用した温度測定を行いました。