基于Intel IoT的智能安防—RootLink项目开发总结
说明
智能安防项目是大三上半学期,OurEDA实验室组织的“智能硬件”相关的项目。我作为后端负责人,与嵌入式负责人徐文超、IOS组负责人党博合作开发。项目传感器采用Intel Edision Board + ZigBee传感网络,IoT设计基于开源的Intel Edision IoT开发平台(https://github.com/intel/intel-iot-services-orchestration-layer.git),后端采用nodejs + koa2 + nginx技术栈,IOS开发使用Xcode + Apple基础套件。
项目概述
安防设备具有巨大的市场需求和广阔的商业前景,但存在性能落后、使用繁琐等缺点。本团队基于 Intel Edison 开发平台和 Intel IoT Services Orchestration Layer 的强大的处理能力和服务能力,设计并完成了一套全新的物联网无线安防设备。
本设备的主要创新之处为设计并完成了智能的“触发与联动”机制,构成了完整的“感知”-“处理”-“云服务”-“移动客户端”的系统结构。设备中各类分布式传感器所触发的报警事件,同时被本地 Edison 系统和云服务自动处理,无需人工干预,即可自动触发一系列联动的本地警报事件和移动客户端警报事件。
本设备通过发挥 Intel Edison 平台的性能、完善 Intel IoT Services Orchestration Layer,并引入了 ZigBee 无线传感器网络和分布式模块化设计,能够完成安防领域中人体感知、火灾监测、应急警报等多种功能,还具有无线连接和设备扩展能力,并实现了云服务的移动客户端报警功能。
主要技术介绍
(1) Intel Edison 高性能物联网网关及操作系统:Intel Edison Board 是 Intel 针对可穿戴设备和物联网发布的一块微型计算机,包括了 Atom 500MHz 双核心处理器,整合 Quark100MHz 微控制器,支持 802.11n 和蓝牙 4.0。平台运行定制的 Linux 系统。
(2) Intel IoT Services Orchestration Layer 技术框架:团队 使用 Intel IoT ServicesOrchestration Layer 的 IDE 平台进行开发,通过 IDE 优秀的 Workflow 框架和数据流思想,减轻了嵌入式开发者与后台程序开发者的交流以及开发负担。IDE 用React 组件化开发以及前后端分离,方便开发者对IDE进行修改。Express是一种保持最低程度规模的灵活Node.js Web 应用程序框架,为 Web 和移动应用程序提供一组强大的功能。
(3) Zigbee 无线传感器网络、Arduino 与传感器技术:ZigBee 是基于 IEEE802.15.4 标准的低功耗局域网协议。根据国际标准规定,ZigBee 技术是一种短距离、低功耗的无线通信技术,具有低复杂度、自组织、低功耗等优点。Arduino 具有使用类似 Java、C语言的Processing/Wiring 开发环境。
(4) 云技术与 Socket 等:云技术目前能够提供成熟的稳定的互联网服务,Socket.IO 实现实时双向的基于事件的沟通,适用于各种平台,浏览器或设备。
概要设计
本设备在设计、研发、应用测试全过程本着自下向上的技术路线完成:
(1) Arduino 作为硬件模块的中心,处理来自每个模块上的传感器的数据,并通过 ZigBee模块发送至控制与决策中心(Intel Edison)。
(2) 使用 Intel IoT Services Orchestration Layer 在控制与决策中心(Intel Edison)上建立基于 ZigBee 的物联网网关,在此过程中修正 Intel IoT Services Orchestration Layer 的相关模块,并添加部分有关 ZigBee 的 Layer 模块。
(3) 使用 Intel Edison IDE 自主开发云服务模块:包括下行智能逻辑模块与上行数据模块。下行智能逻辑模块模块负责监听云服务器发来的各项指令,修改各项智能功能;上行数据模块则负责向云端传输各类感知数据和触发事件,统一使用 json 格式进行传输。
(4) 云服务器使用 socket.io 标准库建立 TCP/IP 连接,通过与手机客户端建立 Socket 连接,实现数据的即时交换、数据解析以及警报事件推送。各层平台统一使用 json 作为数据交换的形式,通过对 sockets 池进行管理,建立并维护稳定的数据链路。
硬件基础层:
(1) 本地控制与决策中心(物联网网关):Intel Edison 开发平台是设备的整个设备的智能核心,以安防设备控制中心和网关的形式呈现给用户。在设备中,通过使用其强大的处理能力和互联能力,完成所有感知和触发信息的汇集、处理,完成本地“触发-联动”机制,同时完成信息的云端传送。
(2) Arduino 组成的硬件中间件,用于在传感器和 ZigBee 网络间构建连接,消除传感器差异带来的数据格式问题。同时,完成对于复杂传感器的驱动与控制问题。这部分硬件隐藏于用户端传感器内部。ZigBee 网络是目前主流的自组织网络之一,具备自动组网、自动加入、自动路由等功能,其无线通讯工作在 ISM 2.4GHz,全球通用。在本设备中利用带有功率增强的 ZigBee 网络完成触发事件和感知数据的传输功能。这部分硬件隐藏于用户端传感器内部。
智能服务层:
(1) Intel IoT Services Orchestration Layer 是智能服务层的关键组成,一方面是开发中简化硬件开发难度进行实时调试,另一方面负责 Intel Edison 与云服务间的通信。
(2) 云服务作为智能服务层的中间层,与控制与决策中心(Intel Edison)建立 Socket 连接,负责接收、分析、存储其上传的数据,同时与手机客户端的连接,建立通信基础。
(3) 手机客户端基于各类移动平台,实现与云服务通信,移动客户端软件设计遵循 MVC架构,通过 Socket 连接可以实时获取到各类信息状态,并接收云端警报推送。
工程实现
Bug Fixed
- 嵌入式设备-云服务-手机进行三端联调,Bug很多,解决了所有Bug后,通信稳定即时,手机客户端可以实时接收警报信息;
- PCB打样后,发现无线信号的功率较弱,Atmega328 晶振起振不佳,检测到继电器部分电路的载流能力较弱;
- 改进之前的不足,加入 x2401 芯片扩大信号的功率,晶振附近取消使用过孔,继电器附近的走线去除阻焊层并加大导线宽度,重新制作 PCB,完成 PCB 部分的制作。