当前位置: 首页 > news >正文

STM32基于CubeIDE和HAL库 基础入门学习笔记:物联网项目开发流程和思路

文章目录:

第一部分:项目开始前的计划与准备

1.项目策划和开发规范 

1.1 项目要求文档

1.2 技术实现文档

1.3 开发规范

2.创建项目工程与日志

第二部分:调通硬件电路与驱动程序

第三部分:编写最基础的应用程序

第四部分:完成最终要求、反复调试

第五部分:程序优化、异常状态测试

第六部分:排版与注释、整理与存档


第一部分:项目开始前的计划与准备

1.项目策划和开发规范 

1.1 项目要求文档

产品名:带物联网功能的远程控制温湿度控制加热灯的产品主要功能:1.可读出环境的温湿度值,在设置的温度时控制加热灯开关2.在现场可用手机连接产品,在手机上显示温湿度值,并设置开关灯的阈值3.可在物联网平台上显示温湿度值,设置开关灯阈值,可手动开关灯、可开关机4.在系统出现故障时蜂鸣器报警,并将报警事件上传云平台5.可通过光敏电阻判断开关灯是否成功,可用电位器设置光敏电阻的灵敏度6.可在产品上通过按键设置开机或待机7.使用手机充电器转5V的电源供电所有功能在功能强大、性能优异的洋桃loT开发板上实现
生产成本:每套小于300元
开发周期:15天
提供:提供条理清晰、注释详细的源工程、提供用于批量产品用的HEX文件、提供电路原理图、提供一套用于测试和验收的样品
开发报价:请按以上要求给出报价

提取硬件要求

DHT11传感器:温湿度值
继电器自动开关:开关加热灯
蓝牙模块:手机CC2541
WIFI模块:ESP8266
蜂鸣器
光敏电阻
电位器
按键
USB电源
洋桃loT开发板

提取要求的缺失 

1.温湿度范围?最小分辨率要求?0~50℃ ±2℃2.有无控制灯亮度控制要求?只控制加热灯的开和关3.是否需要开发蓝牙专用APP?不需要,用蓝牙调试器软件临时使用4.是否有指定的云平台?阿里云5.WIFI模块连接路由器?WIFI模块连接到定时的家用路由器6.上传云平台的间隔时间要求?每5分钟左右上传一次,时间不要求准确7.设置开关灯阈值的范围?这个在现场测试能用就行,由于不同型号的灯的亮度不同,需要用电位器设置8.蜂鸣器的音量要求?报警时长?没有要求,3分钟后自动停止,也可按KEY2按键手动停止9.光照强度范围?到现场调试即可,没有要求10.有无用功耗要求?没有功耗要求11.产品是长期供电还是经常开关?长时间工作,需要考虑长时间工作时死机时能自动恢复12.稳定性的要求?温度控制开关灯要稳定工作,WIFI蓝牙等辅助功能不需要稳定13.产品尺寸与外壳的要求?没有要求

1.2 技术实现文档

 

 

1.3 开发规范

1.每一阶段开发要做工程备份
每天开发结束,把程序打包RAR备份,标题注明当前的程序状态2.先调通硬件再做应用层程序开发
先写出全部硬件的测试程序,后续开发中怀疑硬件问题可用此程序测试3.切换到产品使用者的角度来做测试
开发者的角度不会有好用的设计,必须有开发者和使用者的双重角色4.重视产品异常情况的纠错处理,重视产品长时间运行的稳定性
“能用”不是结束,考虑异常情况的错误可能,还要长时间烤机测试5.注重程序的结构关系和可读性
防止未来看不懂自己写的程序,程序要结构清晰、注释丰富、易理解

2.创建项目工程与日志

1.创建自己的项目文件夹:并取名(含版本)2.新建word文档保存项目要求:记录项目日志3.从素材库中导入素材:节约时间4.打开CubeMX4.1 用不到的功能端口全部取消定义,关闭不需要的功能4.2 进行相关设置

第二部分:调通硬件电路与驱动程序

1.调通硬件2.移植各功能驱动程序3.编写功能测试应用程序

第三部分:编写最基础的应用程序

1.完成温度控制加热灯的程序2.完成按键和电位器设置的程序3.完成手机蓝牙设置的程序

开发过程中的关注重点

a.多功能有机组合和相互关联b.程序代码执行的先后顺序c.算法的处理d.裸机程序抢占CPU的问题

第四部分:完成最终要求、反复调试

4.完成阿里云平台设置的程序5.测试效果与调试

第五部分:程序优化、异常状态测试

1.完成错误报警的程序2.完成操作异常的程序3.完成稳定性处理的程序

第六部分:排版与注释、整理与存档

4.程序排版整理5.导出正式版hex并存档
http://www.lryc.cn/news/131747.html

相关文章:

  • Hive on Spark (1)
  • PostgreSQL基本操作总结
  • Jakarta 的 Servlet 下BeanUtils的日期处理 和JSTL 的使用
  • 聚焦电力行业CentOS迁移,麒麟信安受邀参加第六届电力信息通信新技术大会暨数字化发展论坛并发表主题演讲
  • 华为OD真题--分月饼--带答案
  • 帆软大屏2.0企业制作
  • 【学习笔记之opcua】使用Python获取opcua数据
  • apache doris和StarRocks的区别
  • 文心一言最新重磅发布!
  • css整体使用
  • LeetCode1578. 使绳子变成彩色的最短时间
  • 如何在机器学习中实现分类?
  • 华为网络篇 RIP的负载均衡-29
  • 前端面试的性能优化部分(10)每天10个小知识点
  • 分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测
  • maven -pl -am -amd
  • 高效解决Anaconda Prompt报错Did not find VSINSTALLDIR这类问题
  • 将iPhone备份到移动硬盘
  • 找工作 相关资料
  • 罗勇军 → 《算法竞赛·快冲300题》每日一题:“排列变换” ← 贪心算法
  • 算法修炼Day51|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
  • LVS-DR模型实例
  • Vue面试题
  • 使用图像处理算法检测金属表面的生锈区域: Python实现及步骤解析
  • 通过爬虫抓取上市企业利润表并在睿思BI中展示
  • 填充柄功能
  • Python爬虫性能优化:多进程协程提速实践指南
  • mongodb export(2023新)
  • css-flex使用
  • SAP安全库存-安全库存共享、安全库存简介