前言:家电状态显示及控制系统分为中央控制系统和安防子系统中央控制系统采用STM32F103C8T6+汉枫LPB100为主要控制,使用OLED作为家电状态显示的载体。
1 硬件设计
整个系统是典型的物联网三角形架构:设备端、云端、移动端。在手机APP上可以设置温度、湿度的上下限,超出上下限范围时,家电可以自动控制。同时可以显示烟雾浓度和光照强度,也可以设置相应的上下限,当温度过高、湿度过高、烟雾浓度过高时候,电机可以转动。烟雾和光照强度没有使用ADC+DMA的工作方式,采用的是ADC采集,并进行5次平均值显示。温度过低(低于设置的阈值),打开加热器;湿度过低时,打开加湿器;光照过低时,打开灯。
在使用机智云平台时,先做了一个点灯的小系统,使用STM32最小系统,通过串口2(PA2、PA3),进行连接ESP8266无线WIFI模块,进行远程控制,现在使用的外设是8位的LED灯,可以通过手机App进行远程控制流水灯的花样。稍后写入家电状态显示及控制系统的流程图。
2 软件设计
机智云是一个面向智能硬件时代开发平台,还有些高级工具未体验,如D3引擎、消息推送、产品互联、ECE雾计算等。机智云提供一个现成产品调试APP(含设备发现、设备绑定、推送、设备分享等基础功能),在应用商店搜索“机智云”即可下载,直接用就好了。
我这里就只是借助APP代码自动生成服务,DIY了一款APP,一键生成代码包,在源码的基础上进行二次开发,修改成更美观的界面、加入更丰富的功能等。你要是很懒,直接使用原生的通用APP也可以~~~机友们,有了MCU代码自动生成工具和APP代码自动生成工具,2天就可以搞定一个智能硬件Demo啦!!!
关于UI设计开发,可在网上观看相关视频,搜索“物联网平台机智云Android开源框架入门之旅”。这个视频对于新手是很友好的,详细的讲了如何使用机智云的工具开发APP。下面看看我设计的GUI吧~
家电控制第一版UI布局设置,电机正反转的五角星会变色哦~
使用光敏传感器,使用STM32内部的ADC进行采集Aout端的电压值,因为STM32内部的ADC为12位,所以量化为0-4096,通过公式的换算,变成0-100来显示。
家电控制UI第二版:
开始做房子~~~
3 结语
整个系统的编程主要就是STM32的编程了,在机智云开发者中心生成了STM32工程,代码框架机智云已经帮我们写好了,我的主要任务就是把传感器等驱动代码加进去,然后写自己的应用逻辑;WIFI模块不用自己编,在机智云的下载中心下载GAgent固件,并烧录到WIFI模块就行了,GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁,这样一来就是串口透传了,用着很爽。G 友们,还等什么,拿起你的板子,买个9块8的ESP8266就可以玩转IoT应用开发了~