Arduinoを用いてLCDに温湿度センサーの値を表示してみた‼
本日はLCD(液晶ディスプレイ)に温度センサーの値を表示してみたいと思います‼
結構難しいイメージかもしれませんが、想像以上に簡単なので、是非、お試しを^^
※ESP32シリーズで試されたい方はこちら⇩
★目次★
①「部品準備」
・LCDディスプレイ (LCD1602A) (シリアルインタフェースボードモジュール)
・温度センサー(なんでもOK)

本記事では、今回は電子工作ステーションさんのDHT22温湿度センサーモジュールを使います。
・Arduino UNO
電子工作ステーション 1200円(送料無料)(互換ボード)
※UNO以外の物でも大丈夫です。
※Arduino用のケーブルは付属していません。
お持ちでない方は同時購入をお勧めします。
・ジャンパーワイヤー(オス・メス)(7本)
電子工作ステーション 1セットで100円(送料500円以上で無料)
②「配線」
LCD1602A | Arduino |
GND | GND |
VCC | 5V |
SDA | A4 |
SCL | A5 |
DHT22 | Arduino |
DAT | 2 |
VCC | 3.3V |
GND | GND |
③「開発環境整備」
まず、Arduino IDEが無い方は、Arduino IDEをダウンロードし開発環境を整えましょう‼
次に、DHTセンサーのライブラリーを入れます‼
Arduino IDEを開き、ツール⇒ライブラリー管理を選択、
「DHT sensor library」を検索しインストールします。
インストール完了したら、最後に、LCDディスプレイを使えるようにするために、
LiquidCrystal_I2C というライブラリーを入れます‼
手順は先ほどと同じで、ツール⇒ライブラリー管理を選択、
「LiquidCrystal_I2C」を検索しインストールします。
(上から3ん番目ぐらいに出てくるかと思います、「jm_LiquidCrystal_I2C」というものです。)
これで開発環境は整いましたので、次は待ちに待ったプログラミングです‼
④「プログラミング」
下記のコードをコピペして貼り付けるだけで動くはずです‼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | //LEDディスプレイ #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); //DHTセンサー #include <Adafruit_Sensor.h> #include <DHT.h> #include <DHT_U.h> #define DHTPIN 2 // Digital pin connected to the DHT sensor #define DHTTYPE DHT22 // DHT 22 (AM2302) DHT_Unified dht(DHTPIN, DHTTYPE); uint32_t delayMS; //取得数値格納用 double s = 0; void setup() { Serial.begin(9600); //初期化 dht.begin(); Serial.println(F("DHTxx Unified Sensor Example")); // 温度、湿度センサーの詳細をセット sensor_t sensor; dht.temperature().getSensor(&sensor); dht.humidity().getSensor(&sensor); // センサーの詳細に基づいて、センサー読み取り間の遅延を設定します。 delayMS = sensor.min_delay / 1000; //ディスプレイに最初のみHello, world!と表示。 lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("Hello, world!"); } void loop() { //測定間の遅延。 delay(delayMS); //温度イベントを取得。 sensors_event_t event; dht.temperature().getEvent(&event); if (isnan(event.temperature)) { Serial.println(F("Error reading temperature!")); } else { //シリアルモニターに温度表示 Serial.print(F("Temperature: ")); Serial.print(event.temperature); //ディスプレイに温度表示 s = event.temperature; lcd.clear(); lcd.setCursor(0, 0); lcd.print("Tem"); lcd.print(s); lcd.print("C"); } // 湿度イベントを取得。 dht.humidity().getEvent(&event); if (isnan(event.relative_humidity)) { Serial.println(F("Error reading humidity!")); } else { //シリアルモニターに湿度表示 Serial.print(F("Humidity: ")); Serial.print(event.relative_humidity); Serial.println(F("%")); //ディスプレイに湿度表示 s = event.relative_humidity; lcd.setCursor(0, 1); lcd.print("Hum"); lcd.print(s); lcd.print("%"); } } |
⑤「結果」
上手くビルドが完了すると、最初に「Hello, world!」と表示され、
数秒後にセンサーの値が表示されます‼
こんな感じに表示されれば大成功です‼
これでリアルタイムな温度と湿度が可視化できるようになりました‼
他のセンサーにも応用できますので是非、いろいろ試してみてください^^
※液晶に何も表示されない、もしくは文字が薄い場合は、LEDディスプレイ裏面にある、
半固定抵抗で調整できます‼
以上、ご閲覧ありがとうございます。
ご不明点等ございましたらお気軽にコメントください^^