ENIB 2020 : porte automatique

De Les Fabriques du Ponant
Révision datée du 20 janvier 2020 à 15:32 par Masmoudi (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

photo de l'équipe

Photoenib2018.jpg

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

  1. include <SoftwareSerial.h>
  2. include <DFPlayer_Mini_Mp3.h>
  3. include <Servo.h>
  1. define trigPin 6 // On définis chaque Pin
  2. 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);



}

Catégories