前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【腾讯连连IoT开发大赛】打工人快乐窝-快速打造一个让打工人倍感安心的家

【腾讯连连IoT开发大赛】打工人快乐窝-快速打造一个让打工人倍感安心的家

原创
作者头像
每天都要晨练撸码哦
修改2021-01-11 09:14:15
2.3K0
修改2021-01-11 09:14:15
举报
文章被收录于专栏:腾讯云IoT

打工人快乐窝---腾讯云Explorer + 腾讯连连 + 边缘AI计算 快速打造一个让打工人倍感安心的家

打工人快乐窝系统组成
打工人快乐窝系统组成

起这个标题是因为,对于很多年轻人来说,买房困难,只能租房,但是租房面临着很多问题,其中很重要的就是财产生命安全,以及环境对健康的影响,这两年爆出过很多次类似闯入房间,甲醛超标等问题,给租户造成极大的心理和生理伤害;

另外一个就是舒适度,希望家居更加智能化。

所以,有了这个小制作:

  • 针对安全,我这里做了人脸识别门禁,防止陌生人进入,或者监测到陌生人通过微信通知主人。
  • 针对环境健康,做了 颗粒物监测(包括PM1.0 PM2.5 PM10)和 甲醛 监测。
  • 为了提高家居智能化,做了下班回家自动打开 电灯 电脑。

如果要非常详细地写清楚原理和过程,篇幅需要比较大,写得比较仓促, 如果有什么疑问,可以提问,我会在发布后补充说明~

功能介绍

本次制作中,使用腾讯云explorer + 腾讯连连小程序平台,结合硬件做了

  • 门禁安全:识别人脸,或者监测进入的人的人脸
  • 环境监测:主要是颗粒物比如PM2.5和甲醛监测
  • 远程控制灯:普通的远程控制开关灯
  • 远程开机棒:用来远程开关电脑,这里开机棒直接硬件控制主板开关,不是WOL(wake on LAN), 可以实现强制关机功能,比市面上接近200块的开机棒好用很多!
  • 音响和电脑同步开关机(音响断电上电):很多音响有独立的电源和开关,在我们关闭电脑后,还需要手动关闭音响的电源,不然它一直开着,这里用继电器做了一个与电脑同步开关的功能
  • 智能联动:得益于十分简单好用的腾讯连连, 可以简单高效地实现各个设备间的联动,比如开门后给微信发送消息,或者打开家里的灯,或者自动(控制开机棒)打开电脑,以及传感器值超标后推送警告消息到微信

具体的功能和使用介绍,请看视频:

(如果下面的视频无法观看,请点击 这里 观看, 或者到(腾讯视频-【腾讯连连IoT开发大赛】打工人快乐窝 观看

<iframe frameborder="0" src="https://v.qq.com/txp/iframe/player.html?vid=t3219uxw7e2" allowFullScreen="true"></iframe>

源码

源码开源在github , 欢迎 star

系统组成

系统由 腾讯云explorer + 腾讯连连小程序 + 硬件+软件组成,

组成.png
组成.png

其中,硬件设备部分使用手工搭建而成,效果图如下:

传感器设备组成
传感器设备组成

远程开机棒部分(已经放进机箱了,就是一个ESP32+三极管,就不放图了2333,放图也不是很清晰,放个原理图更好)

image.png
image.png

使用到的硬件

  • 其中硬件使用了带 AI 功能的边缘计算单元,使用了 K210 作为 AI 运算单元及主控,使用 MaixPy 编程, 有摄像头和屏幕,负责人脸识别和显示
    BiT
    BiT
  • 使用了 ESP8266 作为 K210 的联网设备(WiFi),使用AT固件
    ESP8266
    ESP8266
  • 远程开机棒的主控直接只使用了 ESP32,使用乐鑫提供的SDK编程
    ESP32
    ESP32
  • 颗粒物传感器 PMS7003
    微信截图_20210110113131.png
    微信截图_20210110113131.png
  • 甲醛传感器WS-H3
    微信截图_20210110113159.png
    微信截图_20210110113159.png

硬件电路设计及搭建

主要使用了几个开发板,包括 K210 ESP8266 ESP32, 传感器也是两个串口模块,而且网络全部使用了 WiFi,所以线路连接自然就非常简单了,我都没有画原理图,直接使用面包板半个小时快速搭建好了3个设备(传感器设备,门禁设备,远程开机棒设备),时间原因,就不画原理图了,如果大家有需要,可以提问,我后面补出来,这里我在图中标注一下:

  • 传感器设备:
系统引脚连接简图.png
系统引脚连接简图.png
  • 门禁设备:

门禁设备就是在传感器设备的基础上去掉了传感器,加入了摄像头,摄像头和LCD的原理图参考 MaixBit的电路图

  • 远程开机棒的线路连接:

为了让远程开机棒能完全控制电脑电源,我直接把单片机引脚接到了主板的电源控制脚上,而不是使用 WOL(wake on LAN)来开关机,这样开关机就稳定了,遇到问题还可以模拟执行长按关机按钮的操作强制关机

image.png
image.png

其中,我在实际使用时用了一个 NPN 三极管,如图不使用也是可以的,建议使用,就是 b极接单片机,e 和 c极 分别并联在电源开关的两端即可,给 B 极高电平就可以控制电源控制P+P- 导通

  • 音响与电脑同步开关机

这个功能的原理就是利用主板的电源指示灯作为控制信号,然后接一个继电器来控制音响的电源开断,电路图如下:

image.png
image.png

效果图:

image.png
image.png

腾讯云 Explorer 产品创建

  • 注册腾讯云账号,登录控制台
  • 搜索物联网开发平台,点击进入,首次会要求开通产品,是免费的,直接开通
  • 然后阅读官方使用说明,创建产品: https://cloud.tencent.com/document/product/1081

这里给几个截图,具体请看官方文档,这里就不过多阐述,官方文档写得挺好了

  • 创建产品
image.png
image.png
image.png
image.png
image.png
image.png
  • 创建数据点
    • 传感器设备数据点:
      image.png
      image.png
    • 开机棒数据点
      image.png
      image.png
    • 传感器设备数据点
      image.png
      image.png
  • 创建设备

支持手动创建设备和批量注册,开始使用可以先使用手动注册,而且乐鑫的SDK目前(2020.1.10)还没支持自动注册设备功能,AT固件已经支持了

image.png
image.png

设备端程序

所有程序均开源在github , 欢迎 star, 可以拉去代码下来直接按照教程添加好自己的设备后,修改 key 然后运行

设备端程序情况如下:

  • 传感器设备和门禁设备的主控是 K210, 使用了 MaixPy 进行开发,开发环境以及固件烧录等请看MaixPy 文档 , 需要先了解这个芯片和 MaixPy,有疑问可以留言,然后使用我开源的代码,修改 product key, device name, device key 即可
  • ESP8266 的固件使用了腾讯云官方的 AT 固件,不是乐鑫提供的AT 固件,烧录方法就是通用的 8266 烧录方法,在乐鑫官网以及网上都有大量资料,请搜索,有疑问可以留言
  • ESP32 使用了乐鑫提供的SDK , 按照说明编译过hello world,然后使用我开源的代码,修改 product key, device name, device key 即可。 这个远程开机棒其实我之前就做过, 看这里: https://neucrack.com/p/190 , 但是没有用腾讯云和小程序,服务端是自己写的, MQTT 服务也是自己搭的,用户端用用web服务做的用户接口,通过浏览器开关设备,换成小程序后更加方便了,而且使用explorer也让程序更简单了!!
  • 音响同步于电脑开关机不需要代码,全部由硬件自动控制完成,详情见这里: https://neucrack.com/p/185

要看懂代码,你需要以下基础:

  • 有 C 语言基础
  • 有 python 或者 Micropython 语法基础
  • 开发过至少一款单片机程序

要能把代码跑起来,你需要:

  • 需要硬件 K210 ESP8266 ESP32,以及上述传感器等,去某宝买就 ok
  • 学会使用腾讯云explorer,按照前面的方法在腾讯云explorer后台创建好产品和设备,这个可能会耗费20分钟,如果第一次接触 IOT 云产品,可能会多花一点时间
  • 学会 MaixPy 固件烧录和开发,按照它的官方文档学习一步一步学习就好,会 python 可能需要1个小时来学习使用即可
  • 学会 ESP8266 AT 固件烧录,百度教程即可,有很多非常详细的教程,可能在硬件选择上会出现疑问,搜索就好了,大致15分钟
  • 学会 ESP32 IDF 开发,并且跑通上述 乐鑫提供的腾讯云 SDK,按照 IDF 的 README 进行开发即可,如果熟悉同类产品开发,10分钟就能跑起来
  • 学会使用腾讯连连小程序, 这个就很简单了,随便摸摸就懂了,大致需要15分钟去探索功能

对于这些基础知识,都有详尽的资料,如果遇到什么疑问,可以留言

小程序使用

在我的演示视频中也有一部分的使用方法,可以参考

腾讯连连小程序绑定设备

微信搜索腾讯连连小程序,进入,调试的时候可以看后台的设备二维码,点击小程序加号扫码绑定设备

等调试配网或者做好了再使用配网添加设备

image.png
image.png

自动智能功能

小程序除了有基本的显示数据和控制设备的功能,以及配网的功能, 还有一个很特别的功能,就是自动智能

自动智能可以将各个设备联合起来,实现很多有趣的功能, 比如 门开了, 自动把另外一个设备电灯打开,或者通过控制开机棒把电脑打开, 设置的方法:

  • 添加智能
    image.png
    image.png
image.png
image.png
image.png
image.png
  • 设置条件
image.png
image.png

比如选择门禁检测门打开时

image.png
image.png
image.png
image.png
  • 添加任务

选择发送通知,或者设备控制

image.png
image.png

发送通知即门打开后通过服务号给你的微信发送通知,就像这样:

image.png
image.png

设备控制则可以选择被控制的设备, 比如打开另外一个设备的灯:

image.png
image.png
  • 设置生效时间
image.png
image.png
  • 然后下一步设置其它显示的logo什么的,就完成了自动化配置, 可以在智能栏找到设置的自动化操作,并且可以随时选择开启或者关闭该智能操作, 并且可以在右上角看到执行日志
image.png
image.png

设备端程序流程

源码流程图如下,几个设备大同小异

设备端流程图.png
设备端流程图.png

设备端源码解读

传感器设备和门禁设备的源文件如下:

image.png
image.png
  • at.py: 8266 AT 测试代码
  • door.py: 门禁主程序
  • explorer.py: 对 expolorer 相关操作的封装
  • face.py: 人脸识别的封装
  • pms7003.py: 颗粒物传感器相关操作的封装
  • sensor_voice.py: 传感器设备(里面包含了对灯的控制)相关主逻辑,文件名有 voice 是因为最开始准备加语音识别和语音控制的功能,时间原因没有加上,后面看有时间可以加上
  • ws_h3.py: 甲醛传感器相关操作的封装

具体的代码细节,这里就不讲了,封装得挺好的,会 python 就能看懂了

远程开机棒设备代码

因为只需要一个引脚控制和一个引脚获取开关机状态,所以程序只用了一个文件app_main.c就快速写好了,没有进一步封装,有兴趣的可以来重构代码封装一下,提 PR 就好了

image.png
image.png

结语

腾讯云explorer 和 腾讯连连让 AIOT 开发变得更加迅速,使用简答的代码和开发流程就可以实现非常使用和强大的功能,如果你还没有尝试过,还等什么!!!!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 打工人快乐窝---腾讯云Explorer + 腾讯连连 + 边缘AI计算 快速打造一个让打工人倍感安心的家
      • 功能介绍
        • 源码
          • 系统组成
            • 使用到的硬件
          • 硬件电路设计及搭建
            • 腾讯云 Explorer 产品创建
              • 设备端程序
                • 小程序使用
                  • 腾讯连连小程序绑定设备
                  • 自动智能功能
                • 设备端程序流程
                  • 设备端源码解读
                    • 传感器设备和门禁设备的源文件如下:
                    • 远程开机棒设备代码
                  • 结语
                  相关产品与服务
                  云开发 CloudBase
                  云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档