|
|
首先感谢前几天我发的求助贴,给我解答的Tim老师还有其他老师。
制作原因:1:有时在家给太阳能打水,水没打满期间忙别的把打水的事忘了,并且又出门去了,回来时肯定水已经打
满流很长时间了。
2:如果天然气上烧着水或其他,出门忘了,那后果更严重。
历经千辛万苦终于完成出门提醒器2.0版,程序部分通过实验测试。
也可以看我的空间http://user.qzone.qq.com/46402123/infocenter
2.0版使用方法:此版本共有四个按键(真实投入使用时,把天然气按键和太阳能按键换成无线接收的开关,出门按键
成门磁开关)
作为日常提醒,没有其他事件启动时,只要打开门就会语音提醒“出门请带上手机、钥匙、钱包”。
当天然气按键启动,打开门时就会语音提醒“请关闭天然气”。
当太阳能按键启动,打开门时就会语音提醒“请关闭太阳能”。
按下复位键,人为启动的条件都会复位,重新回到出门日常语音提醒。
出门提醒器2.0版硬件配置:Arduino、扩展板、Syn6288语音模块(含喇叭)、自制按键、连线等。
照片与视频用同事新买的小米1S手机拍的
程序代码 还请各位老师在帮我看看,有什么地方用的不对的吗?我对程序不是太懂。- #include "Syn6288.h"
- int key_trq=4; //按键1输入端;
- int key_tyn=5; //按键2输入端;
- int key_door=6; //按键3输入端;
- int key_reset=7; //按键4输入端;
- boolean trq_n=false; //上电复位;
- boolean tyn_n=false; //上电复位;
- Syn6288 syn;
- uint8_t text1[]={0xC7,0xEB,0xB9,0xD8,0xB1,0xD5,0xCC,0xEC,0xC8,0xBB,0xC6,0xF8}; //请关闭天然气
- uint8_t text2[]={0xC7,0xEB,0xB9,0xD8,0xB1,0xD5,0xCC,0xAB,0xD1,0xF4,0xC4,0xDC}; //请关闭太阳能
- 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}; //出门请带上手机钥匙钱包
- void setup()
- {
- Serial.begin(9600);
- pinMode(key_trq,INPUT); //初始化,定义各端口属性;
- pinMode(key_tyn,INPUT);
- pinMode(key_door,INPUT);
- pinMode(key_reset,INPUT);
- }
-
- boolean key_trq_n() //天然气子程序;
- {
- if(digitalRead(key_trq) == LOW) //按键1按下;
- {
- delay(20);
- if(digitalRead(key_trq) == LOW)
- {
- trq_n = true; //重新启动;
- }
- while(digitalRead(key_trq) == LOW);
- }
- return trq_n;
- }
- boolean key_tyn_n() //太阳能子程序;
- {
- if(digitalRead(key_tyn) == LOW) //按键2按下;
- {
- delay(20);
- if(digitalRead(key_tyn) == LOW)
- {
- tyn_n = true; //重新启动;
- }
- while(digitalRead(key_tyn) == LOW);
- }
- return tyn_n;
- }
- void loop()
- {
- if(digitalRead(key_reset)==LOW) //复位;
- {
- trq_n=false; //复位;
- tyn_n=false;
- }
- if(key_trq_n() && digitalRead(key_door)==LOW) //天然气+门开关=语音1;
- {
- syn.play(text1,sizeof(text1),0); //语音1,请关闭天然气;
- }
- if(key_tyn_n() && digitalRead(key_door)==LOW) //太阳能+门开关=语音2;
- {
- syn.play(text2,sizeof(text2),0); //语音2,请关闭太阳能;
- }
- if(digitalRead(key_door)==LOW && !key_trq_n() && !key_tyn_n()) //门开关=语音2;
- {
- syn.play(text3,sizeof(text3),0); //语音3,出门请带上手机钥匙钱包;
- }
- }
复制代码 1. 下面的工作就是硬件部分了,先找个合适的盒子,把电路装进去。
2. 更换相应的触发按键。
3. 在继续改进升级,如在之后的2.X版加入已启动事件的指示灯、无线门铃等等一些改进。在3.0之后的版本加入屏幕显示。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|