|
|
Ligne 65 : |
Ligne 65 : |
| }} | | }} |
| {{ {{tntn|Tuto Step}} | | {{ {{tntn|Tuto Step}} |
− | |Step_Title=<translate><!--T:254--> code arduino</translate> | + | |Step_Title=<translate><!--T:254--> Code Arduino</translate> |
− | |Step_Content=<translate><!--T:255--> | + | |Step_Content=<translate><!--T:255--> Téléchargez le code Arduino disponible ici.</translate> |
− | // DECLARATIONS
| |
− | | |
− | <!--T:256-->
| |
− | // Projet Réveil mp3
| |
− | | |
− | <!--T:257-->
| |
− | <nowiki>#</nowiki>include <Wire.h>
| |
− | | |
− | <!--T:258-->
| |
− | // Bibliothèque de gestion de l'horloge
| |
− | | |
− | <!--T:259-->
| |
− | // ************************************
| |
− | | |
− | <!--T:260-->
| |
− | <nowiki>#</nowiki>include "DS1307.h"
| |
− | | |
− | <!--T:261-->
| |
− | DS1307 clock; //define a object of DS1307 class
| |
− | | |
− | <!--T:262-->
| |
− | // Création des variables de stockage de l'heure et de l'heure du réveil (format HH:MM) :
| |
− | | |
− | <!--T:263-->
| |
− | // static uint8_t buzzer_hour[5] = {};
| |
− | | |
− | <!--T:264-->
| |
− | int buzzer_hour = 0;
| |
− | | |
− | <!--T:265-->
| |
− | int buzzer_min = 0;
| |
− | | |
− | <!--T:266-->
| |
− | int current_hour = 0;
| |
− | | |
− | <!--T:267-->
| |
− | int current_min = 0;
| |
− | | |
− | <!--T:268-->
| |
− | // MP3
| |
− | | |
− | <!--T:269-->
| |
− | // ***
| |
− | | |
− | <!--T:270-->
| |
− | <nowiki>#</nowiki>include <SoftwareSerial.h>
| |
− | | |
− | <!--T:271-->
| |
− | <nowiki>#</nowiki>include <MP3Player_KT403A.h>
| |
− | | |
− | <!--T:272-->
| |
− | // define a SoftwareSerial class object that the name must be mp3,
| |
− | | |
− | <!--T:273-->
| |
− | // but you can change the pin number according to the actual situation.
| |
− | | |
− | <!--T:274-->
| |
− | SoftwareSerial mp3(7, 3);
| |
− | | |
− | <!--T:275-->
| |
− | // INITIALISATION
| |
− | | |
− | <!--T:276-->
| |
− | // ==============
| |
− | | |
− | <!--T:277-->
| |
− | void setup() {
| |
− | | |
− | <!--T:278-->
| |
− | // Ouverture de la communication avec le PC :
| |
− | | |
− | <!--T:279-->
| |
− | Serial.begin(9600);
| |
− | | |
− | <!--T:280-->
| |
− | // Démarrage de l'horloge :
| |
− | | |
− | <!--T:281-->
| |
− | clock.begin();
| |
− | | |
− | <!--T:282-->
| |
− | clock.fillByYMD(2018,07,01);//Ju 30,2018
| |
− | | |
− | <!--T:283-->
| |
− | clock.fillByHMS(20,20,10);//15:00 00"
| |
− | | |
− | <!--T:284-->
| |
− | clock.fillDayOfWeek(SAT);//Saturday
| |
− | | |
− | <!--T:285-->
| |
− | clock.setTime();//write time to the RTC chip
| |
− | | |
− | <!--T:286-->
| |
− | // Réglage des paramètres du lecteur MP3 :
| |
− | | |
− | <!--T:287-->
| |
− | mp3.begin(9600);
| |
− | | |
− | <!--T:288-->
| |
− | SelectPlayerDevice(0x02); // Select SD card as the player device.
| |
− | | |
− | <!--T:289-->
| |
− | SetVolume(0x0E); // Set the volume, the range is 0x00 to 0x1E [0 31].
| |
− | | |
− | <!--T:290-->
| |
− | // Affichage :
| |
− | | |
− | <!--T:291-->
| |
− | while(!Serial);
| |
− | | |
− | <!--T:292-->
| |
− | Serial.println("Entrer une heure d'alarme (HH:MM)");
| |
− | | |
− | <!--T:293-->
| |
− | Serial.println(" ");
| |
− | | |
− | <!--T:294-->
| |
− | delay(100);
| |
− | | |
− | <!--T:295-->
| |
− | }
| |
− | | |
− | <!--T:296-->
| |
− | // BOUCLE PRINCIPALE
| |
− | | |
− | <!--T:297-->
| |
− | // =================
| |
− | | |
− | <!--T:298-->
| |
− | void loop(){
| |
− | | |
− | <!--T:299-->
| |
− | // Affichage de l'heure au format HH:MM
| |
− | | |
− | <!--T:300-->
| |
− | // ************************************
| |
− | | |
− | <!--T:301-->
| |
− | printTime();
| |
− | | |
− | <!--T:302-->
| |
− | // Lecture d'une heure de réveil :
| |
− | | |
− | <!--T:303-->
| |
− | // *******************************
| |
− | | |
− | <!--T:304-->
| |
− | while (Serial.available() > 0) {
| |
− | | |
− | <!--T:305-->
| |
− | // cherche le prochain entier dans l'incoming serial stream :
| |
− | | |
− | <!--T:306-->
| |
− | buzzer_hour = Serial.parseInt();
| |
− | | |
− | <!--T:307-->
| |
− | // do it again:
| |
− | | |
− | <!--T:308-->
| |
− | buzzer_min = Serial.parseInt();
| |
− | | |
− | <!--T:309-->
| |
− | Serial.println(" ");
| |
− | | |
− | <!--T:310-->
| |
− | Serial.print("Vous avez saisi l'heure d'alarme suivante: ");
| |
− | | |
− | <!--T:311-->
| |
− | Serial.print(buzzer_hour);
| |
− | | |
− | <!--T:312-->
| |
− | if(buzzer_min < 10) {
| |
− | | |
− | <!--T:313-->
| |
− | Serial.print(":0");
| |
− | | |
− | <!--T:314-->
| |
− | Serial.print(buzzer_min);
| |
− | | |
− | <!--T:315-->
| |
− | }
| |
− | | |
− | <!--T:316-->
| |
− | else {
| |
− | | |
− | <!--T:317-->
| |
− | Serial.print(":");
| |
− | | |
− | <!--T:318-->
| |
− | Serial.println(buzzer_min);
| |
− | | |
− | <!--T:319-->
| |
− | }
| |
− | | |
− | <!--T:320-->
| |
− | }
| |
− | | |
− | <!--T:321-->
| |
− | // On compare l'heure réglée de l'alarme et l'heure actuelle :
| |
− | | |
− | <!--T:322-->
| |
− | // ***********************************************************
| |
− | | |
− | <!--T:323-->
| |
− | if ((buzzer_hour == current_hour) && (buzzer_min == current_min)) {
| |
− | | |
− | <!--T:324-->
| |
− | //if (1) { // condition pour tester le MP3 au besoin.
| |
− | | |
− | <!--T:325-->
| |
− | // Lecture :
| |
− | | |
− | <!--T:326-->
| |
− | Serial.println("Alarme MP3 Playing");
| |
− | | |
− | <!--T:327-->
| |
− | Serial.println(" ");
| |
− | | |
− | <!--T:328-->
| |
− | // On lance le MP3 pendant 30 secondes et on le met en pause
| |
− | | |
− | <!--T:329-->
| |
− | PlayResume();
| |
− | | |
− | <!--T:330-->
| |
− | delay(60000);
| |
− | | |
− | <!--T:331-->
| |
− | PlayPause();
| |
− | | |
− | <!--T:332-->
| |
− | // On nettoie l'heure du buzzer :
| |
− | | |
− | <!--T:333-->
| |
− | buzzer_hour = 0;
| |
− | | |
− | <!--T:334-->
| |
− | buzzer_min = 0;
| |
− | | |
− | <!--T:335-->
| |
− | // On propose à nouveau d'entrer un heure d'alarme :
| |
− | | |
− | <!--T:336-->
| |
− | Serial.println("Entrer une heure d'alarme (HH:MM)");
| |
− | | |
− | <!--T:337-->
| |
− | Serial.println(" ");
| |
− | | |
− | <!--T:338-->
| |
− | delay(100);
| |
− | | |
− | <!--T:339-->
| |
− | }
| |
− | | |
− | <!--T:340-->
| |
− | delay(100);
| |
− | | |
− | <!--T:341-->
| |
− | }
| |
− | | |
− | <!--T:342-->
| |
− | // ==================================================== //
| |
− | | |
− | <!--T:343-->
| |
− | // FONCTIONS APPELEES DANS LA BOUCLE PRINCIPALE //
| |
− | | |
− | <!--T:344-->
| |
− | // ==================================================== //
| |
− | | |
− | <!--T:345-->
| |
− | // Fonction "printTime" : écrit l'heure sur le moniteur série
| |
− | | |
− | <!--T:346-->
| |
− | void printTime() {
| |
− | | |
− | <!--T:347-->
| |
− | clock.getTime();
| |
− | | |
− | <!--T:348-->
| |
− | Serial.println(" ");
| |
− | | |
− | <!--T:349-->
| |
− | current_hour = clock.hour;
| |
− | | |
− | <!--T:350-->
| |
− | current_min = clock.minute;
| |
− | | |
− | <!--T:351-->
| |
− | Serial.print(clock.hour, DEC);
| |
− | | |
− | <!--T:352-->
| |
− | if(clock.minute < 10) {
| |
− | | |
− | <!--T:353-->
| |
− | Serial.print(":0");
| |
− | | |
− | <!--T:354-->
| |
− | Serial.print(clock.minute, DEC);
| |
− | | |
− | <!--T:355-->
| |
− | }
| |
− | | |
− | <!--T:356-->
| |
− | else {
| |
− | | |
− | <!--T:357-->
| |
− | Serial.print(":");
| |
− | | |
− | <!--T:358-->
| |
− | Serial.print(clock.minute, DEC);
| |
− | | |
− | <!--T:359-->
| |
− | }
| |
− | | |
− | <!--T:360-->
| |
− | Serial.println(" ");
| |
− | | |
− | <!--T:361-->
| |
− | delay (3000);
| |
− | | |
− | <!--T:362-->
| |
− | }</translate>
| |
− | }}
| |
− | {{ {{tntn|Tuto Step}}
| |
− | |Step_Title=<translate></translate>
| |
− | |Step_Content=<translate></translate>
| |
| }} | | }} |
| {{ {{tntn|Notes}} | | {{ {{tntn|Notes}} |