课程设计:基于STM32的物联网智能温湿度检测系统(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 这三个信息就是就是第一步获取的信息,其他信息按照下图配置修改即可
产品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/
作者:涛的空间