简单物联网应用——基于老人居家声音监测系统(全!含完整源码详细注释测试结果设计过程视频详细教程)
Posted wlwwwhl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单物联网应用——基于老人居家声音监测系统(全!含完整源码详细注释测试结果设计过程视频详细教程)相关的知识,希望对你有一定的参考价值。
简单物联网应用设计与实现——基于老人居家声音监测系统
概述
设计内容:
采用标准的物联网三层架构, 感知层为可以检测声音数据并且实现无线发送的传感器节点; 网络层主要使用无线 WiFi; 应用层中, 搭建服务器, 实时存储数据, 实现基于 IP 的可视化页面访问, 显示异常数据的报警, 查询报警历史记录接收用户在页面上设置的时间阈值和音量阈值,以便于针对不同用户的兼容性。
要求:
1. 基于已有模块,完成声音传感器与开发的硬件连接;
2. 编写 MCU 代码,完成传感器数据的读取、分析与显示、 完成基于WiFi 的数据通信,能够实现数据的无线发送和数据库存储;
3. 编写用户页面代码,完成移动端和 PC 端的相应数据的显示、定位、 报警、查询。
本文内容包括:
一、 架构
二、 实现效果
三、源码参考
四、视频教程
五、总结
一、架构
老人居家声音感知监测系统的设计主要是由感知节点、 云端服务器、 应用软件组成。感
知节点主要由声音传感器和 ESP32 开发板组成, 实现数据的采集和处理,并通过 WiFi 建立
MQTT 通信将数据处理的数据传输到 MQTT 服务器, 云端服务器主要将 MQTT 服务器上的
数据存储到 mysql 数据库中, 通过 Apache HTTP Server 服务器实现基于 IP 的数据可视化
页面访问。系统总架构图如图 1-1 所示。
老人居家声音感知监测系统的设计与实现是感知节点、 云端服务器加基于 IP 的用户页
面组成的监测系统,该系统可以实时监测老人在家的移动声音数据,并根据对监测的声音数
据处理情况进行报警信息提示, 查询历史报警记录。 系统框架图如图 3-1 所示
老人居家声音感知监测系统整体主要包括三个模块, 分别是感知层数据采集模块、 云端
服务器模块和用户界面。
(1)感知层数据采集模块主要实现居家声音的数据采集并且讲数据发送至云端;
(2)云端服务器主要完成感知层数据的接收、 处理, MySQL 的数据存储, 提供了基于 IP
的用户界面访问功能;
(3)用户界面主要实现了用户可以使用 IP 访问可视化页面, 并且可视化页面能够实时显
示数据, 有特殊情况会自动报警, 查询历史报警记录, 如图 3-2 所示。
二、实现效果
(1)传感器节点连接如下图, 采用 5V 电压电源供电, 传感器接 ESP32 的 ADC1 的
CHANNL_6 接口, 接线方式如表 5-1 所示。
声音传感器 | ESP32 |
---|---|
VIN | 3V3 |
GND | GND |
OUT | D34 |
关于本次设计的测试, 使用了两个节点, 分别安放在厨房和卫生间, 传感器节点如下图 所示:
(2)ESP32 串口读取打印数据, 观察到节点采集到声音数据, 并且成功发送至 MQTT,
如下图 所示
(3)通过 MQTT.fx 订阅到节点发送数据的端口和主题, 收到来自于节点的 json 数据,如下图 所示。
(4)接收程序终端打印程序流程, 观察到数据接收正常, 并且成功保存至数据库, 如下图所示。
(5)使用 navicat for MySQL 软件打开上述使用到的数据库, 观察到表中存在刚发送的数
据, 包含厨房和卫生间所采集到的数据, 如下图所示。
(6)PC 端打开可视化页面, 可以修改时间阈值和音量阈值, 默认的时间阈值和音量阈值
为 200, 此时设置一个时间阈值为 30, 音量阈值为 300, 观察到数据显示在页面上, 若数据
异常将会报警(相应位置名称红色提醒) 如下图所示。
(7)移动端打开可视化页面, 使用默认为 200 的时间阈值和音量阈值, 观察到数据显示
在页面上, 若数据异常将会报警(相应位置名称红色提醒) , 如下图 所示。
(8)设置时间阈值为 30、 音量阈值为 300, 此时会提示时间阈值修改为 30, 音量阈值修
改为 300, 当观察到数据显示在页面上, 若时间阈值达到 30 或音量阈值达到 300 则成功报
警(相应位置名称红色提醒)
(9)输入开始为 1 和结束时间为 15, 点击查询历史报警记录按钮, 可以查询到相应时间
段的报警历史记录, 包括报警次数和报警事件, 可以给用户进行查询的操作。
三、源码参考
本设计涉及到的内容过多,我写了其它几篇叠在一起,按照顺序查看即可:
1.服务器搭建——虚拟机服务器、MySQL、MQTT broker(EMQX)、无线局域网、虚拟机——主机网络映射
2.ESP32(arduino)和声音传感器数据采集并实现连接WiFi进行MQTT通信
3.python实现 MQTT订阅、接收以及MySQL数据库存储
4.前端页面设计
5.ajax请求实现前端页面查询数据库历史记录(AJAX(HTML+JS)、Flask_WebServer(python))
6.第4条和第5条一样的,哈哈哈
四、视频教程
五、总结
本设计使用声音传感器采集数据,使用 ESP32 开发板连接声音传感器作为一个传感器
节点, ESP32 采集传感器发出的模拟信号,并连接 WiFi 建立 MQTT 通信将数据上传到 MQTT
服务器,服务器收到节点发送的 MQTT 的数据,将数据保存在 MySQL 数据库中,使用
Apache HTTP Server 服务器实现基于 IP 的数据可视化页面访问。 可以通过 PC 或者移动端访25
问页面,页面实时显示居家环境中各个节点的声音数据,当出现异常时,会有相应的报警提
示。
经过测试,能判断出居家老人的行为,比如在家某个位置有活动,传感器能够实时采集
数据,并且页面能达到多节点数据实时显示的效果,当出现异常行为时,相应位置能够报警。
未来, 本设计需要提高居家行为的感知范围,需要精准识别出老人居家行为的类别,比
如做饭、洗浴等的行为,并且通过大数据生成日常行为报表,以便于对老人的生活质量进行
分析和预测危险,为居家老人的生活提供切实有效的辅助。
可联系博主本人:anhwql@qq.com
以上是关于简单物联网应用——基于老人居家声音监测系统(全!含完整源码详细注释测试结果设计过程视频详细教程)的主要内容,如果未能解决你的问题,请参考以下文章
案例分享——基于物联网的电能质量监测系统(各种基本电力参数电网谐波远程通信监测终端上位机)