5.4.10 プロジェクト5.2 窓を閉じる

1. 説明

サーボと雨滴センサーを使用して、雨が降ったときに窓を自動で閉める装置を作ります。

2. コンポーネントの説明

雨滴センサー: これはアナログ入力モジュールで、検出面に水が多く付着しているほど返される値が大きくなります(範囲 0~4096)。

3. テストコード

#include <ESP32Servo.h>

#define servoPin 5
#define waterPin 34
Servo myservo;


void setup() {
  Serial.begin(9600);
  pinMode(waterPin, INPUT);

    // Allow allocation of all timers
    ESP32PWM::allocateTimer(0);
    ESP32PWM::allocateTimer(1);
    ESP32PWM::allocateTimer(2);
    ESP32PWM::allocateTimer(3);
    myservo.setPeriodHertz(50);    // standard 50 hz servo
    myservo.attach(servoPin, 1000, 2000); // attaches the servo on pin 18 to the servo object
    // using default min/max of 1000us and 2000us
    // different servos may require different min/max settings
    // for an accurate 0 to 180 sweep

  delay(200);
}

void loop() {
  int water_val = analogRead(waterPin);
  Serial.println(water_val);
  if(water_val > 1500) {
    myservo.write(0);
    delay(200);
  }
  else {
    myservo.write(176);
    delay(200);
  }
}

4. テスト結果

最初は窓が自動で開きます。手(手の皮膚に水が付いている状態)で雨滴センサーに触れると、窓が閉まります。