ENIB 2020 : porte automatique : Différence entre versions
Ligne 22 : | Ligne 22 : | ||
==Code== | ==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() | void setup() | ||
{ | { | ||
− | Serial.begin (9600); | + | Serial.begin (9600); |
+ | BTSerial.begin(9600); | ||
pinMode(trigPin, OUTPUT); | pinMode(trigPin, OUTPUT); | ||
− | |||
pinMode(echoPin, INPUT); | pinMode(echoPin, INPUT); | ||
− | pinMode( | + | pinMode(3, OUTPUT); |
− | pinMode( | + | 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); | ||
+ | |||
} | } | ||
Ligne 56 : | Ligne 64 : | ||
digitalWrite(trigPin, LOW); | digitalWrite(trigPin, LOW); | ||
duration = pulseIn(echoPin, HIGH); | duration = pulseIn(echoPin, HIGH); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | distance = (duration/2) / 29.1; | |
− | |||
− | digitalWrite( | + | 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 { | + | 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); | ||
− | |||
− | |||
− | + | ||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | |||
− | |||
==Catégories== | ==Catégories== | ||
[[Catégorie:Enib2020]] | [[Catégorie:Enib2020]] |
Version actuelle datée du 20 janvier 2020 à 15:32
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);
}