Auteur Cyriljak | Dernière modification 9/12/2019 par Clementflipo
Pas encore d'image
fr none Creation 1
Arduino uno
Grove - MP3 v2.0
Grove - RTC
Mini SD
N'importe quelle baffle mobile connectée au composant Grove - MP3 v2.0 par un mini jack
Plaque contreplaqué
découpeuse lazer
imprimante 3d ultimaker 2
imprimante 3d ultimaker 2
Matière utilisée : PLA
Réglages : voir fichier config imp3D.png
Modèle : https://www.tinkercad.com/things/0svbwI2n4Ez-copy-of-megaphone/editv2
// DECLARATIONS
// Projet Réveil mp3
#include <Wire.h>
// Bibliothèque de gestion de l'horloge
// ************************************
#include "DS1307.h"
DS1307 clock; //define a object of DS1307 class
// Création des variables de stockage de l'heure et de l'heure du réveil (format HH:MM) :
// static uint8_t buzzer_hour[5] = {};
int buzzer_hour = 0;
int buzzer_min = 0;
int current_hour = 0;
int current_min = 0;
// MP3
// ***
#include <SoftwareSerial.h>
#include <MP3Player_KT403A.h>
// define a SoftwareSerial class object that the name must be mp3,
// but you can change the pin number according to the actual situation.
SoftwareSerial mp3(7, 3);
// INITIALISATION
// ==============
void setup() {
// Ouverture de la communication avec le PC :
Serial.begin(9600);
// Démarrage de l'horloge :
clock.begin();
clock.fillByYMD(2018,07,01);//Ju 30,2018
clock.fillByHMS(20,20,10);//15:00 00"
clock.fillDayOfWeek(SAT);//Saturday
clock.setTime();//write time to the RTC chip
// Réglage des paramètres du lecteur MP3 :
mp3.begin(9600);
SelectPlayerDevice(0x02); // Select SD card as the player device.
SetVolume(0x0E); // Set the volume, the range is 0x00 to 0x1E [0 31].
// Affichage :
while(!Serial);
Serial.println("Entrer une heure d'alarme (HH:MM)");
Serial.println(" ");
delay(100);
}
// BOUCLE PRINCIPALE
// =================
void loop(){
// Affichage de l'heure au format HH:MM
// ************************************
printTime();
// Lecture d'une heure de réveil :
// *******************************
while (Serial.available() > 0) {
// cherche le prochain entier dans l'incoming serial stream :
buzzer_hour = Serial.parseInt();
// do it again:
buzzer_min = Serial.parseInt();
Serial.println(" ");
Serial.print("Vous avez saisi l'heure d'alarme suivante: ");
Serial.print(buzzer_hour);
if(buzzer_min < 10) {
Serial.print(":0");
Serial.print(buzzer_min);
}
else {
Serial.print(":");
Serial.println(buzzer_min);
}
}
// On compare l'heure réglée de l'alarme et l'heure actuelle :
// ***********************************************************
if ((buzzer_hour == current_hour) && (buzzer_min == current_min)) {
//if (1) { // condition pour tester le MP3 au besoin.
// Lecture :
Serial.println("Alarme MP3 Playing");
Serial.println(" ");
// On lance le MP3 pendant 30 secondes et on le met en pause
PlayResume();
delay(60000);
PlayPause();
// On nettoie l'heure du buzzer :
buzzer_hour = 0;
buzzer_min = 0;
// On propose à nouveau d'entrer un heure d'alarme :
Serial.println("Entrer une heure d'alarme (HH:MM)");
Serial.println(" ");
delay(100);
}
delay(100);
}
// ==================================================== //
// FONCTIONS APPELEES DANS LA BOUCLE PRINCIPALE //
// ==================================================== //
// Fonction "printTime" : écrit l'heure sur le moniteur série
void printTime() {
clock.getTime();
Serial.println(" ");
current_hour = clock.hour;
current_min = clock.minute;
Serial.print(clock.hour, DEC);
if(clock.minute < 10) {
Serial.print(":0");
Serial.print(clock.minute, DEC);
}
else {
Serial.print(":");
Serial.print(clock.minute, DEC);
}
Serial.println(" ");
delay (3000);
}
Pour les libraries arduino :
http://wiki.seeedstudio.com/Grove-MP3_v2.0/
http://wiki.seeedstudio.com/Grove-RTC/
Published
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #