ENIB 2020 : porte automatique
photo de l'équipe
Que fait ce projet ?
L'objectif a été de concevoir une maquette modélisant le fonctionnement d'une porte connecté. A partir de différents capteurs (capteurs ultrasons, haut parleur) une carte arduino permet l'activation de différents messages délivré par des LED, un écran LCD et un haut parleur. Elle met également en mouvement un servomoteur qui permet d'ouvrir la porte. L'ordre d'ouverture de la porte est donné via une application.
Liste des composants
- Capteur ultrason
- Ecran LCD
- Carte arduino
- Câbles de connexion
- Plaque d'essaie
- Module bluetooth HC05
- Lecteur MP3
- Haut parleur
- 3 LED (rouge, jaune, vert)
- 1 Servomoteur
- Plaque en bois de 16 mm d'épaisseur
- Carton
- Pistolet a colle
- 4 vis auto foreuse M2
Code
- include <SoftwareSerial.h>
- include <DFPlayer_Mini_Mp3.h>
- include <Servo.h>
- define trigPin 6 // On définis chaque Pin
- define echoPin 7
SoftwareSerial DFPlayerSerial( 8, 9 ),BTSerial(11, 10); Servo Ser2; Servo Ser1;
void setup()
{
Serial.begin (9600); BTSerial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(13, INPUT);
DFPlayerSerial.begin( 9600 ); mp3_set_serial( DFPlayerSerial ); mp3_set_device( 2 ); // Carte SD mp3_set_volume( 30 ); // 0-30 mp3_play( 1 ); // 0001×××.mp3 _delay_ms( 3000 ); Ser1.attach(2); Ser1.write(0); Ser2.attach(12); Ser2.write(90);
}
void loop() {
long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 5 || distance <= 0) { Serial.println("Hors de portee"); digitalWrite(5,HIGH); String message; while (BTSerial.available()){ message = BTSerial.readString(); Serial.println(message); } }
else
{
Serial.print(distance); Serial.println(" cm"); digitalWrite(3,HIGH); digitalWrite(5,LOW); mp3_next(); Ser1.write(90); delay(3000); Ser1.write(0); digitalWrite(3,LOW); } delay(100);
}