问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

基于STM32的物联网智能温湿度检测系统设计与实现

创作时间:
作者:
@小白创作中心

基于STM32的物联网智能温湿度检测系统设计与实现

引用
CSDN
1.
https://m.blog.csdn.net/qq_15760099/article/details/145065636

本文介绍了一个基于STM32的物联网智能温湿度检测系统的设计与实现。系统通过STM32F103zet6核心板、ESP8266-01S WiFi模块、OLED显示屏和DHT11温湿度传感器等硬件,结合OneNET平台进行数据采集与展示,实现了温湿度的实时监测与预警功能。

一、准备工具

1.硬件准备

①PC电脑

Windows系统至少在10+以上,以满足程序编程的要求

②WIFI发射设备

手机/电脑即可,发射频率为2.4Ghz

③STM32核心板

型号:STM32F103zet6
连接配件:仿真器 + 供电线(TYPE A)

④WIFI模块

型号:ESP8266-01/01S
固件:OneNet固件
刷入教程:Wifi模块刷入OneNet固件 | 每日书库

⑤OLED显示屏

型号:0.96 7针 OLED 显示屏

⑥温湿度模块

型号:DHT11

2.软件准备

①编程软件

Keil 5

②串口通信

XCOM V2.0

3.视频教程

基于STM32的物联网智能温湿度检测系统

二、系统硬件设计

1.硬件结构图

2.硬件连接方式

3.电路原理图

三、系统程序设计

1.软件程序设计

系统通电后会进行各种模块的初始化,根据配置的 WiFi信息 以及 OneNet 信息自动连接 WiFi 和 OneNet 数据中心;而后系统会将 温湿度传感器(DHT11)的值传送至OneNet数据中心,将温湿度传感器(DHT11)以及 温湿度预警值 打印到 OLED 显示屏;使用 KEY_UP 按键可以切换温湿度预警值的调节,当状态栏显示 “T” 时 ,按键 KEY0 与 KEY1 可以调节温度预设值,当状态栏显示 “H” 时,按键 KEY0 与 KEY1 可以调节湿度的预设值;当 温度/湿度 > 温度/湿度预设值时,设备显示报警信息,状态栏显示 “W” ,LED1点亮(可自行拓展外设:外设 + 极接3.3V/5V,外设 – 极接 PB5 );当状态栏数据标志闪动时系统会将数据上报至 OneNET 数据中心。

2.程序修改

在 main.c 中修改 wifiname,wifipassword,pid,device_name,token 几个参数,方可成功上报服务器;这几个参数会在下方详细介绍(OneNET配置方法 – 填写参数)
系统不会验证WiFi模块的存在性,需要确保您的WiFi模块成功刷入OneNET固件

char wifiname[100]= "test" ;                         //WIFI名称(自建WiFi名称)
char wifipassword[100] = "12345678";                 //WIFI密码(自建WiFi密码)
char pid[100] = "n2k8889jay";                        //产品ID
char device_name[100] = "test1";                     //设备名称
char token[200] = "version=2018-10-31&res=products%2Fn2k8889jay%2Fdevices%2Ftest1&et=1893427200&method=md5&sign=B1iW51iOdmE%2FKwJ344TjPQ%3D%3D";
                                                     //Tonken  

3.OneNET基础配置方法

①登录/注册 OneNET 平台

平台地址:OneNET控制台
https://open.iot.10086.cn/console

②创建产品

产品开发
创建产品
配置信息
创建完成

③添加设备

设备管理
添加设备

设备信息
添加完成

④信息获取

设备详情
信息获取
成功获取 设备名称、产品ID、设备密钥
设备名称 与 产品ID 可以直接填写至程序中 !

⑤Token生成

下载 OneNET 官方提供的 Token生成工具:https://open.iot.10086.cn/college/video/onenet-portal/2024-04-19/17134946071850.exe

参数配置:
res:products/{产品id}/devices/{设备名}
et:4070880000    //时间戳(当前时间:2099年1月1日)
                  //时间戳转换网站:https://tool.chinaz.com/tools/unixtime.aspx
key:设备密钥
对应到我们的产品:
res:products/7v59QJTl1T/devices/test1
et:4070880000
key:NE5tdHZ5NkRoblhZb1J3ejRBdmhZV3hSb25xRWJtWXc=
生成信息:
Token生成:version=2018-10-31&res=products%2F7v59QJTl1T%2Fdevices%2Ftest1&et=4070880000&method=md5&sign=ToUauGiwKgtH7S%2BU27CeXA%3D%3D  

⑥填写参数

回到 keil5 程序修改中填写相关信息(程序修改)
产品ID:7v59QJTl1T
设备名称:test1
Token:version=2018-10-31&res=products%2F7v59QJTl1T%2Fdevices%2Ftest1&et=4070880000&method=md5&sign=ToUauGiwKgtH7S%2BU27CeXA%3D%3D

4.OneNET配置物理模型

①产品开发

②设置物理模型

③添加自定义功能点

④温/湿度设置

⑤保存配置

5.OneNET数据展示

①信息获取

获取 产品ID、userId、accessKey 信息

  • 产品ID
  • userId、accessKey

②可视化界面

数据可视化
新建模板
选择模板
编辑模板

③数据配置

  • 添加2个仪表盘(直接拖动即可),调整到合适的大小
  • 添加数据源
  • 温度信息配置
    产品ID、userId、accessKey 这三个信息就是就是第一步获取的信息,其他信息按照下图配置修改即可
  • 继续添加数据源
  • 湿度信息配置

    产品ID、userId、accessKey 这三个信息就是就是第一步获取的信息,其他信息按照下图配置修改即可

④表盘配置

温度表盘配置

var i = 0;
i = data.length - 1
return [{
    value: data[i].value,
    name: '温度'
}]

湿度表盘配置

var i = 0;
i = data.length - 1
return [{
    value: data[i].value,
    name: '湿度'
}]

⑤添加标题

  • 添加标题(拖动即可),调整到合适的大小
  • 修改标题
return [{
    "value": "基于STM32的物联网智能温湿度检测系统"
}]
  • 调整标题(字号、颜色)
  • 保存配置
  • 关闭页面

⑥发布配置

  • 回到 数据可视化 界面,选择发布按钮
  • 配置发布详情
  • 配置完成
    打开链接就是我们配置的数据监控表,链接长期有效,展示专用界面!!!

6.互联网报警配置

①新建场景

②温度报警配置

③湿度报警配置

④配置完成

四、运行测试

修改好代码下载到单片机后直接运行,实际效果图若下图所示

1.运行效果图

OLED显示介绍:
状态栏介绍请看软件程序设计
T/H : 表示当前的温湿度
ST/SH : 表示温湿度警戒值

2.数据展示图

3.网络报警图


网络报警预警值与本地预警值是相互独立的,不会相互同步
换句话说就是 本地报警 ≠ 网络报警

五、程序下载

下载地址:基于STM32的物联网智能温湿度检测系统 | 零度空间

下载网址:http://cloud.tao-space.top/2025/01/07/%e5%9f%ba%e4%ba%8estm32%e7%9a%84%e7%89%a9%e8%81%94%e7%bd%91%e6%99%ba%e8%83%bd%e6%b8%a9%e6%b9%bf%e5%ba%a6%e6%a3%80%e6%b5%8b%e7%b3%bb%e7%bb%9f/
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号