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.