一、实验目的
1. 了解家居灯光控制系统的设计原理。
2. 了解家居灯光控制系统的底层开发框架。
3. 掌握家居灯光控制系统的 Android 应用与 Web 应用开发设计。
二、实验内容
1. 系统设计分析
1.2 功能分析
家居灯光控制系统功能设计分两个大模块:设备控制、系统设置。设备控制功能模块:分为 LED 灯开关状态显示、开关操作、设备在线状态显示;RGB 灯状态显示、色彩灯开关操作、设备在线状态显示;LED 灯定时开关设置;模式切换功能:安防模式可以定时开关指定的灯具,模拟有人在家效果,离家模式具有一键关闭全部设备功能;
系统设置功能模块:服务器 ID、IDKey、服务器地址参数设置与连接;传感器 MAC 地址获取与设置;系统软件版本查询与显示。
1.3 系统架构
家居灯光控制系统采用物联网项目架构进行设计,由感知层、网络层、平台层和应用层组成,如图所示。
2. 系统底层开发框架
2.1 开发框架
智云平台提供硬件 HAL 层开发框架,支持 ZigBee、BLE、Wi-Fi、LoRa、NB-IoT、LTE、Cat1 等无线协议。其中应用接口在 sensor.c 文件中实现,包括:传感器初始化、控制设备的操作、传感器数据的采集、报警信息的实时响应等。
3. 移动端应用设计
3.1 智云接口
针 对 Android 移动应用程序开发 , 智云平台提供应用接口库 : libWsnDroid-20230206.jar
(app\libs\libWsnDroid-20230206.jar),用户只需要在编写 Android 应用程序时,先导入该 jar 包,然后在代码中调用相应的方法即可。
4. Web 端应用设计
4.1 智云接口
针对 Web 应用开发,智云平台提供 JavaScript 接口库(js\WSN 文件夹),用户直接调用相应的接口即可完成简单 Web 应用的开发。
三、实验步骤
1. 实验部署
本实验基于 xLab 实验平台来构建一套家居灯光控制系统,需要准备以下设备(可通过硬件物元仿真平台软件创建虚拟的硬件,也可以使用 xLab 实验平台真实的硬件):
1)控制类节点(Sensor-B):控制类传感器包括风扇、步进电机、蜂鸣器、LED、RGB、继电器。
2. 原型搭建
2.1 创建项目
可参考实验 7 的原型仿真步骤来创建项目。
2.2 运行项目
可参考实验 7 的原型仿真步骤来运行项目。
根据本实验的要求开启 Sensor-B,大约 15s 后传感器数据开始上传并更新。
传感器打开成功:
3. 应用体验
3.1 Android 应用程序运行
1)Android Studio 模拟器
用 Android Studio 软件打开本实验目录下的工程“LightControl-as”,然后在模拟器上运行。
打开主界面显示如下:
这时系统设备的右上角状态显示为“离线”,需要通过“更多信息”界面设置服务器 ID 与 IDkey 连接智云服务器。这里使用智云 ID 与 IDkey 进行连接,需同智云服务配置工具中使用配置一致。
传感器节点 MAC 设置,手动输入对应无线节点的 MAC 信息,并保存。
连接服务器成功后切换到系统主界面可看到设备状态更新为“在线”,可以在界面选择切换模式:
a. 安防模式:设备在线后可以通过 LED、RGB 灯的按钮实时控制设备开关,还可以使用定时功能自动控制 LED 灯。
定时开关控制:在开启的时间自动打开灯、关闭的时间自动关闭灯,在定时时间范围内不能通过点击按钮控制 LED 灯的开关(时间以虚拟机的时间为准,并且虚拟机的时间应设置为 24 小时制)。
b. 离家模式:可以关闭全部设备,LED 灯定时开关(如果从离家模式切换到安放模式,LED 灯会进行自动打开)。
2)Android 手机
将本实验目录下的“LightControl.apk”下载到手机,之后在文件管理中找到需要安装的 apk 文件。然后点击进去,进入 apk 文件界面之后点击“继续安装”继续安装即可。
打开主界面显示如下:
3.2 Web 应用程序运行
家居灯光控制系统的 Web 端应用无需安装,打开本实验目录下的工程“LightControl-web”,将其中的 index.html 文件在 Chrome 浏览器上运行显示。
a. 居家模式:可以通过 LED、RGB 灯的按钮实时控制设备开关,也可以通过定时开关指定的灯具。
定时开关控制:在开启的时间自动打开灯、关闭的时间自动关闭灯,在定时时间范围内不能通过点击按钮控制 LED 灯的开关。