搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Monodyee
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Linux下gdb调试_gdb dmp
2
海天瑞声开源多模态数据集,解决多模态模型准确性问题_开源多模态大数据模型
3
交叉编译mqtt,openssl,以arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu为交叉编译工具链
4
智能证件照制作——基于人脸检测与自动人像分割轻松制作个人证件照(C++实现)_opencv c++ 图片人像抠图
5
从零开始搭建微服务:异常处理_invalid_grant
6
【前端VUE基础(九)】路由传参:params参数和query参数_vue request params
7
MIPS 指令集(共31条)_mips指令表
8
Windows图像编程概要
9
基于SpringBoot+Vue的前后端分离的房屋租赁系统2_vue房屋租赁系统
10
nacos迁移及踩坑历程
当前位置:
article
> 正文
STM32开发板+机智云AIoT+家庭监测控制系统_软硬件交互家庭数据监测系统程序
作者:Monodyee | 2024-03-14 10:22:57
赞
踩
软硬件交互家庭数据监测系统程序
摘要:基于
esp8266
与机智云A
iot开发平台
的家庭监测和控制系统是基于大数据和物联网技术的家庭设备控制系统。利用机智云
物联网平台
和ESP8266WiFi模块、STM32核心板、电机驱动、继电器、温湿度传感器模块等,实现与手机终端的数据交互和数据监测。
通过移动手机终端APP的开关按键,可以控制系统电机的正转与反转;通过APP的开关按键,模拟窗户的开合,并控制舵机的正转和反转,模拟门的开关;通过APP的开关按键控制系统LED的亮灭,模拟家中对灯的控制;
通过APP的开关控制按键模拟家庭风扇的控制。系统采集MQ135烟雾传感器的数值,经单片机进行ADC转换后,通过OLED显示ADC采集转换后的数值。单片机将通过DHT11采集的数值显示在OLED上,还可通过APP和OLED显示模块查看单片机系统外设的运行状态。
引言
火灾,是人类重大的灾难之一。每一次的火情都牵动无数人的心,而火情最容易带来人员的伤亡和财产的损失。据统计,全世界每天发生大大小小的火灾约一万起,而我国在消防体系十分健全的情况下,每年火灾发生的数量达到十五万起,家庭起火导致的火灾约五万起,占三分之一。每年因火灾而失去生命的人约800人,每年因火灾造成的经济损失超10亿元。家庭防火刻不容缓,特别是因缺乏安全意识玩火、家庭线路老化、天然气泄漏等需要引起注意。如今,很多重要的公共场合已在关键地方安装了烟雾报警器,能在第一时间发现可能存在的火情威胁。但家庭是我们极度容易忽视的地方[1]。
随着物联网技术的发展,智能家居作为物联网最典型的应用之一,越来越多的设备接入物联网中,给人们的生活带来了很多便利[2]。本系统利用物联网技术完成了简易的智能家庭监测和控制系统。利用开源的机智云物联网平台实现远程数据交互,通过智能云平台对家庭传感器实现远程控制,对家庭中潜在的火源威胁进行监控。采用烟雾传感器、温湿度传感器、人体光学传感器等,对嵌入式系统在中间层进行深度开发,实现基本的功能原理,完成原理图、PCB的设计,以及嵌入式系统软件实现课题的目标功能[3-7]。
1
总体设计方案
本系统基于ARMM3系列控制器,考虑外设中需要较大的驱动能力和较大的内存存储空间才能实现系统运算,故结合本设计的需求,使用WiFi模块作为单片机与上位机系统间的通信模块。单片机采集外部的温湿度信息、空气中烟雾的浓度信息等,通过WiFi模块连接云平台,借助云平台与手机终端APP将信息传递给用户。用户通过手机终端APP按键,向云平台传输字符信号,云平台通过WiFi模块向单片机系统传递控制指令,单片机接收到指令后,执行相应的操作。系统框架如图1所示[2-4]。
图1系统框架
2
硬件设计
本系统的硬件模块主要包括:嵌入式微控制器STM32F103C8模块、GPS/北斗模块、OV7670摄像头模块和GPRS模块。其中,STM32F103C8为主控制器,负责信息的处理与控制;GPS/北斗模块和OV7670摄像头模块负责采集环境图片信息和当前的位置信息;GPRS模块负责嵌入组建网络并与Internet服务器通信[3]。
2.1
系统电源设计
本系统采用12V的DC作为供电电源,用线性稳压芯片和DC调压芯片作为嵌入式系统为各外设供电。由于本系统中有较多的应用外设,因此需要多个稳压芯片稳定系统的电压,以确保外设和CPU不受电压影响,正常工作。有些负载比较大的外设,如电机和舵机等,在使用时需要较大电流,如果共用同一个电源系统,在外设驱动时,电压和电流波动较大,会影响其他外设的正常使用,而嵌入式系统也可能会因为电压和电流的不稳定造成复位现象,极大影响系统的稳定运行。因此在选择系统电源时,选择多电源分开供电的方案,如图2所示。
图2系统电源分配方案
2.2
嵌入式系统硬件
嵌入式开发系统采用STM32F103RCT6核心板模块。模块资源包括STM32RCT6集成的32位SOC、SWD程序调试接口、复位按键电路、通用I/O口、时钟振荡电路、FLASH存储电路、OLED接口、按键电路以及LED电路。
2.3ESP8266硬件设计
ESP8266作为一款性能强大的无线射频模块,内部定义了丰富的管脚。ESP8266通过串口与单片机相连,根据数据手册可知,单片机的USART1在PA9和PA10引脚上,其中,ESP8266的RX与单片机的TX相连,ESP8266的TX与单片机的RX相连。ESP826作为本系统的主要通信载体,连接了MCU和云服务平台,通过串口1的串口协议与MCU实现数据交互,通过与局域网的连接,把串口协议传输的信息上传到云服务平台。同样,用户操作上位机平台,经云平台和ESP8266将控制信号通过串口协议传输给MCU,MCU在接收到串口数据后,执行相应的指令。
2.4L298N电机驱动电路
L298N模块是一款集成的驱动电路,其具有驱动能力强、发热量低、抗干扰能力强等特性。L298N可输出电流为2A,最大可输出4A电流,最高可驱动50V工作电压,可用于中小型直流电机的控制。L298N使用单片机的TTL逻辑电平控制电机的正反转,软件上只需改变输入端逻辑电平的脉冲宽度即可控制电机的转速。通过控制输入端逻辑电平的输入端正转或反转,就能相应控制电机的正反转。L298N的正常工作电压为5V。L298N内部集成了L298N驱动和8个续流二极管,构成H桥驱动电路。
2.5SG90舵机模块
SG90使用5V直流电压,控制信号接单片机的PA11。PA11为定时器的通道4,通过PWM信号控制舵机的正反转,通过PWM输出的脉冲宽度来控制舵机的转速和角度。
2.6MQ135烟雾传感器
MQ135烟雾传感器为5V供电,通过PA1的ADC引脚采集MQ135信号。MQ135烟雾传感器可以输出数字信号和模拟信号,本系统采集模拟信号。
2.7OLED显示电路
本系统使用OLED显示电路显示本系统的外设状态,如烟雾传感器ADC采集的值,温湿度的值,以及电机、舵机、LED、风扇的状态。OLED显示电路采用3.3V电压供电,使用I2C协议通信。
3
系统软件设计
本系统的软件设计模块主要包含ESP8266固件烧录、云平台接入、云平台创建节点、STM32固件开发四部分。借助ESP8266与SOC的云平台开发需要完成以下4步:
(1)ESP8266模块烧录
GAgent
开发固件;
(2)机智云开发中心创建产品以及定义数据点;
(3)下载机智云开发平台生成的通信协议并对协议进行移植;
(4)使用机智云APP对设备进行远程测试。
初始化各模块的函数后,在软件的主函数中写入系统的总体服务函数,系统在OLED显示屏上显示温湿度、烟雾、门、窗以及人体红外等传感器状态。当按键按下时,OLED显示为安防状态,然后系统扫描MQ135烟雾传感器及温湿度传感器,当传感器的数值大于阈值时,系统报警。当上位机执行控制指令时,触发串口中断,接收来自上位机的字符指令,把相应的标志置位后,执行控制指令。控制主流程如图3所示。
3.1STM32
固件开发编程
本系统基于STM32固件库开发,在软件开发之前,需要对硬件系统的固件库进行初始化(GPIO初始化、串口初始化、I2C协议初始化、定时器初始化[5-6]),方便以后使用。
3.2WiFi
传输函数
ESP8266模块作为本系统的传输媒介,使用串口通信,初始化串口代码后,需要撰写WiFi模块的接收代码和发送代码。上位机APP按钮按下后,通过WiFi模块给单片机传输一个字符指令,单片机程序中设定接收相应的字符后,将系统中标志位的布尔值赋值,系统在运行中不断扫描标志位布尔值的状态,执行相应的指令。
3.3OLED
显示函数
初始化完成后,通过OLED显示函数向OLED显示屏不断传送信息,通过sprintf()函数把字符和模块采集的数据格式化并送入oled_buffer字符数组,通过判断状态标志位的布尔值,不断更新字符数组内存放的值,然后通过OLED_ShowStr()函数向OLED传送信息。OLED_ShowStr()包含4个入口参数,分别为OLED的x坐标,y坐标,字符串和字符大小。
图3控制主流程
3.4PWM
输出函数
本系统中的门和窗使用舵机和电机控制,舵机和电机均依靠单片机的脉冲宽度调制来控制转速和转动角度,电机和舵机分别使用系统的定时器3和定时器1。以电机控制为例,初始化结束后,系统WINDOW_TIM3_PWM_INIT(799,0)定时器设定一个时钟周期为800ms,在上位机执行开窗或者关窗指令时,设定25%的脉冲宽度,延时1s后停止。电机的控制引脚分别悬挂在定时器3的通道3和通道4上,通过控制不同通道上的脉冲宽度可以控制电机的正转和反转,以实现开窗和关窗的目的。
3.5ESP8266
固件烧录
ESP8266接入机智云平台需要将机智云开发的固件烧录至WiFi模块的SOC中,在机智云官网上有已经集成的固件包,以及烧录的SDK软件。固件烧录时,需要将ESP8266的串口和USB-TTL的串口下载工具对应连接,在下载固件时,需注意把ESP8266的GPIO0连接到地线上,使模块进入写入模式。烧录完成后将GPIO0连接到VCC中,设置为工作模式[8]。
3.6
接入机智云平台
本系统需要使用云服务平台对系统进行实时监控,如果自主搭建云服务器的难度和成本太大,可以考虑接入机智云AIoT开发平台。接入机智云流程如图4所示。
图4接入机智云流程
注册开发者账号后,用户账号可以通过用户的相关产品相互关联。创建产品,根据用户产品的类型创建对应的产品分类以及产品名称。机智云平台每个账号可以接入10个开发产品。创建产品之后,在产品中创建数据点。数据点即为系统的功能及参数。在云平台创建数据节点,本系统中,移动终端和SOC模块以控制和显示为主,数据类型分为可写和只读两种。可写类型:用户控制家庭的设备数据类型,如,LED、门、窗、空调等;只读类型:温湿度模块、烟雾传感器、人体红外传感器通过SOC上传的数据。创建节点后生成可移植的平台,将其移植到SOC后,设备能与云端实时通信,进行数据交互[9]。
4
实验验证
搭建系统后,对系统的稳定性进行测试,对系统的功能进行必要性测试。系统上电自动复位时,各模块正常运行,LED、电机、舵机、风扇均处于停止状态,OLED显示屏循环显示模块状态,红外检测状态为无人状态,温湿度检测正常显示,烟雾传感器数据正常显示。
5
结语
本设计以STM32F103RCT6为核心,通过串口协议与本系统的主要通信模块ESP8266相连,单片机可通过串口协议完成对模块数据和ESP8266的WiFi模块通信,ESP8266在烧录机智云提供的固件后可连接到局域网,与机智云云平台的服务进行实时数据交互[10]。
云平台可以在线调试系统的外设虚拟状态,在云平台的在线虚拟设备状态下,系统外设控制状态为布尔值,可以通过布尔值控制设备的状态标志位。系统在服务器的虚拟状态位如图5所示。
系统通过ESP8266与云平台上传系统状态标志以及温湿度和烟雾传感器采集的数据。系统向上位机上传数据示意图如图6所示。
图5云平台控制界面
图6系统向上位机上传数据
当温湿度和烟雾的值大于STM32F103RCT6单片机设定的阈值时,单片机发出警报,并通过串口将预警信号发送给上位机APP。人体光学传感器HCSR-501采集人员闯入信息。可以在外出时通过按键将单片机设定为安防模式,单片机通过不断扫描人体光学传感器HCSR-501的电平判断是否有人闯入。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Monodyee/article/detail/233333?site
推荐阅读
article
物联网毕设 --
智能
拐杖
(
GPS
+
WIFI
+云平台+
STM32
)_基于
stm32
智能
拐杖
课设...
智能
拐杖
项目结合了硬件端和APP端的多项功能,旨在为老年人提供全方位的安全保障。硬件端包括心率传感器、倾斜度传感器、超声...
赞
踩
article
STM32
学习
(
四)
中断
系统
...
众所周知,轮询是 CPU 通过不断地查询某个外部设备的状态,如果外部设备准备好,就可以向其发送数据或者读取数据,这种方式...
赞
踩
article
STM32------分析
GPIO
寄存器
...
编程的目的是为了操作硬件,硬件分布在地址上,所以转变为编程操作地址,因为地址是唯一的。编程的目的就操作地址间接操作硬件地...
赞
踩
article
Ubuntu
搭建
STM32
开发环境_
ubuntu
开发
stm32
...
配环境。_
ubuntu
开发
stm32
ubuntu
开发
stm32
...
赞
踩
article
Ubuntu20.04
配置
CLion
+
STM32
CubeMX
的
STM32
开发环境_
ubuntu
安装 ...
linux配置Clion的
STM32
开发环境_
ubuntu
安装
clion
stm32
ubuntu
安装
clion
st...
赞
踩
article
ubuntu
搭建
STM32
开发
环境
_
ubuntu
23.10
stm32
开发
环境
配置...
所需软件GNU Arm Embedded Toolchaingccmakeopenocd
STM32
CubeMxVSCod...
赞
踩
article
STM32
+
DWM1000
开发uwb测距系列教程之一:官方
例程
简介_
dw1000
基础教程
...
文章目录1
dw1000
_api_rev2p14.zip软件包简介2 打开工程2.1 直接打开2.2 使用导入方式打开工...
赞
踩
article
STM32
位带
操作 Bit-
band
operation
详解_
arm
的bit
band
...
1.
STM32
位带
区和
位带
别名区参考书籍《The Defi nitive Guide to the ARM Cortex...
赞
踩
article
STM32
的 “位带”
操作
Bit-
banding
--学习笔记_
bit
-
banding
instru...
利用2个32MB大小的“虚拟”内存空间实现对2个1MB大小的物理内存空间进行“位”的置位和清除
操作
。这样就可以有效地对设...
赞
踩
article
STM32
中
BIT
_BAND(
位段
/位带)和
别名
区
使用入门_
别名
存储
区
和
位段
存储
区
...
一、 什么是
位段
和
别名
区
是这样的,记得MCS51吗? MCS51就是有位操作,以一位(
BIT
)为数据对象的操作,MCS...
赞
踩
article
STM32
(4)-
位带
操作
_
stm32
位带
操作
...
用人话来说,就是
STM32
如果要具体对比如PA的1号引脚进行比特位级别的
操作
时,是无法直接实现的,那为了单独地对这个比特...
赞
踩
article
STM32
:
寄存器
操作
-----------
看了就行,
寄存器
通常不用
_
stm32
读
寄存器
...
前言
STM32
F103
_
stm32
读
寄存器
stm32
读
寄存器
前...
赞
踩
article
STM32
之
Bit
-
Banding
_
keil
stm32
有bit...
用了不少芯片,就只有51有位操作,这个特性很喜欢,赋值简单、效率又高且节省内存,不必为了一个bool去分配一个uint8...
赞
踩
article
Keil
开发
STM32
单片机
项目
的三种方式_
keil
stm32
...
Keil
工具开发
STM32
单片机
项目
构建工程的几种方式,以及他们各自的特点。_
keil
stm32
keil
stm32
...
赞
踩
article
FreeRtos
操作系统
STM32
CubeMx
系列学习笔记_
stm32cubemx
freer...
本系列学习笔记是对“韦东山
FreeRtos
学习系列教程”和B站up主“愿意做我的战士吗”的
FreeRtos
操作系统教程的...
赞
踩
article
STM32
cubemx
配置USART
DMA
传输_
stm32
usart
dma...
本篇文章来讲解
DMA
的概念,并使用
DMA
来进行串口的数据收发。下面我们来看到
DMA
的两种模式,一种是循环模式,一种是内存...
赞
踩
article
STM32
CUBEMX
系列——
flash
的使用_
cubemx
flash
...
STM32
CUBEMX
系列——
flash
的使用文章目录
STM32
CUBEMX
系列——
flash
的使用1、
flash
地...
赞
踩
article
STM32
Cubemx
配置
SPI
编程(使用
Flash
模块)_cubemx
配置
spi
...
本篇文章来为大家讲解一下
Flash
模块的使用方法,
Flash
模块这里选择W25Q64模块。W25Q64 是一款由 Win...
赞
踩
article
STM32
CubeMX
(三)——
SPI
及
IIC
_
cubemax
使用配置iic引脚...
SPI
及
IIC
通信方式串行通信通信接口通信总线通信协议
SPI
信号线配置方法
STM32
CubeMX
配置
SPI
IIC
通信方式...
赞
踩
article
STM32
SPI
介绍及
CubeMX
配置_
stm32cubemx
spi...
STM32
SPI
介绍及如何在
CubeMX
中配置
SPI
_
stm32cubemx
spi
stm32cubemx
spi ...
赞
踩
相关标签
物联网
stm32
嵌入式硬件
毕设
毕业设计
云平台
学习
单片机
ubuntu
linux
嵌入式
eclipse
内存管理
stm32 位段 别名区