電子工作

Arduino#8 DHT11モジュールの測定値を液晶ディスプレイに表示してみる‼プログラミングはAIで!!

DHT11からの情報を取得し、これまでやってきたシリアルモニタやLCDディスプレイに、取得した温度・湿度の測定値を表示させます。

プログラミングはAIにお願いしてみました。

配線図

  • DHT11のDATA(オレンジ線)をArduinoの 7番端子 に接続。
  • SDA(黄線)をArduinoの SDA端子 に接続。
  • SCL(緑線)をArduinoの SCL端子 に接続。

この回路図の作図には fritzing を利用させて頂いております。https://fritzing.org/home/

使用部品

  • DHT11 温・湿度モジュール       ・・・(スターターキット:Amazon購入)
  • LCD 1602 Module(液晶ディスプレイ)・・・ (スターターキット:Amazon購入)
  • シリアルインターフェースモジュール  ・・・ (Amazon購入)

Arduino IDE

話題のAI(チャットGPT)にお願いしてみました。

「Arduino シリアルモニタとDHT11をI2Cでディスプレイに表示するプログラムを書いて」(赤丸)と入力し、送信。

あっ、という間に、答えが返って来ました。

ビックリです。

スケッチの終わり(赤枠)には、使用部品まで記載されています‼。

LCDディスプレイの情報も、DHTセンサーの情報も記載されています‼

すごいです。

スケッチをコピーして、Arduino IDEにペースト。


#include <Wire.h>
#include <DS1307RTC.h>
#include <DHT.h>

#define DHTPIN 2     // DHT11センサーのデータピン
#define DHTTYPE DHT11   // 使用するDHTセンサーのタイプ

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  while (!Serial) ; // シリアルポートが利用可能になるまで待機
  if (!RTC.isrunning()) {
    Serial.println("RTCが起動していません!");  // RTCが起動していない場合は警告を表示
  }
  dht.begin();
}

void loop() {
  // 現在時刻を取得
  tmElements_t tm;
  RTC.read(tm);

  // 温度と湿度を取得
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();

  // データが有効か確認
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("DHTセンサーからの無効な読み取り!"); // センサーからの無効な読み取りを警告
  } else {
    // 時刻、温度、湿度をシリアルモニタに表示
    Serial.print("現在の時刻: ");
    print2digits(tm.Hour);
    Serial.print(":");
    print2digits(tm.Minute);
    Serial.print(":");
    print2digits(tm.Second);
    Serial.print(" 温度: ");
    Serial.print(temperature);
    Serial.print("°C 湿度: ");
    Serial.print(humidity);
    Serial.println("%");
  }

  delay(2000);  // 2秒待機
}

void print2digits(int number) {
  if (number < 10) {
    Serial.print("0");  // 1桁の場合は0を追加して2桁にする
  }
  Serial.print(number);
}

・DHT11のDATA(オレンジ線)をArduinoの 7番端子 に接続したため、

#define DHTPIN 2 // DHT11センサーのデータピン


#define DHTPIN 7 // DHT11センサーのデータピン

書き変えて、スケッチをコンパイルする。

まとめ

  • DHT11から温度・湿度の測定値情報を取得し、シリアルモニタとLCD1602液晶ディスプレイに、1行目に「Temperature:○°C」、2行目に「Humidity:○%」と取得した値を表示させた。
  • プログラミングは、チャットGPTで行った。AI恐るべし‼