さて、ESP-32Sの動作チェックが確認できましたので、続いて温度と湿度を同時に測れるセンサーDHT11を利用して見ましょう。
購入したDHT11ですがあらかじめ20KΩのプルアップ抵抗が付いていて便利でした。
赤線内が抵抗10KΩ2個でした。
現在使用しているESP32と温度センサー↓
アマゾンだと同じものは以下が同等品でした。
プルアップ抵抗を使う必要が無い為、直結できますので配線が楽です。
配線は以下にしました。
プログラムはちょっと手間が掛かります。
Arduino IDEにDHT11ライブラリをインストール
Arduino IDEでDHT11ライブラリをインストールします。
AdafruitのDHT sensor libraryとAdafruit Unified Sensorをインストールします。
プログラムは参考にさせて頂いたサイトより利用させて頂きました。
2行目のPIN 16だけ変更しただけです。
#include "DHT.h"
#define DATA_PIN 16 // GPIO16
DHT dht(DATA_PIN, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(3000);
float humid = dht.readHumidity();
float temp = dht.readTemperature();
if (isnan(humid) || isnan(temp)) {
Serial.println("Failed...");
return;
}
// Serial.println(humid);
// Serial.println(temp);
char humidFloatString[10];
char tempFloatString[10];
dtostrf(humid,4,2,humidFloatString);
dtostrf(temp,4,2,tempFloatString);
char bufHumid[20];
char bufTemp[20];
sprintf(bufHumid, "Humidity: %s", humidFloatString);
sprintf(bufTemp, "Temperature: %s", tempFloatString);
Serial.println(bufHumid);
Serial.println(bufTemp);
}
思ったようにしっかり動きましたね。
参考にさせて頂いたサイト↓
案外、順調に来てますが、ここから大変そうですね。
この先は、以下のような段取りで進みます。
1.サーバーとのWifiでの接続
2.データベース(MYSQL、MariaDBですけど)へのデータの受け渡し
3.Webページでの温度と湿度のグラフ表示
4.Webページにエアコンの遠隔スイッチを設置
5.ESP-32Sでの赤外線通信
1,2はESP-32Sでのプログラミング
3,4はサーバー側でのプログラミングと言うことになりますね。
途中で頓挫しないように頑張って行きたいと思います。