社区导航

 

搜索
查看: 405|回复: 14

[GD32E231 作品提交] GD32E231 DIY大赛(9)——《家庭智能监控》项目总结

[复制链接]

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2019-5-20 19:58 | 显示全部楼层 |阅读模式
本帖最后由 hujj 于 2019-5-21 13:04 编辑

一、项目名称:
    家庭红外智能报警装置

二、项目简介:
    常见的人体红外线监控装置功能比较单一,需要手工设定播放欢迎语或播放警笛声,而我们在家庭实际使用中,白天需要听到的是欢迎语,夜晚就寝之后才需要警笛报警声,也就是说需要有一个智能化的人体红外线监控装置,不光是能够自动根据时间段(白天或深夜)来确定监控播放内容,而且还能够自动记录监控触发的时间。
    项目总体设想是通过GD32E231开发板作为主控单元,用LCD5110显示屏及两个用户按钮作为人机交互模块,通过红外线探头来作监测,用AT24C02flash芯片来保存记录监控报警的触发时间,这样就能初步实现基本的智能功能。
   
三、项目的主要任务:
    1、完成LCD5110的驱动;
    2、完成AT24C02的读写操作;
    3、完成红外监测探头的驱动;
    4、完成两个用户按键的功能;
    5、用户设置日期及时间功能;
    6、用户浏览报警记录功能。

四、系统功能简介:
    1、通过红外传感器检测监控范围内的人员活动,有移动人员立即发出报警声。并留有其它传感器接口,可以继续添加可燃气体传感器和烟雾传感器等,增加使用功能;
    2、通过AT24C02flash芯片保存警报记录,每条记录占用8个字节,可存储最后的32条报警记录;
    3、使用DS1302日历模块提供日期及时间,同时在屏幕最下面显示当前的日期及时间。启用系统滴答提供毫秒信号,在main程序的主循环中计算秒信号并提供显示用,同时每分钟读取一次DS1302的时钟数据并更新显示;
    4、采用一块四声报警音乐芯片提供救护车、消防车、警车警报声,采用一块音乐芯片提供乐曲声音;
    5、在正常报警声情况下,用户可以自行设置两个时间点(每15分钟为一个单位),第一个时间点在0~12时范围内任意设置, 第二个时间点为第一个时间点到23点45分之间任意设置,在这两个时间之间报警为音乐提示,在此之外为警报声提示;
    6、用户还可以指定救护车声、消防车声、警车声和音乐声之一为固定的报警声音,此时不受上述时间点的控制;
    7、用户可以自行设定警报声时长,时长可在1~255秒之间任意设定,音乐声音的时长不受这个设置影响;
    8、系统会自动记录报警的日期时间,这些记录存储在AT24C02中,保留最后32条报警记录。同时还会记录警情次数并在屏幕上显示,这个数据在查询报警记录后或断电后归零;
    9、若有未查看的报警记录,系统会每隔15分钟发出短促的响声提示,直到用户进入查询状态或系统断电;
    10、查询时屏幕每次显示三条记录,可通过按键上下翻看最后32条报警记录的日期和时间。

五、硬件框图:
complete_09.jpg

六、硬件连接及相关的照片:
1、硬件连接
complete_00.jpg


2、开发板及AT24C02FIASH芯片、DS1302模块
complete_01.jpg


3、红外检测传感器及四声报警音乐IC
complete_02.jpg


4、音乐IC及喇叭
complete_03.jpg

七、源代码:
Alarm.rar (507.36 KB, 下载次数: 6)


回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2019-5-20 20:47 | 显示全部楼层
    经过二十多天的不断调试和改进,《家庭智能监控》项目总算如期完成,全部达到了项目计划的功能。下面是在这次DIY过程中我发出帖子的链接:

[经验分享] GD32E231 DIY大赛(1)——KEIL平台搭建完毕 http://bbs.eeworld.com.cn/forum. ... &tid=1074181&extra=
[经验分享] GD32E231 DIY大赛(2)——开箱测试 http://bbs.eeworld.com.cn/forum. ... &tid=1075699&extra=
[经验分享] GD32E231 DIY大赛(3)——驱动LCD5110 http://bbs.eeworld.com.cn/forum. ... &tid=1075772&extra=
[问题讨论] GD32E231 DIY大赛(4)——如何获得长短按键? http://bbs.eeworld.com.cn/forum. ... &tid=1076208&extra=
[经验分享] GD32E231 DIY大赛(5)——完成DS1302的驱动和设置及长短按键识别 http://bbs.eeworld.com.cn/forum. ... &tid=1076361&extra=
[经验分享] GD32E231 DIY大赛(6)——I2C驱动AT24C02完成 http://bbs.eeworld.com.cn/forum. ... &tid=1076422&extra=

[经验分享] GD32E231 DIY大赛(7)——人体红外传感模块及音乐IC驱动完成 http://bbs.eeworld.com.cn/forum. ... &tid=1076888&extra=
[经验分享] GD32E231 DIY大赛(8)——完成定时器2的驱动 http://bbs.eeworld.com.cn/forum. ... &tid=1077314&extra=
[经验分享] GD32E231 DIY大赛(9)——重写按键处理程序 http://bbs.eeworld.com.cn/forum. ... &tid=1077478&extra=


回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2019-5-20 21:12 | 显示全部楼层
    在本次DIY过程中也遇到过几个坑,其中之一就是长短按键获取的问题,由于231C开发板上仅有一个用户按键,而在我的项目中至少需要识别4种按键状态。开始我使用的是范例中的按键中断方式,由于没有配合定时器,在长短按键的识别上一直达不到要求,为此反复测试了3~4天都无法达到稳定识别,为此专门发帖《[问题讨论] GD32E231 DIY大赛(4)——如何获得长短按键?》。在众多热心坛友的指点下,又搜索、下载和测试了几个模块化的长短按键处理程序,但都没能成功应用。最后只好将按键改为轮询模式,仅仅用了几行代码就成功达到比较稳定的检测方式,满足了项目需要。尽管轮询方式浪费资源,但在我的项目中,用户使用按键时,MCU不需要做其他工作,因此也无所谓。项目后期我准备改用中断方式获得按键开始按下信息、定时器按100毫秒计数直到按键抬起的、在主循环中获得keys值,尝试了一下没有成功,鉴于项目进度时间有限,只好改回原来的轮询方式。等下一步有空时再按这个设想进行测试,按说应该可行的。


回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2019-5-20 21:23 | 显示全部楼层
    第二个大坑是报警音乐芯片的电子开关,这个看似简单的不能再简单的问题却也花费了我3~4天的时间。开始我没画线路图,直接用了一个3GD201加一个200欧姆的基极限流电阻构建了一个电子开关,测试却毫无作用,然后是不停地换其他型号的三极管,几番折腾都以失败而告终。最后只好认真地画出线路图,经过分析后得出:若在电源正极设置电子开关则必须用PNP管、若在负极设置电子开关则必须用NPN管。最后用了一个9015,通过测试后基极限流电阻选1K,顺利地达到目的。


回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2019-5-20 21:46 | 显示全部楼层
    第三个坑就是音乐IC的选择,我的项目需要在不同的时段发出警笛声或者是语音(音乐)声,例如在夜晚或无人在家时发出警笛声音、白天有人在家时则发出“欢迎光临”语音或者“叮咚”铃声,但在淘宝上反复搜索都没有找到我需要的语音IC,去定制成本太高不合算。我拆卸了一个类似的迎宾门铃,这个门铃可以通过拨动开关设置发出的声音,有警笛声、“欢迎光临”语音和12首音乐,本来正好可以满足需要,但我反复测量和查找线路,没有找到此芯片引脚如何设置,最后只好使用四声报警音乐芯片和12首名曲音乐芯片来替代。期间我还准备启用I2S,用自己录制的声音文件来发声,开始准备在E230开发板上测试(因为此板上配有耳机插座,测试方便),但不知为何,下载烧录时却报错,迫于时间有限,就没有继续测试。


回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2019-5-20 21:56 | 显示全部楼层
    最后一个大坑是电源问题,由于音乐IC耗电较大,板载USB下载接口的供电能力有限,在发声时电压下降严重,造成LCD屏幕显示暗淡,为此我采用另接5V电源到扩展板,扩展板上再用S1117转为3.3V。这个方案看似也无问题,可是在测试时,红外传感器却不停输出信号,以致于我以为红外传感器有问题,好的我买了两个,用另一个新的测试现象照旧,而在此之前又完全正常的,最后发现我的红外传感器电源取自开发板,将其改接到扩展板上故障才消失。


回复

使用道具 举报

374

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2019-5-21 07:46 | 显示全部楼层
讚。


回复

使用道具 举报

171

TA的帖子

0

TA的资源

宇宙尘埃

发表于 2019-5-21 09:14 | 显示全部楼层


回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 2019-5-21 19:43 | 显示全部楼层
谢谢楼上两位的鼓励!


回复

使用道具 举报

49

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-5-22 19:32 | 显示全部楼层
We are a team and we work as a team !


回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 7 天前 | 显示全部楼层

补充WORD文档:

家庭智能监控项目.docx (2.1 MB, 下载次数: 1)

点评

楼主做的很细致!  详情 回复 发表于 4 天前


回复

使用道具 举报

645

TA的帖子

93

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 4 天前 | 显示全部楼层
hujj 发表于 2019-6-17 19:00 补充WORD文档:

楼主做的很细致!

点评

谢谢夸奖!  详情 回复 发表于 3 天前
在路上……

EEworld 有你有我


回复

使用道具 举报

3578

TA的帖子

187

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 3 天前 | 显示全部楼层

家里用上没?

点评

    家里尚未使用。准备改进用单片机直接带动喇叭发声,去掉音乐芯片,这样选择播放内容就会更方便丰富些,现在正查找资料,测试成功后再画PCB板,做出成品试用。  详情 回复 发表于 3 天前


回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 3 天前 | 显示全部楼层

    家里尚未使用。准备改进用单片机直接带动喇叭发声,去掉音乐芯片,这样选择播放内容就会更方便丰富些,现在正查找资料,测试成功后再画PCB板,做出成品试用。



回复

使用道具 举报

531

TA的帖子

2

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

 楼主| 发表于 3 天前 | 显示全部楼层
lightxixi 发表于 2019-6-20 21:08 楼主做的很细致!

谢谢夸奖!



回复

使用道具 举报

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

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-6-24 21:12 , Processed in 0.404212 second(s), 18 queries , Gzip On, MemCache On.

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