如何使用运动检测传感器创建一个闹钟

发布者:SereneNature最新更新时间:2022-12-05 来源: elecfans关键字:运动检测  传感器  闹钟 手机看文章 扫描二维码
随时随地手机看文章

我使用运动检测传感器创建了一个闹钟,这样您就不能只是按下贪睡按钮并重新入睡。


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


构建

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

pYYBAGLZHJ2AD8XOAARYm9hXnpM831.png

连接:

蜂鸣器的负极-〉 GND

正蜂鸣器引脚-〉 D11

按钮引脚-〉 GND

另一个按钮引脚-〉 D9

运动传感器 VCC --〉 5V

运动传感器输出 --〉 D7

运动传感器 GND --〉 GND

时钟模块 GND --〉 GND

时钟模块 VCC --〉 5V

时钟模块 SDA --〉 SDA(Mega2560 的引脚 20)

时钟模块 SCL --〉 SCL(Mega2560 的引脚 21)

接线后:

poYBAGLZHJiAfPNSAANI8y47ZRg755.png

代码

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

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

clock.setDateTIme(__DATE__, __TIME__);

该行在设置函数中。

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

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

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

//--------------------------------------

int set_hour = 6;

int set_minute = 55;

//--------------------------------------

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


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


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


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

if(abs(dt.minute - minute) 〉= 1){ //set the TIme period where you must //be in

传感器调整

pYYBAGLZHJKAF4v2AAH0fkD_rHI611.png

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

poYBAGLZHI6ATvUhAAKM1I_UID0893.png

现在您还必须调整时间延迟和灵敏度。对我来说,当我将灵敏度设置为最大值并且时间延迟略高于最小值时,它的效果最好。时间延迟决定了在最后一次检测到一个人之后多长时间输出为高电平。如果延迟太短,那么很难防止警报再次响起,因为传感器不会总是检测到您。另一方面,如果延迟时间过长,那么如果您再次上床睡觉,警报器将不会注意到。

poYBAGLZHIuAX6Z-AAOtQUXvpkI524.png

焊接

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


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

pYYBAGLZHIWARlEUAAPnycufcwU104.png

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

pYYBAGLZHIGAD-EbAAKFR4PTgMM554.png

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

poYBAGLZHH2ALzRcAAKBLrPe7IQ774.png

完成后的闹钟:

poYBAGLZHHmActk-AAKz35NKZew651.png

闹钟Arduino代码:

#include
#include

DS3231 clock;
RTCDateTIme dt;

int button = 9;
int pirPin = 7; // Input for HC-S501
int pirValue; // Place to store read PIR Value

//--------------------------------------
int set_hour = 7;
int set_minute = 0;
//--------------------------------------

void setup() {
  clock.begin();
  pinMode(button, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
  //clock.setDateTime(__DATE__, __TIME__); // !!AFTER THE FIRST UPLOAD YOU HAVE TO COMMENT OUT THIS LINE. OTHERWISE YOU WILL GET A WRONG TIME!!
  pinMode(pirPin, INPUT);
}

void alarm(int minute){
  bool button_pressed = false;
  bool awake = false;
  bool movement = false;
  
  while(!button_pressed){     //the alarm is on as long the button isn't pressed
    for(int i = 0; i < 4; i++){
      tone(11, 523, 100);
      delay(100);
      tone(11, 784, 50);

      for(int i = 0; i < 20; i++){
        if(digitalRead(button) == LOW){
        button_pressed = true;
        awake = true;
        dt = clock.getDateTime();
        minute = dt.minute;
        }
        delay(65);
      }
    }
  }

  dt = clock.getDateTime();
  minute = dt.minute;

  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 no motion is detected for too long the alarm resets
      }
    }

    if(abs(dt.minute - minute) >= 1){ //set the time period where you must be in front of the sensor
      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);
}


关键字:运动检测  传感器  闹钟 引用地址:如何使用运动检测传感器创建一个闹钟

上一篇:如何使用Amazon Alexa控制电视机
下一篇:自制一个电子分频器

推荐阅读最新更新时间:2024-11-20 00:02

Allegro推出业界体积更小的正弦/余弦3D位置传感器
新型 A33230 霍尔效应传感器能够凭借微型封装提供卓越性能 美国新罕布什尔州曼彻斯特 - 运动控制和节能系统传感技术和功率半导体解决方案的全球领导厂商Allegro MicroSystems(纳斯达克股票代码:ALGM)(以下简称Allegro)今天宣布推出全新A33230正弦/余弦3D霍尔效应位置传感器IC,这是目前市场上体积更小的正弦/余弦3D传感器,能够为汽车和工业等领域的系统设计人员提供高性价比解决方案,并可加快产品上市速度。 A33230 包含有两个独立的模拟信号通道,可提供卓越的高速性能,而小巧的 SOT23-W 封装尺寸使其非常适合于 PCB 空间非常宝贵的应用。 该IC还可用作角度传感器,前提是系
[传感器]
Allegro推出业界体积更小的正弦/余弦3D位置<font color='red'>传感器</font>
新型非接触式键盘的传感器选择分析
一、摘要 现有的机械敲击式键盘在人们生活中逐渐出现的不良影响慢慢的凸显,对于新型非接触式键盘,可以提高人们的生活质量有一定的作用。对于此键盘的开发具有一定的价值。 本设计用Microchip公司生产的高性能MIPS核MCU--PIC32MX460F512L开发板Cerebot 32MX4 Board作为主控板,并采用的是廉价的、用途广等诸多优点的LED作为此设计的核心部件之一。LED作为感应器件的同时又可以作为发光源,美观、大方等实用性和商业性的诸多优点。故设计此项目。 二 传感器的选取 2.1关于几种传感器的选择 ①光敏二极管 有价格低,准确性高等特点。但在夜晚,不具备识别的功能。 该传感器价格便宜,
[传感器]
MEMS传感器在汽车中如何演进?车规级新产品涌现
南美洲的一只蝴蝶扇动一下翅膀,给北美带来一场飓风;镜头放慢1000倍,可以看到子弹穿过鸡蛋的瞬间画面;把细节处放大,会发现众多微小的感知,隐藏着巨大的能量。 其中,MEMS传感器(微机电系统)就是在汽车中一个并不起眼的零件,但它的内部世界既敏感又精准,应用于汽车的防抱死系统(ABS)、电子车身稳定程序(ESP)、电控悬挂(ECS)、电动手刹(EPB)、斜坡起动辅助(HAS)、胎压监控(EPMS)、引擎防抖、车辆倾角计量等等。 在MEMS传感器领域,ADI是深耕多年的头部企业。1987年开始便投入MEMS传感器的研发,也是业界较早从事MEMS研发的公司;1991年,ADI发布了第一颗高g值MEMS加速度计,聚焦汽车安全气囊碰
[汽车电子]
MEMS<font color='red'>传感器</font>在汽车中如何演进?车规级新产品涌现
新一代硅芯片温度传感器让测量精度更高
摘要 本文检验最新一代硅芯片温度传感器的准确性。这些传感器提供数字输出,无需线性化,支持小封装尺寸和低功耗。其中许多具备报警功能,以提醒系统存在潜在故障。 简介 电子行业对精度的要求越来越高,温度检测也不例外。目前市面上有许多温度检测解决方案,每一种都有其优缺点。硅芯片温度传感器,线性度相对较高,而且精度远超其他解决方案。但是,硅芯片温度检测领域的最新进展意味着,使用硅芯片解决方案将可以实现高分辨率和高精度。 新冰箱 那时正是2020年3月,英国即将进入封锁状态。全球都在囤积食物,以防超市关门,而未来似乎充满不确定。就在这种时候,Bramble家的冰箱罢工了。满脑子都回响着Kenny Rogers单曲“露西
[模拟电子]
新一代硅芯片温度<font color='red'>传感器</font>让测量精度更高
将无传感器BLDC电机控制引入低成本应用
  电机在我们日常生活中的几乎每个部分发挥着作用。它们驱动洗碗机和洗衣机,使室内变得凉爽,并且对于现代交通工具更是必不可少。无刷直流(BLDC)电机已成为许多匀速或变速的高可靠性中高档系统的选择。借助几个霍尔效应传感器和一个 控制器 ,BLDC电机变得相对容易控制。如今,BLDC电机系统已十分常见,但是,大多数系统仍使用传感器来控制电机。为了降低BLDC系统的成本并提高可靠性,许多设计人员希望除去传感器。无传感器系统已出现相当长一段时间,但在过去,它们需要昂贵的控制器才能运行除去传感器所需的算法。数字信号控制器(DSC)(例如Microchip的dsPIC33FJ15MC102,批量订购时,单价仅约1美元)使无传感器BLDC电机控
[嵌入式]
光纤传感器的发展趋势及应用
近年来, 传感器 朝着灵敏、精确、适应性强、小巧和智能化的方向发展。在这一过程中,光纤传感器这个传感器家族的新成员倍受青睐。光纤具有很多优异的性能,例如:抗电磁干扰和原子辐射的性能,径细、质软、重量轻的机械性能;绝缘、无感应的电气性能;耐水、耐高温、耐腐蚀的化学性能等,它能够在人达不到的地方(如高温区或者对人有害的地区,如核辐射区),起到人的耳目作用,而且还能超越人的生理界限,接收人的感官所感受不到的外界信息。 基本工作原理及应用领域 光纤传感器的基本工作原理是将来自光源的光经过光纤送入调制器,使待测参数与进入调制区的光相互作用后,导致光的光学性质(如光的强度、波长、频率、相位、偏正态等)发生变化,称为被调制的信号光,在经
[传感器]
光纤<font color='red'>传感器</font>的发展趋势及应用
基于队列理论CSMA/CA机制的无线传感器异构机制
    随着无线通信、集成电路、传感器以及微机电系统(MEMS)等技术的飞速发展和日益成熟,低成本、低功耗、多功能的微型传感器的大量生产成为可能。这些传感器在微小体积内通常集成了信息采集、数据处理和无线通信等多种功能。无线传感器网络(WSN)就是由部署在监测区域内大量的微型传感器节点通过无线电通信形成的一个多跳的自组织网络系统,其目的是协作的感知、采集和处理网络覆盖区域里被监测对象的信息,并发送给观察者。由于微型传感器的体积小、重量轻,有的甚至可以像灰尘一样在空气中浮动,因此,人们又称无线传感器网络为“智能尘埃”,将它散布于四周以实物感知物理世界的变化。异构性是无线传感器网络一个非常重要的特征,众多因素决定了异构性是无线传感器网络内
[嵌入式]
基于集成压力传感器的无源胎压监控系统设计
  1 引言   据美国汽车工程师学会最近的调查,每年75%的轮胎故障是由于轮胎渗漏或充气不足引起的。据公安部统计,在中国高速公路上发生的交通事故有70%是由于爆胎引起的,而在美国这一比例则高达80%。如何防止爆胎已成为安全驾驶的一个重要课题。   压力 传感器 是将压力转换为电信号输出的传感器。通常把压力测量仪表中的电测式仪表称为 压力传感器 。压力传感器一般由弹性敏感元件和位移敏感元件(或应变计)组成。弹性敏感元件的作用是使被测压力作用于某个面积上并转换为位移或应变,然后由位移敏感元件或应变计转换为与压力成一定关系的电信号。有时把这两种元件的功能集于一体。压力传感器广泛应用于各种工业自控环境,涉及水利水电、铁路交通、智能建筑、生
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved