智能家居——IoT零基础入门篇-阿里云开发者社区

开发者社区> rainmote> 正文

智能家居——IoT零基础入门篇

简介:
+关注继续查看

原文地址:http://www.cnblogs.com/rainmote/p/7617454.html

概要

本文主要根据笔者从零开始接触硬件,以小白视角开启IoT探索,根据相关资料DIY一个温湿度传感器。后经过探索发现新大陆——Home Assistant&Homebridge,最终实现了一个智能家居设备从数据采集到控制、展示。

整体结构图

  • 智能设备:温湿度传感器
  • 主控芯片:STM32F103C8T6
  • 通信协议:Zigbee
  • 智能网关:树莓派
  • 数据存储、展示、设备控制:HomeAssistant + Home Kit

效果图

传感器效果图

Home Assistant效果图

Home Kit效果图

启程

在大学时代时,宿舍有两个路由器TP-LINK路由器,尝试刷openwrt/dd-wrt,各种折腾,买了编程烧录器、FLASH芯片等,拆机焊接等,尝试用电烙铁拆解芯片(不该轻易尝试),搞坏了一个路由器。由此也开启对硬件的兴趣,看目前IoT备受大家关注与追捧,自己也想跃跃欲试——DIY智能家居。

2017年七月份,开始了解各种物联网设备、协议,纠结WiFi还是Zigbee?了解ESP8266,CC2530,JN5168等芯片。

最开始想着做个简单的,正好百宝箱中有一只DHT11,于是先做个温湿度设备。
温湿度传感器应该是功耗小的,如果用WiFi就必须使用电源,如果每个房间一个,墙上基本插座肯定不够,即不美观也不现实。
所以聚焦Zigbee, 于是在网上买了一套开发学习板,200+,买回来后才发现没时间搞,除了用串口测试玩了一下,一直在被搁置了。

花了近一周的时间在网上搜索Zigbee相关资料及产品,由于目前大多数Zigbee产品通信协议各厂商都各自实现,且不是完全开源,所以学习成本较大,Zigbee 3.0可能改善这一局面,不过目前网上资料甚少。为了实现上述DIY智能家居的目标,我选择暂时放下这个大骨头,选择一款支持透传的Zigbee板子DL-20, 串口转Zigbee透传。

无线传输问题解决了,下来就是如何驱动DHT11获取数据,购买Zigbee设备时,看资料这个模块应该是MCU,就是经常听到的单片机,正好家里百宝箱里有STM8和STM32(大学买的,一直被搁置,没时间搞,也不知道该怎么玩),于是网上查阅资料,发现STM8资料比STM32要少很多,看了STM32F103C8T6核心板也就10块钱左右,于是选择STM32,一方面价格能接受,配置也比STM8高些,容易入门上手。

突破STM32

刚开始在网上找STM32资料,发现有驱动DHT11的源代码,但是程序结构根本无法看懂。
另外,搭建了IAR开发环境,发现将源码粘贴进去,根本编译不过;网上也没有详细的STM32F103配置资料。

周末,去图书馆翻遍STM32相关书籍,找到了一本非常适合突击,实战入门的资料书籍《疯狂STM32实战讲学录》,作者欧阳骏,李英芬,王小强等。
花了大概5小时,熟悉了前七章的内容,主要有基本LED灯实验(说明库函数),GPIO入门之道(基本IO操作),中断(程序流程、通信),时钟,UART(串口)等知识点。

回家之后,发现STM32驱动DHT11程序能看懂了,但是开发环境中编译还是报错,从ST官网下载的固件库也不知道如何使用。

无意间,搜索到“51自学网”的STM32教程,该网站讲解的课程都很基础,很适合零基础,于是看了STM32开发环境搭建相关教程,于是自己动手实现了第一个LED灯。

按照教程又温故了时钟中断等知识点,实现了定时休眠功能,接着结合教程,DHT11说明文档,实现了读取温湿度数据。但是读取的数据没法显示,于是看了串口通信相关教程,实现了基本的串口通信,将读取的数据通过串口发送至电脑。

上述过程相关技术教程见《STM32F103X 开发环境搭建》、《STM32获取DHT11温度传感器数据

尝试IoT云平台

串口读取到DHT11数据后,开始尝试将数据上传云平台保存,选择阿里云IoT套件,熟悉了MQTT协议,按照官方文档获取HTTPS授权,并将数据通过MQTT协议推送到云端,转储到表格存储中,接下来想着搭建一个WEB服务,绘制温湿度曲线图。
接入阿里云物联网套件相关教程见《智能家居——阿里云物联网套件体验

发现新大陆--Home Assistant

准备搭建Web服务器时,查阅网上相关资料,无意间发下了新大陆,Home Assistant,太符合我的需求。
官网:https://home-assistant.io/
安装教程可参考:https://zhuanlan.zhihu.com/p/28011522
国内论坛:https://bbs.hassbian.com/forum.php

智能家居控制展示图

(图片引用自Home Assistant官方文档

总结

回看整个入门历程,发现IoT设备用户体验,能耗等细节至关重要,同时也是约束。

能耗

简单理解就是,要能耗低,那么设备一定要简单,简单的设备开发涉及硬件知识很多,对于软件工程师来说门槛较高。
另一个就是通信协议,WiFi可以说是入门首选,但是其能耗较大决定了其不能成为家庭小型传感器所用。
这方面小米一直做的不错,对于有源设备,比如智能排插等使用WiFi,同时推出Zigbee智能网关,温湿度、门窗感应设备使用Zigbee通信,而NXP公司的JN516X系列能耗与CC2530相比,又改善很多。所以网上查询小米设备的拆解资料可以看到,温湿度传感器等采用纽扣电池供电。
随着Zigbee 3.0的来临,相信智能家居小型传感器的网络通信还是非Zigbee莫属。
ESP8266所带来的价格优势,也让很多热爱IoT的Geek投入,使得WiFi也占一席之地。

用户体验

目前各大厂商都在建立自己的生态圈,家里买各种设备需要安装不同的APP,用户体验较差,而有一群人,热衷Home Assistant这个开源平台,投身在将各种设备适配到该平台。
如果国内某个厂商能够进入开源社区,支持Home Assistant,那便是另一番景象,让我们共同期待。


知识共享许可协议
作者:rainmote
博客:http://www.cnblogs.com/rainmote
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
学习准备(下):计算机基础 | Python从入门到精通:入门篇之二
本章节继续讲授关于计算机基础的课程,包括进制、Python编辑器的安装以及编码方式等。
4664 0
Android基础混淆
#---------------------------------实体类--------------------------------- -keep class com.
821 0
阿里云智能--基础产品技术月刊 2019年8月
近日,全球信息技术研究机构Gartner发布了2019年云安全技术成熟度曲线报告(Gartner,Hype Cycle for Cloud Security,2019,Jay Heiser,Steve Riley,23 July 2019),首次将机密计算(confidential computing)列入其中,阿里云因在机密计算领域的诸多实践被列为典型厂商,且是亚太唯一云服务商。
4107 0
IoT Studio + LoRa打造“又猛又持久”的智能厕所
为了增加厕所使用效率,减少被味道“熏陶”的等待时间,同时也为了增加厕所的清洁效率,我们决定做一个非侵入式的智能厕所改造方案。它可以通过红外热释电检测每个坑位有没有人,在web/app上实时显示,方便如厕人员查询。
3629 0
智能投顾中的基础核心,华尔街老司机手把手教你搭建智能资产配置模型
在不同的模型当中有不同的实现方式。下一节课要讲的BL模型有其他的实现方式,而在今天讲的马克维兹模型当中,通过引入一个用户的风险偏好的变量,这个变量是一个非负数的实数。
1410 0
ios基础控件之开关按钮(UISwitch)
UISwitch控件是iOS开发的基础控件,是非常简单的一个控件,因为它的方法比较少。UISwitch继承于UIControl基类,因此可以当成活动控件使用。 注意:开关状态通过它的on属性进行读取,该属性是一个BOOL属性 创建: UISwitch* mySwitch = [[ UISwitch alloc]initWithFrame:CGRectMake(0、150.0f,100.0f,0.0f,0.0f)]; 可能你会疑问为什么它的大小都设置为0?没错,它的大小你设置是无效的,系统会为你分配尺寸。
721 0
IoT如何成为关键基础设施
7月9日,2020 世界人工智能大会云端峰会在上海举办。阿里云智能IoT事业部产品总经理何云飞在会上带来IoT:数字化时代的关键基础设施的主题演讲。
11 0
《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
“未来主体是传统行业利用互联网技术,以云端用人工智能的方式处理大数据”,在腾讯“云+未来”技术峰会上,马化腾这样形容未来。15年前,电脑还只是少数人的专属,那时的网吧还很火,还没人知道“网咖”是什么。而现在人手一部智能手机,物联网更是让日常生活中的普通家电也能在互联网占据一席之地。
1503 0
Android基础学习
1、specify :指定 2、Nested:嵌套 3、启动模拟器时出现错误信息“Please ensure that adb is correctly located at:XXXXX”的解决方法 现象:使用正确的源代码,在启动模拟器时出现如下错误信息 ...
767 0
+关注
1
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载