5.4.10 Projet 5.2 Fermer la fenêtre

1. Description

Nous allons utiliser un servo et un Raindrop Sensor pour créer un dispositif fermant automatiquement les fenêtres lorsqu’il pleut.

2. Component Knowledge

Raindrop Sensor: Il s’agit d’un module d’entrée analogique, plus la surface de détection est couverte par de l’eau, plus la valeur renvoyée est élevée (plage 0~4096).

3. Code de test

#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. Résultat du test

Au départ, la fenêtre s’ouvre automatiquement, et lorsque vous touchez le Raindrop Sensor avec votre main (mouillée), la fenêtre se referme.