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

news2024/11/26 20:50:21

文章目录:

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

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.打开CubeMX
    4.1 用不到的功能端口全部取消定义,关闭不需要的功能
    4.2 进行相关设置

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

1.调通硬件

2.移植各功能驱动程序

3.编写功能测试应用程序

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

1.完成温度控制加热灯的程序

2.完成按键和电位器设置的程序

3.完成手机蓝牙设置的程序

开发过程中的关注重点

a.多功能有机组合和相互关联

b.程序代码执行的先后顺序

c.算法的处理

d.裸机程序抢占CPU的问题

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

4.完成阿里云平台设置的程序

5.测试效果与调试

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

1.完成错误报警的程序

2.完成操作异常的程序

3.完成稳定性处理的程序

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

4.程序排版整理

5.导出正式版hex并存档

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

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

相关文章

JAVA毕业设计093—基于Java+Springboot+Vue的招聘系统(源码+数据库)

基于JavaSpringbootVue的招聘系统(源码数据库)093 一、系统介绍 本系统前后端分离 本系统分为管理员、HR、用户三种角色 用户角色包含以下功能: 登录、注册、简历(搜索、投递和收藏)、hr联系、我的关注、我的收藏、我的简历、简历投递管理、面试管理、个人中心…

zabbix5.0安装教程(超详细)实测完美可用

5.0 版本对基础环境的要求有⼤的变化,最⼤的就是对 php 版本的要求,最低要求7.2.0 版本,对 php 扩展组件版本也有要求,详见官网文档 https://www.zabbix.com/documentation/current/manual/installation/requirements 准备好⼀台linux服务器&…

day23-113. 路径总和ii

113. 路径总和ii 力扣题目链接(opens new window) 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum 22, 思路 利用…

【团队协作开发】IDEA中Git从远程其他分支拉取代码并同步更新到自己的分支中更新不全问题解决

出现这个问题往往是因为没有先拉取远程分支的最新变化到本地导致的,具体操作流程和解决方法如下: 1、首先,先确保本地有一个和远程要拉取分支(比如dev_z)相关联的分支,如果没有:选择远程要拉取的分支,点击C…

postman官网下载安装登录详细教程

目录 一、介绍 二、官网下载 三、安装 四、注册登录postman账号(不注册也可以) postman注册登录和不注册登录的使用区别 五、关于汉化的说明 一、介绍 简单来说:是一款前后端都用来测试接口的工具。 展开来说:Postman 是一个…

探讨C语言是否仍然满足现代编程需求

在过去的30年里,有人试图通过引入一门新的语言来取代C语言,其中一位被简称为BS的人也持有类似观点。尽管这门新语言在某些方面表现出色,但它并未能完全取代C语言,而是在特定领域发展出自己的优势。此后,又有一家公司决…

在线Word怎么转换成PDF?Word无法转换成PDF文档原因分析

不同的文件格式使用方法是不一样的,而且也需要使用不同的工具才可以打开编辑内容,针对不同的场合用户们难免会用到各种各样的文件格式,要想在不修改内容的前提下提高工作效率,那就需要用到文件格式转换,那么在线Word怎…

苍穹外卖项目解读(四) 微信小程序支付、定时任务、WebSocket

前言 HM新出springboot入门项目《苍穹外卖》,笔者打算写一个系列学习笔记,“苍穹外卖项目解读”,内容主要从HM课程,自己实践,以及踩坑填坑出发,以技术,经验为主,记录学习&#xff0…

爬虫018_urllib库_cookie反爬_post请求百度翻译获取百分翻译内容_以及详细翻译内容---python工作笔记037

然后我们来看如何用urllib发送post请求,这里我们 用百度翻译为例 我们翻译一个spider,然后我们看请求,可以看到有很多 找到sug这个 可以看到这里的form data,就是post请求体中的内容 然后我们点击preview其实就是 返回的实际内容 然后请求方式用的post 然后我们把上面的信息…

Untiy Json和Xml的序列化和反序列化

Json的序列化和反序列化 1.定义数据类 [Serializable] public class ZoomPoint {// 点名称, 将作为Key被字典存储public string name;// 轴心X坐标public Vector2 pivot Vector2.one / 2;// 放大倍率,小于1是为缩小倍率,小于0是取绝对值,不…

BIGEMAP双端buff助力AEC行业无压力进行AutoCAD作图

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP AEC行业,即建筑(Architecture)、工程(Engineering)、施工(Construction),热衷于引入信息通信技术,不仅活跃于国际舞台,还…

GoFastDFS单节点部署

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

Oracle 开发篇+Java通过HiKariCP访问Oracle数据库

标签:HikariCP、数据库连接池、JDBC连接池、释义:HikariCP 是一个高性能的 JDBC 连接池组件,号称性能最好的后起之秀,是一个基于BoneCP做了不少的改进和优化的高性能JDBC连接池。 ★ Java代码 import java.sql.Connection; impor…

【数学建模】--主成分分析

本讲将介绍主成分分析(Principal Component Analysis,PCA),主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能…

企业这样给员工谋福利!看完直呼绝了!

当我们谈论新零售模式时,自动售货机无疑是一个引人注目的亮点。在这个数字化和智能化的时代,自动售货机作为新零售模式的重要代表,正在改变着我们的购物方式和消费体验。 通过自动售货机,消费者可以在24小时内购买所需商品&#x…

linux配置上网 linux adsl拨号上网设置

Linux里面配置ADSL上网是件很麻烦的事。但配置完成之后就能开机自动拨号上网,可谓十分的方便。支持的系统有Redhat,CentOS,SuSE,FreeBSD,Ubuntu等常见的Linux。 工具/原料 ADSL网络,电信,网通,移动等常见宽带。 Linux系统的安装光…

【逗老师的PMP学习笔记】9、项目资源管理

目录 一、规划资源管理1、【关键工具】责任分配矩阵RACI矩阵2、【关键工具】组织理论2.1、马斯洛需求层次理论2.2、麦格雷戈-X-Y理论2.3、赫兹伯格双因素理论 3、【关键输出】资源管理计划4、【关键输出】团队章程 二、估算活动资源1、【关键输入】资源日历 三、获取资源1、【关…

中电金信:国际结算系统的“王冠”,为什么十年都戴在“它”的头上

2001年,中国正式加入WTO,在此后的二十多年里,中国出口席卷全球,迅速成长为一个贸易大国。 作为跨国贸易不可或缺的一环,无论是商品交易、服务提供、资金分配还是国际借贷等,都需要通过银行办理的外汇收支业…

什么是自定义表单和工作流?看完这篇文章就懂了

在很多中大型企业中,低代码技术平台的应用价值是较高的,也深得广大用户朋友的青睐和喜爱。其中的自定义表单和工作流是该平台的主要功能,可以解决当前工作效率低下、解放程序员时间和精力等各种现实问题,可以说是实现办公流程化、…

UnityWebGL移动端兼容性说明

官方文档说明 依据Unity官方最新版本文档(2021.3LTS),关于WebGL的兼容性说明为"Unity WebGL不支持移动设备。它可能适用于高端设备,但当前的设备通常不够强大,并且没有足够的内存来支持Unity WebGL内容。为了让最…