课程设计:基于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
  • ②可视化界面

    数据可视化

    新建模板

    选择模板

    编辑模板

    ③数据配置

  • 添加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/

    作者:涛的空间

    物联沃分享整理
    物联沃-IOTWORD物联网 » 课程设计:基于STM32的物联网智能温湿度检测系统(OneNET)

    发表回复