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

智能动作触发闹钟:赖床不再,起床有保障

零部件与物料

零部件数量备注
Arduino Nano Every1紧凑低功耗,任意 Arduino 兼容板均可
DS3231 时钟模块1
HC-SR501 人体红外传感器1检测人体移动触发
蜂鸣器(5V 压电)1

软件与在线服务

项目简介

起床难?这款动作触发闹钟强制你保持清醒:按掉闹钟后若检测到你回床,闹铃重置,必须在传感器前保持活动设定时长才能彻底关闭。

组装接线

准备:DS3231 RTC、HC-SR501 PIR、蜂鸣器、轻触按钮、Arduino Nano Every。

智能动作触发闹钟:赖床不再,起床有保障

接线对照:

智能动作触发闹钟:赖床不再,起床有保障

核心代码

先安装 DS3231 库(代码区下载 ZIP → IDE 添加)。首次烧录后需注释掉 clock.setDateTime(__DATE__, __TIME__),否则每次复位都会重置时间。

#include <Wire.h>
#include <DS3231.h>
DS3231 clock;
RTCDateTime dt;
int button = 9;
int pirPin = 7;
int pirValue;
int set_hour = 7;
int set_minute = 0;

void setup() {
  clock.begin();
  pinMode(button, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
  // clock.setDateTime(__DATE__, __TIME__); // 首次上传后注释
  pinMode(pirPin, INPUT);
}

void alarm(int minute) {
  bool button_pressed = false, awake = false, movement = false;
  // 阶段1:响铃等待按键
  while (!button_pressed) {
    for (int i = 0; i < 4; i++) {
      tone(11, 523, 100); delay(100);
      tone(11, 784, 50);
      for (int j = 0; j < 20; j++) {
        if (digitalRead(button) == LOW) {
          button_pressed = true; awake = true;
          dt = clock.getDateTime(); minute = dt.minute;
        }
        delay(65);
      }
    }
  }
  dt = clock.getDateTime(); minute = dt.minute;
  // 阶段2:必须在传感器前保持活动
  while (awake) {
    movement = false;
    dt = clock.getDateTime();
    for (int i = 0; i < 30; i++) if (digitalRead(pirPin)) movement = true;
    digitalWrite(LED_BUILTIN, movement);
    if (!pirValue) {
      delay(5000);
      for (int i = 0; i < 40; i++) if (digitalRead(pirPin)) movement = true;
      if (!movement) alarm(minute); // 无动作则重置闹钟
    }
    if (abs(dt.minute - minute) >= 1) { // 设定清醒时长(如1分钟)
      tone(11, 698, 50); delay(100); tone(11, 698, 50);
      digitalWrite(LED_BUILTIN, 0); awake = false;
    }
    delay(100);
  }
}

void loop() {
  dt = clock.getDateTime();
  if (set_minute == dt.minute && set_hour == dt.hour) alarm(set_minute);
  delay(10000);
}

传感器调节

智能动作触发闹钟:赖床不再,起床有保障

将 HC-SR501 跳线帽设为可重复触发模式(H 位)。

智能动作触发闹钟:赖床不再,起床有保障

灵敏度拧到最大,延迟拧到最小:既能持续检测到人,又不会因延迟过长而忽略“回床”动作。

智能动作触发闹钟:赖床不再,起床有保障

小型化封装

面包板验证无误后,直接焊接到 Nano Every 做成掌上闹钟。

智能动作触发闹钟:赖床不再,起床有保障

用 3mm 轻型木板(55×35×40mm)做外壳:预留大窗给 PIR、Micro-USB 充电口、蜂鸣器出声孔。

智能动作触发闹钟:赖床不再,起床有保障
智能动作触发闹钟:赖床不再,起床有保障
智能动作触发闹钟:赖床不再,起床有保障
智能动作触发闹钟:赖床不再,起床有保障

成品展示:

智能动作触发闹钟:赖床不再,起床有保障
智能动作触发闹钟:赖床不再,起床有保障
智能动作触发闹钟:赖床不再,起床有保障

代码与库文件

原理图

面包板正负轨接 Arduino 5V/GND。

智能动作触发闹钟:赖床不再,起床有保障 智能动作触发闹钟:赖床不再,起床有保障

制造工艺

  1. 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟
  2. 冲压作业成功与安全的关键因素:从废料分析入手
  3. 影响表面磨削性能的关键因素
  4. CNC车床:全能精密加工的单一设备解决方案
  5. 高精密制造必备:卧式加工中心(HMC)深度解析
  6. 如何为车床选择理想的短棒送料器
  7. 镗床在精密加工中的核心优势与应用解析
  8. 直驱水泵对循环系统的影响与应用解析
  9. 可转位铣刀全攻略:高效能加工的利器选择
  10. 排气管芯棒弯管机:核心优势与生产洞察
  11. 开启工业4.0之旅:通过SICK培训掌握PLC上的IO-Link
  12. NEVS特罗尔海坦共享出行实验:重塑人车情感纽带的移动新纪元