本系统利用esp8266WIFI模块、机智云物联网开发平台及单片机控制系统设计出一种基于手机APP和WIFI网络的智能灯光调节系统。本系统能够通过环境光传感器采集室内光强度,用户使用APP实时调节灯光亮度。
1 系统总体设计
该系统采用机智云物联网开发平台提供的技术方案,整个控制系统分为手机控制端、云端以及线下控制端三大部分组成。手机控制端通过云端发送控制命令和接收单片机反馈的数据;云端采用机智云的平台作为数据交换的中心,负责中转来自手机控制端和线下控制端的数据;线下控制端包含STM32F103C8T6最小系统电路、环境光检测电路、WIFI模块以及OLED显示电路。
主控芯片作为整个线下控制端的核心,负责协调各个模块的正常工作,并对采集的数据进行处理分析,最后打包发送出去,同时还要执行来自云端的控制指令。
OLED屏幕显示受控灯光状态以及通过网络实时获取到的时间、天气和温度信息。WIFI无线通信模块作为云端与控制端进行数据交换的桥梁,是整个系统得以通信的核心。系统的整体结构框图如图1所示。
2 硬件电路设计
2.1 主控部分
主控部分包含STM32F103C8T6最小系统电路、环境光检测电路、WIFI模块以及OLED显示电路等。系统利用TEMT6000传感器对环境光进行检测、WIFI模块与手机APP通信、加以OLED显示,最终实现受控灯光的自动调节和APP手动调节的功能。
系统结构框图
2.2 环境光传感器部分
TEMT6000是一个三极管类型的光敏传感器,其光照强度和基极的电流成正比。可以连接该传感器的基极到模拟电压输入,通过检测电压值就可以判断当前的光照强度。TEMT6000对可见光照度的反应特性与人眼的特性类似,可以模拟人对环境光线的强度的判断,从而用来检测不同居家环境下的光强。
当光照强度较低时,系统自动提高灯光亮度,当光照强度较高时,系统自动减弱灯光亮度。TEMT6000照度传感器采用的电流输出方式可以方便的将光信号转化为电信号,不需要其他的电路来调节,可以直接与单片机连接[1]。TEMT6000光传感器照度与如图2所示。
TEMT6000光传感器照度与输出电流的关系图
3 软件设计
3.1 机智云物联网开发平台
机智云物联网平台满足了个人和企业开发者的一站式智能硬件开发和云端服务平台。机智云为开发者提供了极为简便的自助工具、完善的SDK和丰富的API服务功能,可以根据开发者自定义产品功能,自动生成可响应的控制页面。
开发者在机智云AIoT平台开发智能硬件时,可以很方便地使用自动生成的App对硬件设备进行调试和验证。
此APP有完整的用户注册、登陆和注销流程,并且可以完成机智云智能硬件的配置入网、设备搜索、设备绑定以及登录、设备控制、远程控制、状态更新、本地远程切换等基本设备操作。
3.2 GAgent通讯模组
GAgent是一款可以提供上层应用到产品设备的双向数据通讯的固件,开发者使用GAgent固件后,只需要把产品开发的重心放在产品的功能开发上,数据的通讯功能完全由GAgent固件承担,极大的降低了开发者开发的难度。GAgent主要的功能是转发设备采集得到的数据,它是设备端、云端、手机控制端的通信桥梁。GAgent有很强的移植性,可将GAgent固件移植到WiFi模组、GPRS模组以及PC端等市面上常见的通讯模组上。
该系统采用的是ESP8266模组,需要在机智云的官网上下载ESP8266版本通用的GAgent固件包,然后通过乐鑫公司提供的配套的Flash烧录工具将下载好的GAgent固件包写入ESP8266模块中,断电重启后设备自动从Flash中启动。GAgent固件的功能框图如图3所示。
GAgent固件的功能框图
3.3 机智云代码移植
到此在机智云开发平台上的工作基本完成,根据项目的需要选择生成对应开发平台的代码包,代码包实现了机智云通信协议的解析与封包、产品设备数据与通信数据的转换逻辑,并封装成了简单的API。当设备收到云端的数据后,程序会自动将数据转换成对应的事件并通知到应用层,开发者只需要在对应的事件处理逻辑中添加传感器的控制函数,便可完成产品的开发[2]。从开发平台上下载已经创建好的代码包移植到我们已经创建好的项目工程里面即可。
3.4 机智云设备接入SDK
机智云产品设备访问SDK是将手机和机智云智能硬件之间的通信进程,以及电话和云端之间的通信进程胶囊化,其中包括网络访问、搜索、连接、控制、心形节点、状态报告和警告。开发人员使用SDK可以迅速完成APP的开发,只需注意APP的UI和UE设计,就可以忽略比较复杂的协议和错误处理。根据开发者项目的要求,APP应该整合Gizwits SDK,以完成复杂的逻辑处理。
Gizwits提供了iOS基本款SDK,Android基本款SDK,APICloud交叉平台SDK的三种SDK包。机智云设备接入SDK的流程如图4所示。
3.5 系统软件设计
智能灯光调节系统通过对STM32F103C8T6单片机的控制实现,程序中初始化各个模块(串口初始化、按键初始化、传感器初始化、协议初始化、定时器初始化...)后通过按键扫描来选择手机控制还是线下控制。
软件设计框图
线下控制:
线下控制可使用按键来调节灯光亮度,设置适合自己当前环境的光线强度。还可以根据环境光传感器获取周围环境光强,实现灯光亮度的自动调节。
手机控制:
手机控制可通过机智云物联网平台跟设备连接,将WIFI模块连接能上网的路由器,并且调整一些配置与机智云平台连接,当手机APP和WIFI模块绑定后即可实现远程控制设备,从而控制系统实现不同的功能。
最后在云端获取时间、天气等信息并在OLED显示屏上显示。
本文设计了一款基于机智云的智能灯光控制系统。该设计采用STM32F103C8T6单片机进行开发,通过WIFI模块与手机App保持信号传输。本系统利用传感器采集技术、无线通信技术,借助机智云物联网开发平台,设计出一套基于手机App和WIFI网络的智能灯光调节系统。该系统能够对室内灯光进行实时调节,实现了对室内灯光的智能化管理。
设备接入SDK的流程