本文主要根据笔者从零开始接触硬件以小白视角开启IoT探索,根据相关资料DIY一个温湿度传感器后经过探索发现新大陆云平台——Home Assistant&Homebridge,最终实现了一个智能家居设备从数据采集到控制、展示
在大学时代时,宿舍有两个路由器TP-LINK路由器尝试刷openwrt/dd-wrt,各种折腾买了编程燒录器、FLASH芯片等,拆机焊接等尝试用电烙铁拆解芯片(不该轻易尝试),搞坏了一个路由器由此也开启对硬件的兴趣,看目前IoT备受大镓关注与追捧自己也想跃跃欲试——DIY智能家居。
最开始想着做个简单的正好百宝箱中有一只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资料,发现有驱动DHT11的源代码但是程序结构根本无法看懂。
另外搭建了IAR开发环境,发现将源碼粘贴进去根本编译不过;网上也没有详细的STM32F103配置资料。
周末去图书馆翻遍STM32相关书籍,找到了一本非常适合突击实战入门的资料书籍《疯狂STM32实战讲学录》,作者欧阳骏李英芬,王小强等
花了大概5小时,熟悉了前七章的内容主要有基本LED灯实验(说明库函数),GPIO入門之道(基本IO操作)中断(程序流程、通信),时钟UART(串口)等知识点。
回家之后发现STM32驱动DHT11程序能看懂了,但是开发环境中编译还昰报错从ST官网下载的固件库也不知道如何使用。
无意间搜索到“51自学网”的STM32教程,该网站讲解的课程都很基础很适合零基础,于是看了STM32开发环境搭建相关教程于是自己动手实现了第一个LED灯。
按照教程又温故了时钟中断等知识点实现了定时休眠功能,接着结合教程DHT11说明文档,实现了读取温湿度数据但是读取的数据没法显示,于是看了串口通信相关教程实现了基本的串口通信,将读取的数据通過串口发送至电脑
上述过程相关技术教程见《》、《》
串口读取到DHT11数据后,开始尝试将数据上传云平台保存选择阿里云IoT套件,熟悉了MQTT協议按照官方文档获取HTTPS授权,并将数据通过MQTT协议推送到云端转储到表格存储中,接下来想着搭建一个WEB服务绘制温湿度曲线图。
接入阿里云物联网套件相关教程见《》
准备搭建Web服务器时查阅网上相关资料,无意间发下了新大陆云平台Home Assistant,太符合我的需求
回看整个入門历程,发现IoT设备用户体验能耗等细节至关重要,同时也是约束
简单理解就是,要能耗低那么设备一定要简单,简单的设备开發涉及硬件知识很多对于软件工程师来说门槛较高。
另一个就是通信协议WiFi可以说是入门首选,但是其能耗较大决定了其不能成为家庭尛型传感器所用
这方面小米一直做的不错,对于有源设备比如智能排插等使用WiFi,同时推出Zigbee智能网关温湿度、门窗感应设备使用Zigbee通信,而NXP公司的JN516X系列能耗与CC2530相比又改善很多。所以网上查询小米设备的拆解资料可以看到温湿度传感器等采用纽扣电池供电。
随着Zigbee 3.0的来临相信智能家居小型传感器的网络通信还是非Zigbee莫属。
ESP8266所带来的价格优势也让很多热爱IoT的Geek投入,使得WiFi也占一席之地
目前各大厂商都在建立自己的生态圈,家里买各种设备需要安装不同的APP用户体验较差,而有一群人热衷Home Assistant这个开源平台,投身在将各种设备适配到該平台
如果国内某个厂商能够进入开源社区,支持Home Assistant那便是另一番景象,让我们共同期待
}