基于STM32设计的智慧路灯(华为云IOT)_281

文章目录

  • 一、前言
    • 1.1 项目介绍
      • 【1】项目开发背景
      • 【2】设计实现的功能
      • 【3】项目硬件模块组成
      • 【4】设计意义
      • 【5】国内外研究现状
      • 【6】摘要
    • 1.2 设计思路
    • 1.3 系统功能总结
    • 1.4 开发工具的选择
      • 【1】设备端开发
      • 【2】上位机开发
    • 1.5 参考文献
    • 1.6 系统框架图
    • 1.7 系统原理图
    • 1.8 实物图
    • 1.9 模块的技术详情介绍
      • 【1】合宙Air724UG 4G模块
      • 【2】BH1750传感器
      • 【3】SHT30温湿度模块
      • 【4】MQ135气体传感器
      • 【5】GPS模块
      • 【6】MQTT协议
  • 二、硬件选型
    • 2.1 STM32开发板
    • 2.2 USB下载线
    • 2.3 杜邦线(2排)
    • 2.4 OLED显示屏(SPI协议7针)
    • 2.5 GPS模块
    • 2.6 Air724UG 4G模块
    • 2.7 LED白色路灯模块
    • 2.8 BH1750光敏传感器
    • 2.9 人体感应-热释电模块
    • 2.10 SHT30温湿度模块
    • 2.11 MQ135空气质量检测
    • 2.12 独立按键
    • 2.13 洞洞板
    • 2.14 太阳能充电板【可选】
    • 2.15 电源扩展板
  • 三、部署华为云物联网平台
    • 3.1 物联网平台介绍
    • 3.2 开通物联网服务
    • 3.3 创建产品
      • (1)创建产品
      • (2)填写产品信息
      • (3)产品创建成功
      • (4)添加自定义模型
          • 【1】创建服务ID
          • 【2】环境温度 SHT30_T 浮点数
          • 【3】环境湿度 SHT30_H 浮点数
          • 【4】HumanBody_Flag 人体感应 0无人 1有人
          • 【5】BH1750 环境光强 浮点数
          • 【6】LED_SW 路灯开关 布尔类型 1开 0关
          • 【7】MQ135 空气质量 浮点数
          • 【8】LED_SW_Flag 路灯的状态 布尔类型 1故障 0正常
          • 【9】SOS_Info SOS紧急求助 布尔类型 1求助 0正常
          • 【10】gps_lng 经度定位信息 浮点数类型
          • 【11】gps_lat 纬度定位信息 浮点数类型
          • 【12】mode_type 运行模式 整型枚举 1自动 0手动
      • (5)创建完成
    • 3.4 添加设备
      • (1)注册设备
      • (2)根据自己的设备填写
      • (3)保存设备信息
      • (4)设备创建完成
      • (5)设备详情
    • 3.5 MQTT协议主题订阅与发布
      • (1)MQTT协议介绍
      • (2)华为云平台MQTT协议使用限制
      • (3)主题订阅格式
      • (4)主题发布格式
    • 3.6 MQTT三元组
      • (1)MQTT服务器地址
      • (2)生成MQTT三元组
    • 3.7 模拟设备登录测试
      • (1)填入登录信息
      • (2)打开网页查看
      • (3)MQTT登录测试参数总结
    • 3.8 项目凭证
    • 3.9 创建IAM账户
    • 3.10 获取影子数据
    • 3.11 修改设备属性
  • 四、Qt开发入门与环境搭建
    • 4.1 Qt是什么?
    • 4.2 Qt版本介绍
    • 4.3 Qt开发环境安装
    • 4.4 开发第一个QT程序
    • 4.5 调试输出
    • 4.6 QT Creator常用的快捷键
    • 4.7 QT帮助文档
    • 4.8 UI设计师使用
    • 4.9 按钮控件组
    • 4.10 布局控件组
    • 4.11 基本布局控件
    • 4.12 UI设计师的布局功能
  • 五、上位机开发
    • 5.1 Qt开发环境安装
    • 5.2 新建上位机工程
    • 5.3 切换编译器
    • 5.4 编译测试功能
    • 5.5 设计UI界面与工程配置
      • 【1】打开UI文件
      • 【2】开始设计界面
    • 5.6 设计代码
      • 【1】获取token
      • 【2】获取影子数据
        • (1)获取当前时间并更新界面上的时间标签
        • (2)设置请求URL和初始化网络请求
        • (3)构造API请求URL
        • (4)设置请求的头部信息
        • (5)设置请求URL并发送请求
        • (6)总结
      • 【3】解析数据更新界面
          • (1)**设备属性查询 (function_select == 0)**
          • (2)**接收并解析 JSON 数据**
          • (3)**解析 JSON 对象**
          • (4)提取和解析设备状态数据
          • (5)**提取具体的设备属性数据**
          • (6)**时间处理和显示**
          • (7)**数据显示和界面更新**
          • (8)**根据数据值调整显示样式**
          • (9)**设备离线状态判断**
          • (10)**更新 UI 控件的状态**
          • (11) **界面更新方法**
          • (12)总结
    • 5.5 编译Windows上位机
    • 5.6 配置Android环境
      • 【1】选择Android编译器
      • 【2】创建Android配置文件
      • 【3】配置Android图标与名称
      • 【4】编译Android上位机
    • 5.7 设备仿真调试
  • 六、 Air724UG 模块调试过程
    • 6.1 官方文档
    • 6.2 模块调试接线
    • 6.3 串口调试过程
      • 【1】AT命令
      • 【2】读取模块厂商信息
      • 【3】读取详细的固件版本
      • 【4】查询卡是否插好
      • 【5】查询信号质量
      • 【6】查询网络注册状态
      • 【5】查询模组是否注册上GPRS网络
      • 【6】查询附着GPRS网络
  • 七、硬件开发
    • 7.1 硬件连线
    • 7.2 硬件原理图
    • 7.3 硬件组装过程
    • 7.4 硬件实物图
    • 7.5 KEIL工程截图
    • 7.6 程序下载
    • 7.7 程序正常运行效果
    • 7.8 取模软件的使用
    • 7.9 4G模块与服务器通信
      • (1)**组合JSON报文数据**
      • (2)**上报数据到云平台**
      • (3)**判断数据上传是否成功**
      • (4)总结
    • 7.10 硬件初始化
      • (1)**释放PA15**
      • (2)**按键初始化**
      • (3)**LED灯初始化**
      • (4)**串口1初始化(用于打印)**
      • (5)**ADC初始化**
      • (6)**初始化定时器,输出PWM信号**
      • (7)**默认关灯**
      • (8)**红外热释电模块初始化**
      • (9)**环境温湿度传感器初始化(SHT30)**
      • (10)**环境光强检测模块初始化(BH1750)**
      • (11)**串口2初始化(用于与4G模块通信)**
      • (12)**定时器2初始化(辅助串口2接收)**
      • (13)**串口3初始化(用于接收GPS模块数据)**
      • (14)**定时器3初始化(辅助串口3接收)**
      • (15)**定时器4初始化(用于人体检测传感器滤波算法)**
      • (16)**OLED显示屏初始化**
      • (17)**OLED清屏**
      • (18)**刷新OLED屏幕数据**
      • (19)总结
    • 7.11 4G模块-初始化
      • (1)**OLED清屏并显示初始化信息**
      • (2)**重试次数初始化**
      • (3)**检测Air724UG 4G模块硬件是否正常**
      • (4)**4G模块初始化**
      • (5)**4G网络通讯服务初始化**
      • (6)**MQTT协议初始化**
      • (7)**MQTT主题订阅**
      • (8)总结
    • 7.12 数据采集与显示
      • (1)**时间计数器控制** (`time_cnt > 150`)
      • (2)**LED指示灯控制**
      • (3)**空气质量采集** (MQ135)
      • (4)**温湿度数据采集** (SHT30)
      • (5)**光强度数据采集** (BH1750)
      • (6)**人体检测** (红外热释电传感器)
      • (7)**自动模式下的路灯亮度调节**
      • (8)**路灯故障检测**
      • (9)**OLED显示更新**
      • (10)**数据上传到MQTT云端**
      • (11)总结
    • 7.13 按键代码
      • (1)**按键扫描**
      • (2)**切换显示页面**
      • (3)**触发紧急信号**
      • (4)**模式切换**
      • (5)**开关路灯**
      • (6)**总结**
    • 7.14 上位机命令处理
      • (1)**接收 4G 模块的数据**
      • (2)**分析接收到的数据**
      • (3)**路灯控制**
      • (4)**模式切换**
      • (5)**解析请求 ID**
      • (6)**上报属性修改响应**
      • (7)**清理和标志位重置**
      • (8)**总结**
    • 7.15 GPS定位信息处理
      • (1)**接收GPS模块的数据**
      • (2)**解析GPS数据**
      • (3)**输出经纬度信息**
      • (4)**清理接收缓存**
      • **(5)GPS 数据格式**
      • (6)**总结**
  • 八、使用STM32代码的流程以及注意事项
    • 8.1 第1步
    • 8.2 第2步
    • 8.3 第3步
  • 九、代码移植更改
    • 【1】STM32代码
    • 【2】Qt上位机代码
  • 任务书
      • 任务书
        • 一、课题名称
        • 二、课题背景及意义
        • 三、设计任务
        • 四、设计内容
        • 五、计划安排
        • 六、预期成果
        • 七、指导教师意见
        • 八、学生签名
        • 九、指导教师签名
  • 开题报告
        • 一、项目背景与意义
        • 二、研究现状与发展趋势
        • 三、设计目标
        • 四、技术方案
          • (1)系统总体架构
          • (2)硬件设计
          • (3)软件设计
        • 五、创新点
        • 六、预期成果
        • 七、工作计划
        • 八、参考文献

基于STM32设计的智慧路灯(华为云IOT)

一、前言

1.1 项目介绍

【1】项目开发背景

随着智慧城市建设的快速推进,智慧路灯作为城市物联网的重要组成部分,正逐渐成为城市基础设施数字化改造的核心内容。传统路灯存在能耗高、维护成本高、功能单一等问题,无法满足现代城市对节能、环保和智能化管理的需求。因此,设计一款基于STM32的智慧路灯系统,不仅可以实现路灯的节能高效管理,还能提升城市整体管理水平,为智慧城市的发展奠定基础。

本项目旨在通过STM32F103C8T6微控制器为核心,结合先进的传感技术和无线通信技术,实现智慧路灯的多功能化和智能化管理。通过整合环境温度、湿度、光照强度、空气质量的实时监测功能,可以为市政部门

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/96437.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验十 合理定义分布列实现性能优化-分布式表关联

实验介绍本实验通过分析普通查询过程中存在的性能瓶颈点,通过执行计划的分析找到可能的性能优化点并加以实施,最终达到优化的效果,重点关注分布式关联相关查询语句的优化。实验目的了解通过合理定义分布列实现分布式关联的性能优化。实验步骤…

C#,RabbitMQ从入门到精通,.NET8.0(路由/分布式/主题/消费重复问题 /延迟队列和死信队列/消息持久化 )/RabbitMQ集群模式

为什么使用消息队列 消息队列(MQ)在分布式系统中用于解耦生产者和消费者,提高系统的异步处理能力、削峰填谷、增强可扩展性和可靠性。通过消息队列,任务可以异步执行,避免系统因瞬时高并发而崩溃。 消息队列场景 异…

OpenHarmony之SELinux安全组件底层原理设计架构精讲

1. 组件介绍 1.1 核心功能 **SELinux(安全增强式Linux)**是Linux历史上杰出的安全组件,包含一组内核修改和用户空间工具,并提供了基于安全策略的强制访问控制机制(Mandatory Access Control,MAC)。本部件负责对文件、属性、服务等系统资源提供强制访问控制保护,提供n…

IIS 部署 asp.net core 项目时,出现500.19、500.31问题的解决方案

目录 (一)500.19 问题 1. 问题说明 2. 原因 3. 解决 (二)500.31 问题 1. 问题说明 2. 原因 打开事件检视器的3种方式: 3. 解决 (一)500.19 问题 1. 问题说明 2. 原因 Web项目发布时&am…

中大型水闸安全监测的重要性及实施方法

水闸作为水利工程体系中的关键性构筑物,其结构安全性和运行可靠性直接影响到整个水利系统的稳定运行,更与下游地区人民群众的生命财产安全息息相关。作为水利枢纽工程的重要控制节点,水闸承担着防洪排涝、灌溉供水、航运发电等多重功能&#…

【芯片设计-信号完整性 SI 学习 1.1.1 -- Unit Interval,比特周期】

文章目录1. Unit Interval (UI) / 比特周期 的定义2. 举例说明3. 在眼图 (Eye Diagram) 中的体现4. 示意图(a) 单比特周期(b) 不同速率下的 UI(c) 眼图中的 UI5. 总结1. Unit Interval (UI) / 比特周期 的定义 在高速信号传输与 信号完整性 (SI) 测试中,Unit Inter…

Go语言开发工具全解析

Go 语言的开发工具生态对于提高开发效率、保证代码质量和团队协作至关重要。一套完善的工具链可以帮助开发者:1. 加速编码过程代码模板快速生成常见模式例如使用代码片段(Snippet)快速生成HTTP服务框架自动生成测试用例模板实时语法检查减少错误即时显示类型不匹配错…

[邮件服务器core] 安全通信(SSL/TLS) | OpenSSL库管理 | 服务端安全SECURITY.md

第5章:安全通信(SSL/TLS) 欢迎回来 在第4章:服务运行中,我们学习了如何启动Dovecot邮件服务器并使其运行。 现在,我们的服务器已经启动并准备好处理电子邮件,但有一个关键问题:我…

Lodash方法总结

目录 1. _.defaults()为对象填充默认值 基本语法 功能说明 示例代码 注意事项 与其他类似方法的区别 2. _.pickBy()删除对象中值为空串或 null 的属性 实现方法 代码说明 扩展:深层过滤 3._.omitBy()移除满足条件的属性 基本语法 核心功能 示例代码 1…

C#---Expression(表达式)

前言:Expression 是C# 高级编程,表达式的应用场景有 ORM框架:Entity Framework,Dapper等,规则引擎:动态业务规则评估, 依赖注入:高级DI容器实现,测试框架:模拟…

Lodash-es 完整开发指南:ES模块化JavaScript工具库实战教程

简介 Lodash-es 是 Lodash 库的 ES 模块版本,提供了大量实用的 JavaScript 工具函数。它支持按需导入,可以显著减少打包体积,是现代 JavaScript 项目中的首选工具库。 主要特性 ES 模块支持: 完全支持 ES6 模块语法按需导入: 只导入需要的…

26. AI-Agent-Dify

文章目录前言一、Dify入门为什么使用 Dify?Dify 能做什么?二、Dify私有化部署Docker Compose 部署前提条件克隆 Dify 代码启动 Dify更新 Dify访问 Dify自定义配置三、Dify构建企业级Agent应用定义如何使用智能助手添加助手需要的工具配置 Agent配置对话开…

云原生:微服务与Serverless指南

Copilot时代的开发者效能提升 代码生成与补全:减少重复性编码工作,加快开发速度错误检测与修复:实时提示潜在问题,降低调试时间知识获取与学习:帮助开发者快速掌握新语言或框架协作效率:通过AI辅助减少团队…

SpringBoot + Apache Tika:一站式解决文件数据提取难题

在日常开发中,你是否也遇到过这样的窘境:领导甩来需求“把用户上传的 Word、Excel、PDF 里的关键信息扒出来存库”,你却要对着不同格式逐个攻坚——解析 Word 用 POI 还要处理 .doc/.docx 兼容,解析 Excel 要啃合并单元格、公式计…

车牌模拟生成器:Python3.8+Opencv代码实现与商业应用前景(C#、python 开发包SDK)

车牌模拟生成器:Python代码实现与商业应用前景引言在智慧城市建设和汽车行业数字化浪潮中,车牌作为车辆的唯一标识,其相关技术应用正变得越来越重要。今天我们将介绍一个基于Python的车牌模拟生成器,探讨其技术实现、功能特点以及…

小程序非主页面的数据动作关联主页面的数据刷新操作

如果在主页面跳转到其他页面。比如说我的收藏页面,然后有取消收藏的动作,当返回到主页面的时候,如果有关联数据显示在主页面,刷新页面对应的状态。 下面的代码是实现://卡片收藏/取消if (newCollectd) {this.setData({…

后端(fastAPI)学习笔记(CLASS 1):扩展基础

一、python的类型声明1、类型声明的背景和作用python 3.6 版本引入了“类型提示”1、类型提示是一种新的语法,用来声明变量的类型2、提高编译器和工具的支持能力为什么要学习类型提示1、了解类型提示不仅仅对使用FastAPI有帮助,也能提高代码的可读性度和…

2023年系统分析师上半年论文试题分析

试题一 论信息系统的可行性分析信息系统可行性分析的目的是确认在当前条件下企业是否有必要建设新系统,以及建设新系统的工作是否具备必要的条件。如何进行可行性分析是系统分析师所必须面临的问题。请围绕信息系统可行性分析论题,依次从以下三个方面进行…

洛谷 P1967 [NOIP 2013 提高组] 货车运输(kruskal 重构树 + 求路径最小边权)

题目链接 题目难度 洛谷上是蓝题&#xff0c;本人认为评高了&#xff0c;此题思维和实现都不难&#xff0c;应该是绿题。 题目解法概括 kruskal 重构树 倍增优化求路径最小边权 代码 #include <iostream> #include <cstdio> #include <vector> #inclu…

【01】针对开源收银系统icepos (宝塔面板) 详细安装教程详细参考-优雅草卓伊凡

【01】针对开源收银系统icepos (宝塔面板) 详细安装教程详细参考-优雅草卓伊凡引言本文做参考&#xff0c;下篇文章 直接实践&#xff0c;由于已经选型本系统是服务端php开发的系统&#xff0c;他的系统环境如下&#xff1a;系统安装 环境要求ICEPOS对服务器或电脑硬件要求不高…