极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24008|回复: 10

Arduino出门提醒器2.0版

[复制链接]
发表于 2012-10-6 10:05:15 | 显示全部楼层 |阅读模式
      首先感谢前几天我发的求助贴,给我解答的Tim老师还有其他老师。

    制作原因:1:有时在家给太阳能打水,水没打满期间忙别的把打水的事忘了,并且又出门去了,回来时肯定水已经打  
                 满流很长时间了。
              2:如果天然气上烧着水或其他,出门忘了,那后果更严重。

    历经千辛万苦终于完成出门提醒器2.0版,程序部分通过实验测试。
    也可以看我的空间http://user.qzone.qq.com/46402123/infocenter
       2.0版使用方法:此版本共有四个按键(真实投入使用时,把天然气按键和太阳能按键换成无线接收的开关,出门按键
                   成门磁开关)
                   作为日常提醒,没有其他事件启动时,只要打开门就会语音提醒“出门请带上手机、钥匙、钱包”。
                   当天然气按键启动,打开门时就会语音提醒“请关闭天然气”。
                   当太阳能按键启动,打开门时就会语音提醒“请关闭太阳能”。
                   按下复位键,人为启动的条件都会复位,重新回到出门日常语音提醒。

出门提醒器2.0版硬件配置:Arduino、扩展板、Syn6288语音模块(含喇叭)、自制按键、连线等。

照片与视频用同事新买的小米1S手机拍的











程序代码  还请各位老师在帮我看看,有什么地方用的不对的吗?我对程序不是太懂。
  1. #include "Syn6288.h"
  2. int key_trq=4;  //按键1输入端;
  3. int key_tyn=5;  //按键2输入端;
  4. int key_door=6;  //按键3输入端;
  5. int key_reset=7;  //按键4输入端;
  6. boolean trq_n=false;  //上电复位;
  7. boolean tyn_n=false;  //上电复位;
  8. Syn6288 syn;
  9. uint8_t text1[]={0xC7,0xEB,0xB9,0xD8,0xB1,0xD5,0xCC,0xEC,0xC8,0xBB,0xC6,0xF8}; //请关闭天然气
  10. uint8_t text2[]={0xC7,0xEB,0xB9,0xD8,0xB1,0xD5,0xCC,0xAB,0xD1,0xF4,0xC4,0xDC}; //请关闭太阳能
  11. uint8_t text3[]={0xB3,0xF6,0xC3,0xC5,0xC7,0xEB,0xB4,0xF8,0xC9,0xCF,0xCA,0xD6,0xBB,0xFA,0xD4,0xBF,0xB3,0xD7,0x3B,0xC7,0xAE,0xB0,0xFC}; //出门请带上手机钥匙钱包

  12. void setup()
  13.   {
  14.   Serial.begin(9600);
  15.   pinMode(key_trq,INPUT);  //初始化,定义各端口属性;
  16.   pinMode(key_tyn,INPUT);
  17.   pinMode(key_door,INPUT);
  18.   pinMode(key_reset,INPUT);
  19.   }
  20.   
  21.   boolean key_trq_n()  //天然气子程序;
  22. {
  23.   if(digitalRead(key_trq) == LOW)    //按键1按下;
  24.   {
  25.     delay(20);
  26.     if(digitalRead(key_trq) == LOW)
  27.     {
  28.       trq_n = true;  //重新启动;
  29.     }
  30.     while(digitalRead(key_trq) == LOW);
  31.   }
  32.   return trq_n;
  33. }

  34. boolean key_tyn_n()  //太阳能子程序;
  35. {
  36.   if(digitalRead(key_tyn) == LOW)    //按键2按下;
  37.   {
  38.     delay(20);
  39.     if(digitalRead(key_tyn) == LOW)
  40.     {
  41.       tyn_n = true;  //重新启动;
  42.     }
  43.     while(digitalRead(key_tyn) == LOW);
  44.   }
  45.   return tyn_n;
  46. }

  47. void loop()
  48. {  
  49.   if(digitalRead(key_reset)==LOW)  //复位;
  50.   {
  51.   trq_n=false; //复位;
  52.   tyn_n=false;
  53.   }
  54.     if(key_trq_n() && digitalRead(key_door)==LOW)  //天然气+门开关=语音1;
  55.     {
  56.     syn.play(text1,sizeof(text1),0); //语音1,请关闭天然气;
  57.     }
  58.     if(key_tyn_n() && digitalRead(key_door)==LOW)  //太阳能+门开关=语音2;
  59.     {
  60.     syn.play(text2,sizeof(text2),0); //语音2,请关闭太阳能;
  61.     }
  62. if(digitalRead(key_door)==LOW && !key_trq_n() && !key_tyn_n())  //门开关=语音2;
  63.     {
  64.     syn.play(text3,sizeof(text3),0); //语音3,出门请带上手机钥匙钱包;
  65.     }
  66.   }
复制代码
1. 下面的工作就是硬件部分了,先找个合适的盒子,把电路装进去。
2. 更换相应的触发按键。
3. 在继续改进升级,如在之后的2.X版加入已启动事件的指示灯、无线门铃等等一些改进。在3.0之后的版本加入屏幕显示。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-10-6 11:12:51 | 显示全部楼层
31行的while(digitalRead(key_trq) == LOW);和45行不需要吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-6 11:25:36 | 显示全部楼层
benzking 发表于 2012-10-6 11:12
31行的while(digitalRead(key_trq) == LOW);和45行不需要吧

while(digitalRead(key_tyn) == LOW);
主要给 return tyn_n;   用的,主要判别状态的。
回头我去掉试试。

我主要担心的是这句if(digitalRead(key_door)==LOW && !key_trq_n() && !key_tyn_n())中“&&”逻辑和后能不能直接给“!”
还有我用的都是if,还是用if else好呢。

不过现在的程序都可以用的。
回复 支持 反对

使用道具 举报

发表于 2012-10-6 11:52:52 | 显示全部楼层
不错,这个语音模块挺流畅的
回复 支持 反对

使用道具 举报

发表于 2012-10-6 17:37:36 | 显示全部楼层
lz准备用什么天然气按键和太阳能按键换成无线接收的开关
这个比较难找吧
回复 支持 反对

使用道具 举报

发表于 2012-10-6 23:05:31 | 显示全部楼层
zhi只是一个创意而已,别要求搞
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-8 12:26:42 | 显示全部楼层
benzking 发表于 2012-10-6 17:37
lz准备用什么天然气按键和太阳能按键换成无线接收的开关
这个比较难找吧

我打算用比较低廉的 2272-M4 非锁四路无线遥控 做输入
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-8 12:32:35 | 显示全部楼层
太行摄狼 发表于 2012-10-6 23:05
zhi只是一个创意而已,别要求搞

是的,因为我不是做电子这行的,只是非常喜欢,就当边玩边学习了。O(∩_∩)O~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-8 12:34:03 | 显示全部楼层
MicroCao 发表于 2012-10-6 11:52
不错,这个语音模块挺流畅的

好像有很多公交车都用它报站吧。有点语言读的也不顺耳。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 19:47 , Processed in 0.037845 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表