はじめに
夏に祖母の家がめちゃめちゃ暑くなって危険なので温度を感知してLチカするやつ作りました。(手元にESP32-DevKitC-32Dしかなかったので、Wi-FiもBLEも使ってないですがESP32を使いましたw)
こんなやつ
# 使用部品 - ESP32-DevKitC-32D - ブレッドボード - 抵抗(220Ω) - ジャンパワイヤ ×4 - ACアダプタ - MicroUSBケーブル - LM35DZ温度が30度を超えたらLEDがチカチカするやつ作りました。
— しんぶんぶん@時間割bot (@shinbunbun_) June 12, 2019
おばあちゃん家に設置します。 pic.twitter.com/Dmt9NvaKrp
回路
4個繋ぐから大丈夫かなーと思ったけど、ちょっと怖かったので念のため抵抗挟みました。(計算するのは面倒臭かったw)
コード
void setup() {
Serial.begin(9600);
pinMode(4, OUTPUT);
}
void loop() {
int sensorValue = analogRead(34);
// esp32のアナログ入力は0~4096なので4096で割る
float voltage = sensorValue * (5.0 / 4096.0);
int temp = voltage*100;
//Serial.println(temp);
//温度が30度を超えた時
if (temp >= 30) {
digitalWrite(4, HIGH);
delay(1000);
digitalWrite(4, LOW);
}
delay(1000);
}
ハマったところ
- ESP32はアナログ入力使用可能なピンが限られている(詳しくはこちら)
- なぜか0番ピンが反応しなかった
- 最初はDHT11でやろうと思ったが、プラスマイナスを逆につないでお亡くなりになった
最後に
次回はLINEBotでエアコンを操作出来るやつを作る予定です。