01 引言
在现代社会,安全始终是人们最关心的议题之一。随着科技的进步,传统的安防措施已经无法满足我们对安全保障的需求,智慧安防报警项目应运而生,它通过集成先进的传感器技术、数据分析和人工智能算法,为个人、家庭和企业提供了一种全新的安全解决方案。从实时监控到自动报警,再到紧急响应机制,智慧安防报警系统正以高效、智能的特性,成为保护我们生活和财产安全的有力保障。
02 项目介绍
《智慧安防报警》项目基于Hi3861开发板,集成了NFC通信、MQTT消息发布/订阅以及OLED显示技术,实现了一个多功能的智能家居安防系统。当家庭中发生非正常紧急情况时,通过一系列传感器的感应,及时将测量数据反馈给单片机,判断事故后立即进行声光报警。该系统通过华为云物联网平台与微信小程序联动,实现了远程监控和控制,有效解决了家庭安全防护中的传统难题,提升了家庭安全防护的智能化水平。
本项目实现内容:
- 设备端
1) NFC 配网功能;
2) 一键安防报警功能;
3) 发布和订阅 MQTT 的消息;
4) 保存一键安防报警功能信息到 ESP32 单片机外部存储中,掉电再次开机后继续安防模式。
- 微信小程序端
1) 可以将配网信息数据写入 NFC 标签中;
2) 可以手动控制蜂鸣器的开关;
3) 可以设置一键安防报警功能;
4) 在界面中显示当前蜂鸣器和监测芯片的状态
03 项目涉及技术点
①使用NFC进行WiFi配网
②华为云平台MQTT服务的申请和使用
③JSON数据的封装和解析
④微信小程序的搭建和利用相关API进行设备的监控
⑤I2C总线的使用
⑥AP3216C三合一传感器的使用,包括光强、红外、接近数据的获取
⑦蜂鸣器的使用
⑧SSD1306驱动OLED显示屏的方法
04 项目实现
项目框架
本项目使用的是华为云物联网平台作为中间服务器,在设备端(Hi3861),首先进行连接附近的 WiFi热点,与华为云物联网平台建立 MQTT 连接,并且使用 JSON 格式数据进行交互数据;在应用端(微信小程序),使用 HTTP 协议与华为云物联网平台进行连接,使用华为云物联网平台相关的 API 进行交互数据。
在设备端,在连接不上附近 WiFi 热点的时候,会在 OLED 显示屏上显示,连接 WiFi 热点失败的提示信息,此时我们可以使用微信小程序上的 NFC 烧写界面,将 WiFi 名称和密码进行烧写开发板上的 NFC 标签,然后再重新开发板进行重新连接新的 WiFi 热点。
设备端在空闲的时候,监听订阅的主题中是否接收到云平台转发下来的数据,如果接收到了,进行 JSON 的数据解析,然后控制相关设备。
- 整体框架
- 设备端框架
- 应用端框架
硬件部分
1主控部分
本项目使用的是 Hi-12F 模组作为主控,此模组是基于 Hi3861V100 芯片设计的,该芯片是一款高度集成的 2.4GHz 芯片,集成了 IEEE 802.11b/g/n 基带和 RF 电路,包括功率放大器 PA、低噪声放大器LNA、RF balun、天线开关以及电源管理模块等。
支持 20MHz 标准带宽和 5MHz/10MHz 窄带宽,提供最大 72.2Mbit/s 物理层速率。并且集成了高性能32 位微处理器,提供 SPI、UART、I2C、I2S、PWM、GPIO 以及多路 ADC 模拟输入等丰富的外设接口,同时支持 SDIO2.0 接口,时钟最高支持 50MHz。
主控部分原理图如下图所示:
2NFC通信部分
NFC 通信使用的是恩智浦公司生产的 NT3H1101 芯片,此芯片支持 I2C 通信,支持可配置的现场检测引脚,内部配备有EEPROM 存储芯片,允许在 RF 和 I2C 之间快速传出数据。
3OLED显示屏部分
采用 SSD1306 芯片进行驱动 0.96 寸OLED 显示屏,本显示屏使用黄+蓝屏幕进行显示。点阵数量为 128*64。
4传感器部分
在本实验中,使用 I2C 总线与AP3216C 三合一传感器进行通信,读取当前的光照强度、红外、接近的数据。下面给出了硬件连接图:
软件部分
1注册华为云账号并配置
【详细的注册及配置过程可以扫下文二维码添加小雯老师领取完整文档】
2设备端编译
- 导入程序
打开本工程文件目录src\vendor\hqyj\fs_hi3861\demo\smartSecurityDefense
- 修改文件
修改【\src\vendor\hgyj\fs_hi3861\common\bsp\include\hal_bsp_ ssd1306_bmps.h】文件,将“#define smartSecurityDefense 0”改为“#define smartSecurityDefense 1”。如下图所示:
修改【\src\vendor\hqyj\fs_hi3861\demo\BUILD.gn】文件,注释掉其余工程,保留这个工程。
- 编译程序
1.在 Vscode的左侧按钮中,打开 DevEco Device Tool开发工具,在开发工具中首先点击“Clean”,再点击“build”进行编译源码。
2.编译完成之后,会在终端中提示“SUCCESS”字样,说明编译完成。
3.编译完成之后,点击 upload 上传代码到开发板(需提前在工程配置中检査 upload _port 是否正确)。
4.烧写程序,详细烧写步骤可扫下文二维码添加小雯老师领取完整文档。
3应用端编译
1.双击打开 app.wxss 工程文件,即可打开微信开发者工具。
2.首先点击左上角的图标,进行扫码登录自己的微信。
3.登录成功之后,填写自己的 AppID
4.点击上面的编译按钮,进行编译。
5.然后点击真机调试-自动真机调试,点击编译并自动调试。
运行程序
按下开发板中复位按钮,让设备重启,会出现两种情况。
1.连接 WiFi 失败
第一种是连接不上附近的WiFi 热点,如下图所示:
这是因为在 NFC 标签内部存储的 WiFi 信息与当前环境中的 WiFi 热点不匹配导致的,按照下面的步骤进行操作:
注意:微信小程序不支持 ios 系统的 NFC 配置功能!!下方会有方法解决。
①使用具有 NFC功能的手机扫描微信开发者工具的预览二维码。
②扫描完成之后,在微信小程序中,点击“NFC配网”按钮。
③在弹出的“NFC配网设置”界面中,填写正确的 WiFi名称和 WiFi密码。
④填写完成之后,点击“开始配置”,会提示“请靠近设备”,此时将手机靠近开发板上的 NFC线圈区域。
⑤当提示“写入数据成功”时,说明烧写 NFC 线圈成功。
⑥然后再次按下开发板中的复位按钮。
⑦还有一种是 ios 系统下微信小程序不能使用 NFC配置的功能时,需要按照下面步骤进行操作:
1)在 ios 系统的手机商店中下载“NFC Tools”NFC 调试工具。
2)然后点击“写”功能,
3) 点击“添加记录”。
4)添加“Wi-Fi 网络”信息
5)在“配置WiFi 网络”中,选择身份验证为“WPA/WPA2-Personal”,并输入 SSID 和密码。
6)然后点击“写/87 字节”按钮,进行烧写。
7) 此时会弹出“贴近NFC 标签”,请靠近开发板上 NFC 线圈部分。
8) 烧写完成之后,会在显示如下图片,说烧写NFC 芯片数据成功。
2.连接 WiFi 成功
第二种是直接连接附近WiFi 成功,会在 OLED 显示屏界面中会显示当前设备连接附近WiFi 热点的提示信息和连接华为云平台服务器的信息,直到在界面中显示如下图所示,说明连接华为云成功。
连接成功之后,我们需要打开微信小程序,在小程序中界面中,我们可以点击开关按钮,进行下发指令让设备中蜂鸣器开或者关,还可以设置一键安防模式。
除了指导如何在开发板上实现项目外,项目说明文档还涵盖了注册华为云账号并登录以及设备端编译烧写等详细步骤,完整的项目文档目录如下图。
后台私信小雯老师(备注:智慧安防报警),免费领取《智慧安防报警》项目完整文档、项目源码。
05 硬件平台
《智慧安防报警》是一个物联网实战项目,硬件平台是华清远见Hi3861鸿蒙开发板。
开发板简介
FS-Hi3861鸿蒙开发板,是华清远见研发的一款用于鸿蒙设备开发及鸿蒙物联网开发学习的开发板。主控为华为海思Hi3861V100芯片,内置WiFi功能,支持OpenHarmony系统。
开发板板载资源丰富,包括传感器、执行器、NFC、显示屏等,还有丰富的拓展模块,还包括电机驱动板超声波测距模块、智能小车、指纹识别模块、语音控制模块、农业安防模块、雷达控制模块、移动定位模块等。
开发板还配套了丰富的开发教程、视频课程及综合项目案例,非常适合物联网相关教学、学生毕设、个人学习、项目练手,还可用于全国大学生嵌入式芯片与系统设计竞赛,及全国大学生物联网设计竟赛华为赛道。
基于Hi3861鸿蒙开发板,我们提供了12大物联网综合应用项目:智能照明灯、智能安防报警、智慧农业、智能温度计、智能测距仪、倒车雷达、智能小车、智能指纹锁、智能垃圾桶、语音控制智能小车、智慧农业与安防控制、车辆感知与定位,案例中涉及了单片机接口开发、传感器数据采集、鸿蒙系统开发、NFC配网、WiFi网络开发、MQTT协议、华为云接入、微信小程序开发等知识点,非常适合高校教学、学生毕设、创新竟赛及个人开发学习实战。
配套学习路线推荐
关于单片机相关入门及项目课程的说明:
1. 从用户个人能力角度上看,部分鸿蒙开发学习用户,单片机方面比较薄弱,我们提供电机驱动板和超声波模组的配套文档、源码视频课程,可以进行单片机入门、电机控制基础、总线通讯-协议学习,也可以做单片机项目练手,便于单片机方向的拓展学习;
2. 从项目协作式开发角度看,比如竞赛或高校教学,一个项目组可以更好的分工,有的负责单片机控制(传感器数据采集与电机控制等),有的负责鸿RTOS以及网络开发,有的负责微信小程序开发,项目综合性较强,可以锻炼团队协作及多技术方向学习。
对于初学者,在找工作前,也可以多做一些物联网项目案例练手,在实战中去理解并应用技术。有精力的话,最好可以基于我们的开发板去拓展一些功能更丰富的项目,做更多技术上的创新拓展,去参加一些竞赛(比如全国大学生嵌入式芯片与系统设计竞赛、全国大学生物联网设计竟赛华为赛道),DIY一些更接近实际产品的项目,这样的经历,也会为你的简历及面试加分不少。