12995浏览
查看: 12995|回复: 14

[项目] 浩克闹钟&反浩克贴纸

[复制链接]
考完试来搞事情啦~~
搜了一次论坛,只有一个关于闹钟的项目好像,于是......就有了这个..

上视频!

首先,这个项目是由浩克闹钟反浩克贴纸构成

反浩克贴纸用于关闭闹钟,所以关闹钟首先要找到这个贴纸...(划重点),这个只有霍尔传感器方案可以实现哦

材料
浩克闹钟:
Arduino Nano DFR0010
mp3播放模块
TF内存卡
3W小喇叭
DS3231时钟模块
SS49线性霍尔传感器
小磁铁
(视频中也使用了红外避障模块,和霍尔传感器两个方案任选)

反浩克贴纸:一张纸
一个小磁铁
万能的热熔胶
制作过程
浩克闹钟&反浩克贴纸图1

准备材料

浩克闹钟&反浩克贴纸图20

浩克闹钟&反浩克贴纸图21
截取浩克的声音

浩克闹钟&反浩克贴纸图2
连接MP3模块

浩克闹钟&反浩克贴纸图3
完成其他的硬件接线

浩克闹钟&反浩克贴纸图4
拆面具

浩克闹钟&反浩克贴纸图5

浩克闹钟&反浩克贴纸图6

引出LED电源线
浩克闹钟&反浩克贴纸图7
测试
浩克闹钟&反浩克贴纸图8
整体图

浩克闹钟&反浩克贴纸图9
安装面具

浩克闹钟&反浩克贴纸图10
调整红外模块的灵敏度(调至最低,防止误触发)

浩克闹钟&反浩克贴纸图11
用热熔胶固定

浩克闹钟&反浩克贴纸图12
正面安装磁铁,用于吸合反浩克贴纸
(磁铁很小,可能看不到,在人中偏下的位置)

浩克闹钟&反浩克贴纸图13
背面图

浩克闹钟&反浩克贴纸图15
反浩克贴纸hhhh
浩克闹钟&反浩克贴纸图14
上面也有一个小磁铁哦,这个很重要

代码部分
需要安装Ds3231和MP3的库文件
下载附件DFRobotDFPlayerMini-1.0.1.zip
下载附件ds3231-master.zip

(MP3是使用DF的库文件)
DS3231一般买回来的时候是时间不准的,需要用代码调整,但是这个改时间的代码只要运行一次哦(程序中我就先注释掉了)
这一段:
  1.     //Reset time of the DS3231,Use only once when the time is not accurate
  2.     struct ts settime;
  3.     settime.sec = 00;
  4.     settime.min = 24;
  5.     settime.hour = 16;
  6.     settime.mday = 4;
  7.     settime.mon = 5;
  8.     settime.year = 2017;
  9.    
  10.     DS3231_set(settime);
复制代码

设置闹钟的代码
  1. // time when to wake up
  2. uint8_t wake_HOUR = 18;
  3. uint8_t wake_MINUTE = 54;
  4. uint8_t wake_SECOND = 20;
复制代码
这里设置的就是18'54"20,每天一次


完全体的代码
  1. #include "Arduino.h"
  2. #include "SoftwareSerial.h"
  3. #include "DFRobotDFPlayerMini.h"
  4. #include <Wire.h>
  5. #include "ds3231.h"
  6. #define BUFF_MAX 256
  7. SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
  8. DFRobotDFPlayerMini myDFPlayer;
  9. void printDetail(uint8_t type, int value);
  10. // time when to wake up
  11. uint8_t wake_HOUR = 18;
  12. uint8_t wake_MINUTE = 54;
  13. uint8_t wake_SECOND = 20;
  14. int playingFlag = 0;
  15. // how often to refresh the info on stdout (ms)
  16. unsigned long prev = 1000, interval = 1000;
  17. void set_alarm(void)
  18. {
  19.   // flags define what calendar component to be checked against the current time in order
  20.   // to trigger the alarm - see datasheet
  21.   // A1M1 (seconds) (0 to enable, 1 to disable)
  22.   // A1M2 (minutes) (0 to enable, 1 to disable)
  23.   // A1M3 (hour)    (0 to enable, 1 to disable)
  24.   // A1M4 (day)     (0 to enable, 1 to disable)
  25.   // DY/DT          (dayofweek == 1/dayofmonth == 0)
  26.   uint8_t flags[5] = { 0, 0, 0, 1, 1 };
  27.   // set Alarm1
  28.   DS3231_set_a1(wake_SECOND, wake_MINUTE, wake_HOUR, 0, flags);
  29.   // activate Alarm1
  30.   DS3231_set_creg(DS3231_INTCN | DS3231_A1IE);
  31. }
  32. void setup()
  33. {
  34.   pinMode(4,OUTPUT);//led pin
  35.   pinMode(3,INPUT);//ir sensor pin
  36.   Wire.begin();
  37.   DS3231_init(DS3231_INTCN);
  38.   DS3231_clear_a1f();
  39.   set_alarm();
  40.   mySoftwareSerial.begin(9600);
  41.   Serial.begin(115200);
  42.   Serial.println();
  43.   Serial.println(F("DFRobot DFPlayer Mini Demo"));
  44.   Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
  45.   if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
  46.     Serial.println(F("Unable to begin:"));
  47.     Serial.println(F("1.Please recheck the connection!"));
  48.     Serial.println(F("2.Please insert the SD card!"));
  49.     while (true);
  50.   }
  51.   Serial.println(F("DFPlayer Mini online."));
  52.   myDFPlayer.volume(22);  //Set volume value. From 0 to 30
  53.   //myDFPlayer.play(1);  //Play the first mp3
  54.   //myDFPlayer.pause();
  55.   /*
  56.     //Reset time of the DS3231,Use only once when the time is not accurate
  57.     struct ts settime;
  58.     settime.sec = 00;
  59.     settime.min = 24;
  60.     settime.hour = 16;
  61.     settime.mday = 4;
  62.     settime.mon = 5;
  63.     settime.year = 2017;
  64.    
  65.     DS3231_set(settime);
  66.   */
  67.   
  68. }
  69. void loop()
  70. {
  71.   char buff[BUFF_MAX];
  72.   unsigned long now = millis();
  73.   struct ts t;
  74.   // once a while show what is going on
  75.   if ((now - prev > interval) && (Serial.available() <= 0)) {
  76.     DS3231_get(&t);
  77.     // display current time
  78.     snprintf(buff, BUFF_MAX, "%d.%02d.%02d %02d:%02d:%02d", t.year,
  79.              t.mon, t.mday, t.hour, t.min, t.sec);
  80.     Serial.println(buff);
  81.     // display a1 debug info
  82.     DS3231_get_a1(&buff[0], 59);
  83.     Serial.println(buff);
  84.     if (DS3231_triggered_a1()) {
  85.       // INT has been pulled low
  86.       Serial.println(" -> alarm1 has been triggered");
  87.       myDFPlayer.enableLoopAll(); //play the first wav
  88.       digitalWrite(4,HIGH);//open led
  89.       playingFlag = 1;//set the playing flag
  90.       // clear a1 alarm flag and let INT go into hi-z
  91.       DS3231_clear_a1f();
  92.     }
  93.     prev = now;
  94.   }
  95.   if (!digitalRead(3) && playingFlag == 1)
  96.   {
  97.     myDFPlayer.pause();
  98.     digitalWrite(4,LOW);//close led
  99.     playingFlag = 0;
  100.   }
  101. }
复制代码

传一下代码文件和音频
下载附件HK_clock_1.zip
下载附件浩克声音.zip

nicho  中级技匠
 楼主|

发表于 2017-5-5 20:14:27

heinau 发表于 2017-5-5 13:25
这个设定好赞啊哈哈哈哈哈哈,效果也很好,
实际使用起来感觉如何啊

比手机闹钟好玩很多哈哈哈哈哈  放在床边不能再棒了
回复

使用道具 举报

luna  初级技神

发表于 2017-5-5 11:13:45

 有才有才!!考试顺利哦~转眼要到暑假了~羡慕啊
回复

使用道具 举报

nicho  中级技匠
 楼主|

发表于 2017-5-5 11:53:26

luna 发表于 2017-5-5 11:13
 有才有才!!考试顺利哦~转眼要到暑假了~羡慕啊

是呀  好快  一转眼
回复

使用道具 举报

heinau  高级技匠

发表于 2017-5-5 13:25:01

这个设定好赞啊哈哈哈哈哈哈,效果也很好,
实际使用起来感觉如何啊
回复

使用道具 举报

dsweiliang  初级技神

发表于 2017-5-5 14:10:32

效果很赞
回复

使用道具 举报

heinau  高级技匠

发表于 2017-5-8 15:17:29

nicho 发表于 2017-5-5 20:14
比手机闹钟好玩很多哈哈哈哈哈  放在床边不能再棒了

大清早的一睁眼就看到浩克绿油油的大脸,这个提神醒脑的方法的确不能再棒了
如果贴纸找不到了的话……?
回复

使用道具 举报

nicho  中级技匠
 楼主|

发表于 2017-5-8 17:31:40

heinau 发表于 2017-5-8 15:17
大清早的一睁眼就看到浩克绿油油的大脸,这个提神醒脑的方法的确不能再棒了
如果贴纸找不到了的 ...

那就关不了闹钟了
回复

使用道具 举报

Forgotten  版主

发表于 2017-5-8 22:35:47

提神闹钟
回复

使用道具 举报

Ash  管理员

发表于 2017-5-25 18:23:37

恭喜获得漫威主题创客作品征集大奖:DF创客商兑换代金券1000元 已发放至作者账户,请至DF创客商城-个人中心-余额 查看。
回复

使用道具 举报

nicho  中级技匠
 楼主|

发表于 2017-5-25 19:42:26

Ash 发表于 2017-5-25 18:23
恭喜获得漫威主题创客作品征集大奖:DF创客商兑换代金券1000元 已发放至作者账户,请至DF创客商城-个人中心 ...

多谢ASH老板
回复

使用道具 举报

安卓机器人  中级技神

发表于 2017-5-26 08:43:48

原来漫威就在身边。暑假里从另一角度重温漫威系列,寻乐去
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-13 05:48:19

上传程序需要时间,设置时间时设置秒钟准确吗?
回复

使用道具 举报

派大星ym  初级技匠

发表于 2022-8-5 11:26:13

厉害厉害厉害了
回复

使用道具 举报

派大星ym  初级技匠

发表于 2022-8-5 13:03:20

////
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail