亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

真正让您在早上起床的闹钟

组件和用品

Arduino Nano Every
我将使用 Nano Every 进行最后的组装。但是您也可以使用几乎任何其他 Arduino(一开始我使用的是 Mega2560)。
× 1
时钟模块
× 1
HC-SR501
这是运动传感器
× 1
蜂鸣器
× 1

应用和在线服务

Arduino IDE

关于这个项目

因为有时候早上起床很困难,所以我决定做一个闹钟,真的可以让你起床。这个想法是使用运动传感器,以便闹钟知道您在按下贪睡按钮后是否回到床上。如果是这种情况,警报将再次响起。否则,如果您起床时间足够长(例如 2 分钟),闹钟将不再响起。在此期间,您必须大约在传感器前面(几米内),您可以在那里开始您的早晨例行活动。

组装

对于这个项目,我们需要一个时钟模块、一个运动传感器、一个蜂鸣器、一个小按钮和一个 Arduino。

现在一切都需要连接起来:

  • 蜂鸣器的负极引脚 --> GND
  • 蜂鸣器正极引脚 --> D11
  • 按钮引脚 --> GND
  • 另一个按钮销 --> D9
  • 运动传感器 VCC --> 5V
  • 运动传感器输出 --> D7
  • 运动传感器GND --> GND
  • 时钟模块地-->地
  • 时钟模块VCC --> 5V
  • 时钟模块 SDA --> SDA(Mega2560 的引脚 20)
  • 时钟模块 SCL --> SCL(Mega2560 的引脚 21)

如图所示接线后:

代码

首先,您需要从代码部分下载 ZIP 文件。这是时钟模块的库。如果您在将文件添加到库时遇到困难,可以按照代码部分中的说明进行操作。

现在您可以从软件部分上传代码。在你上传代码后,你必须注释掉这一行:

clock.setDateTime(__DATE__, __TIME__); 

此行在设置功能中。

现在你应该直接重新上传代码。

如果不注释掉,每次重置板子时,时钟模块中的时间都会重置为上次上传的时间。

之后,您可以设置闹钟响起的时间。您可以设置一天中的小时和分钟:

//--------------------------------------int set_hour =6;int set_minute =55;//------------------------------------------------ 

现在闹钟每天都会在这个时候响起。还可以编辑代码,以便您可以在周末或其他几天有不同的时间。

现在如果你给闹钟供电,它会一直等到设定的时间。然后将执行alarm() 函数。起初它会开始发出哔哔声,直到您按下贪睡按钮。之后,运动传感器会检查它前面是否有人。你必须在传感器前面一段给定的时间,你还必须移动一点,以便触发运动传感器。如果您在运动传感器的视野范围内保持足够长的时间,则会发出短促的蜂鸣声,告诉您闹钟现在已在当天禁用,它将一直等到第二天早上。

但是,如果您在按下按钮后的时间内回到床上,闹钟将响起,整个过程将重新开始。所以这个闹钟可以确保你不只是关掉闹钟然后回到床上。希望在您站在传感器前的时间之后,您已经足够清醒,不会再上床睡觉了。

在此行中,您可以调整必须位于传感器前的时间(以分钟为单位):

if(abs(dt.minute - minute)>=1){ //设置你必须 // 进入的时间段 

传感器调整

运动传感器需要进行一些调整才能正常使用此闹钟。首先,我们必须将触发器选择跳线放到正确的位置。需要处于可重复触发模式!

现在您还必须调整时间延迟和灵敏度。对我来说,当我将灵敏度设置为最大值并且时间延迟稍微超过最小值时,效果最好。时间延迟决定了最后一次检测到一个人后输出高的时间。如果延迟太短,则很难阻止警报再次响起,因为传感器不会始终检测到您。另一方面,如果延迟时间太长,则您再次回到床上时警报不会通知。

现在我们让它变得紧凑

经过一些测试,我们准备使闹钟更紧凑。为此,我使用 Arduino Nano Every,但您也可以使用几乎任何其他 Arduino 板。

我们开始根据第二个原理图将所有东西焊接在一起(它与以前基本相同,只是没有面包板)。

在测试一切是否仍然正常后,我们可以为闹钟构建一个案例。我决定用 3 毫米的轻木制作外壳,因为它很容易使用。下面是一些构建案例过程的图片。我的箱子尺寸是 55mm x 35mm x 40mm。

我为运动传感器开了一个大洞,还有一个用于 micro USB 电缆的插槽和一个用于扬声器的开口。

完成的闹钟:

代码

  • 闹钟Arduino代码
  • 时钟库
闹钟Arduino代码Arduino
#include #include DS3231 时钟;RTCDateTime dt;int button =9;int pirPin =7; // HC-S501int pirValue 的输入; // 存储读取 PIR 值的位置//------------------------------------------------int set_hour =7;int set_minute =0;//--------------------------------------无效设置(){时钟。开始(); pinMode(按钮,INPUT_PULLUP); pinMode(LED_BUILTIN,输出); //clock.setDateTime(__DATE__, __TIME__); // !!在第一次上传后,您必须注释掉这一行。否则你会得到错误的时间!! pinMode(pirPin, INPUT);}void alarm(int minute){ bool button_pressed =false; bool 清醒 =假;布尔运动 =假; while(!button_pressed){ //只要没有按下按钮,闹钟就会开启 for(int i =0; i <4; i++){tone(11, 523, 100);延迟(100);音调(11、784、50); for(int i =0; i <20; i++){ if(digitalRead(button) ==LOW){ button_pressed =true;清醒 =真; dt =时钟.getDateTime();分钟 =dt.minute; } 延迟(65); } } } dt =clock.getDateTime();分钟 =dt.minute;而(清醒){运动=假; dt =时钟.getDateTime(); for(int i =0; i <30; i++){ if(digitalRead(pirPin)){movement =true;} } digitalWrite(LED_BUILTIN, Movement);如果(!pirValue){ 延迟(5000); for(int i =0; i <40; i++){ if(digitalRead(pirPin)){movement =true;} } if(!movement){ alarm(minute); //如果没有检测到动作太久,警报会重置 } } if(abs(dt.minute - minute)>=1){ //设置你必须在传感器前面的时间段(11, 698 , 50);延迟(100);音调(11、698、50);数字写入(LED_BUILTIN,0);清醒=假; } 延迟(100); }} void loop() { dt =clock.getDateTime(); if(set_minute ==dt.minute &&set_hour ==dt.hour){ alarm(set_minute); } 延迟(10000);}
时钟库Arduino
这是 DS3231 库的 zip 文件。您必须下载它并将其添加到您的库中,如下所示:
打开 Arduino --> 转到“草图”->“包含库”->“添加 .ZIP 库”--> 转到 zip 文件并单击确定
无预览(仅下载)。

示意图

我忘了在面包板上绘制到 VCC 和 GND 的连接。所以你只需要将 Arduino 上的 5V 连接到正轨,将 Arduino 上的 GND 连接到负轨。

制造工艺

  1. 巨魔之帽将改变您对汽车的看法
  2. 带 DS1302 RTC 的简单闹钟
  3. SICK 的工业 4.0 培训让您开始使用 PLC 上的 IO-Link
  4. 影响冲压过程成功和安全的因素
  5. 影响平面磨削加工结果的关键因素
  6. 数控车床可能是您唯一需要的机器!
  7. 您可能需要的卧式加工设备
  8. 您想要最好的短棒送料机吗?
  9. 您需要镗削加工的主要原因
  10. 水泵直接 - 影响循环系统
  11. 您需要了解的关于刀片式立铣刀的知识
  12. 您需要了解的关于排气芯轴弯管机的知识