浩克闹钟&反浩克贴纸
考完试来搞事情啦~~搜了一次论坛,只有一个关于闹钟的项目好像,于是......就有了这个..
上视频!
https://v.youku.com/v_show/id_XMjc0NTQ5Nzg5Ng==.html
首先,这个项目是由浩克闹钟和反浩克贴纸构成
反浩克贴纸用于关闭闹钟,所以关闹钟首先要找到这个贴纸...(划重点),这个只有霍尔传感器方案可以实现哦
材料
浩克闹钟:
Arduino Nano DFR0010
mp3播放模块
TF内存卡
3W小喇叭
DS3231时钟模块
SS49线性霍尔传感器
小磁铁
(视频中也使用了红外避障模块,和霍尔传感器两个方案任选)
反浩克贴纸:一张纸
一个小磁铁
万能的热熔胶
制作过程
准备材料
截取浩克的声音
连接MP3模块
完成其他的硬件接线
拆面具
引出LED电源线
测试
整体图
安装面具
调整红外模块的灵敏度(调至最低,防止误触发)
用热熔胶固定
正面安装磁铁,用于吸合反浩克贴纸
(磁铁很小,可能看不到,在人中偏下的位置)
背面图
反浩克贴纸hhhh
上面也有一个小磁铁哦,这个很重要
代码部分
需要安装Ds3231和MP3的库文件
(MP3是使用DF的库文件)
DS3231一般买回来的时候是时间不准的,需要用代码调整,但是这个改时间的代码只要运行一次哦(程序中我就先注释掉了)
这一段:
//Reset time of the DS3231,Use only once when the time is not accurate
struct ts settime;
settime.sec = 00;
settime.min = 24;
settime.hour = 16;
settime.mday = 4;
settime.mon = 5;
settime.year = 2017;
DS3231_set(settime);
设置闹钟的代码// time when to wake up
uint8_t wake_HOUR = 18;
uint8_t wake_MINUTE = 54;
uint8_t wake_SECOND = 20;这里设置的就是18'54"20,每天一次
完全体的代码
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include <Wire.h>
#include "ds3231.h"
#define BUFF_MAX 256
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
// time when to wake up
uint8_t wake_HOUR = 18;
uint8_t wake_MINUTE = 54;
uint8_t wake_SECOND = 20;
int playingFlag = 0;
// how often to refresh the info on stdout (ms)
unsigned long prev = 1000, interval = 1000;
void set_alarm(void)
{
// flags define what calendar component to be checked against the current time in order
// to trigger the alarm - see datasheet
// A1M1 (seconds) (0 to enable, 1 to disable)
// A1M2 (minutes) (0 to enable, 1 to disable)
// A1M3 (hour) (0 to enable, 1 to disable)
// A1M4 (day) (0 to enable, 1 to disable)
// DY/DT (dayofweek == 1/dayofmonth == 0)
uint8_t flags = { 0, 0, 0, 1, 1 };
// set Alarm1
DS3231_set_a1(wake_SECOND, wake_MINUTE, wake_HOUR, 0, flags);
// activate Alarm1
DS3231_set_creg(DS3231_INTCN | DS3231_A1IE);
}
void setup()
{
pinMode(4,OUTPUT);//led pin
pinMode(3,INPUT);//ir sensor pin
Wire.begin();
DS3231_init(DS3231_INTCN);
DS3231_clear_a1f();
set_alarm();
mySoftwareSerial.begin(9600);
Serial.begin(115200);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) {//Use softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while (true);
}
Serial.println(F("DFPlayer Mini online."));
myDFPlayer.volume(22);//Set volume value. From 0 to 30
//myDFPlayer.play(1);//Play the first mp3
//myDFPlayer.pause();
/*
//Reset time of the DS3231,Use only once when the time is not accurate
struct ts settime;
settime.sec = 00;
settime.min = 24;
settime.hour = 16;
settime.mday = 4;
settime.mon = 5;
settime.year = 2017;
DS3231_set(settime);
*/
}
void loop()
{
char buff;
unsigned long now = millis();
struct ts t;
// once a while show what is going on
if ((now - prev > interval) && (Serial.available() <= 0)) {
DS3231_get(&t);
// display current time
snprintf(buff, BUFF_MAX, "%d.%02d.%02d %02d:%02d:%02d", t.year,
t.mon, t.mday, t.hour, t.min, t.sec);
Serial.println(buff);
// display a1 debug info
DS3231_get_a1(&buff, 59);
Serial.println(buff);
if (DS3231_triggered_a1()) {
// INT has been pulled low
Serial.println(" -> alarm1 has been triggered");
myDFPlayer.enableLoopAll(); //play the first wav
digitalWrite(4,HIGH);//open led
playingFlag = 1;//set the playing flag
// clear a1 alarm flag and let INT go into hi-z
DS3231_clear_a1f();
}
prev = now;
}
if (!digitalRead(3) && playingFlag == 1)
{
myDFPlayer.pause();
digitalWrite(4,LOW);//close led
playingFlag = 0;
}
}
传一下代码文件和音频
heinau 发表于 2017-5-5 13:25
这个设定好赞啊哈哈哈哈哈哈,效果也很好,
实际使用起来感觉如何啊
比手机闹钟好玩很多哈哈哈哈哈放在床边不能再棒了{:5_121:} 有才有才!!考试顺利哦~转眼要到暑假了~羡慕啊 luna 发表于 2017-5-5 11:13
有才有才!!考试顺利哦~转眼要到暑假了~羡慕啊
{:5_125:}是呀好快一转眼 这个设定好赞啊哈哈哈哈哈哈,效果也很好,
实际使用起来感觉如何啊 效果很赞 nicho 发表于 2017-5-5 20:14
比手机闹钟好玩很多哈哈哈哈哈放在床边不能再棒了
大清早的一睁眼就看到浩克绿油油的大脸,这个提神醒脑的方法的确不能再棒了{:5_131:}
如果贴纸找不到了的话……? heinau 发表于 2017-5-8 15:17
大清早的一睁眼就看到浩克绿油油的大脸,这个提神醒脑的方法的确不能再棒了
如果贴纸找不到了的 ...
{:5_129:}那就关不了闹钟了 提神闹钟{:5_159:} 恭喜获得漫威主题创客作品征集大奖:DF创客商兑换代金券1000元 已发放至作者账户,请至DF创客商城-个人中心-余额 查看。 Ash 发表于 2017-5-25 18:23
恭喜获得漫威主题创客作品征集大奖:DF创客商兑换代金券1000元 已发放至作者账户,请至DF创客商城-个人中心 ...
多谢ASH老板{:5_168:} 原来漫威就在身边。暑假里从另一角度重温漫威系列,寻乐去 {:5_190:} 上传程序需要时间,设置时间时设置秒钟准确吗? 厉害厉害厉害了 {:6_213:}////
页:
[1]