嵌入式系统及应用课程设计——基于STM32的温湿度监测系统
大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh。
上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统。
记得刚开始做课程设计的时候,听说先设计画出原理图,然后制作PCB板,再交付制板商制板,购买原件,焊接原件,通电,下载程序,最后调试运行,书写课程设计论文。
瓦特?我们嵌入式系统课上学习了ARM架构,只记得理论特高深,记忆深的是先给STM32开发板上Linux操作系统,然后在Linux操作系统下编写程序,然后使用MakeFile文件快速编译,最后运行。
为什么课程设计需要使用DXP这个之前见都没见过的软件(如下图所示),从原理图开始?

心中奔过好几万只。。。,但是令我感到意外的是我们学校虽然渣,我们班的同学在简单的抱怨,被老师回怼了一通之后,竟然慢慢开始学习使用这个软件了,先把老师给的资料下载下来,开始搭建环境。
看着大家认真的样子,我也开始。。。混了起来,没错先混一段时间再说,hhhh。
不过我也在东跑西看的发现大家的问题,从一开始的下载DXP需要破解的问题,然后画原理图的时候注意先将元件导入元件库中,然后根据老师给的原理图,一步一步的把一部分一部分的原理图画出来,注意网络标号不要弄错。
画了大概一周吧,老师突然发现一部分电路是错误的(暗自庆幸先混了一段时间)。最后等到大家把坑都趟完了,我才开始慢慢悠悠的画了起来。
接下来就是根据之前画的原理图,然后挑选合适的板子(双层单层,厚度等等),然后导入之前的原理图,仔细看一下元器件少了没有,再开始摆放元器件,走线。
最后就是根据提示使用手动布线的方式,将网络标号相同的接口通过导线连接起来。其中有些线需要改变一下粗细才能更合理,更安全的布线,其中我记得是需要5V的电源线都要比其他的线粗一些。PCB画完之后就可以交付制板商制板了。
在大家的不懈努力之下,最终还是完成了PCB的制作。然后顺利的将老师之前准备的好的PCB板发给了纸板商,没错,就是老师之前准备好的。
因为我们画的根本不能用,单独的不同板子需要定制,价钱也更贵,而且我们画的板子我们自己都不敢用,万一,不,二一花了定制的价钱还买了一块废板子,岂不是耽误时间,还浪费钱?
不过这期间我们起码懂得了一个嵌入式系统应用的硬件开发流程,体验了一次硬件工程师的快乐(惨如狗啊)日常。
然后印刷版和元器件回来了,如下图所示。

刚开始看的时候,哇,感觉无从下手啊,我的心就像这一堆零件一样,撒了一桌子,于是我就又开始了开心的混子生活,先混一段时间再说吧。
然后看着大家每天认真的跑到实验室开始焊了起来,在老师的细心示范下,叫我们怎么先把STM32芯片焊上,告诉了我们,把芯片焊好,这个板子就成功了一半。
焊接芯片,首先要使用扁平的烙铁头,然后先上一点焊锡,然后一点一点的刮出来,最后只留下引脚上一点焊锡即可。
看着大家热火朝天的干着,终于到了明天下午就要验收成品的日子。我才慌的一批的把元器件拿到实验室,吸取他们的教训,开始一点一点的焊接了起来。
首先是芯片,我的室友已经忙活几天了,听说已经焊了好几块芯片了,他看到我准备焊的时候一把揪住了我,说,我来吧,这个很重要。然后我就又开心的当起了混子,顺便充当大佬的把其他几个焊糊的同学修了几下(体验一下)。
由于之前焊接过单片机的板子,剩下的元器件还是我来焊了。这一坐就是一下午,一直到晚上七八点,终于焊完了。能不能成功,按老师说的,就是尸体也是个全尸了吧,hhh。
第二天上午给板子烧上程序(程序是老师之前给的,大致看了一下也没懂),首先看到灯亮了,同学说,有脉搏,是个活的,然后一看屏幕就是不会出现之前设定的字符,不会是个植物人吧,同学说,别急,先把液晶显示屏的亮度调一下,调完之后发现还是不会显示。
拿了同学的板子仔细对照了一下,没问题,初步判定是线路的问题,然后使用万用表的蜂鸣器一条一条的测了一遍,并没有发现什么问题。
最后在我想放弃的时候,侥幸拿来同学的液晶屏换了一下,发现能用,那就是液晶屏的问题了,最后欣喜的换了一块液晶屏,顺利完工,成品如下图所示。

到此也就基本完成了该课程设计,后期的论文只是将材料组合一下,有点小遗憾的是没有亲自焊接一下芯片,没有耐下心来写一下控制程序(那个时候在写JAVA的课程设计),需要的同学可以在百度网盘下载一下我的课程论文和使用的资料,包括需要导入的元器件和软件以及程序和设计论文(可能比较大,因为有DXP)。
本次课程设计中实现了一个基于STM32F103ZET6的智能温湿度检测系统,目的是实现温湿度的采集和显示,温湿度的采集是作为自动化科学中一个必须掌握的检测技术,也是一项比较实用的技术。
写在最后,总的来说通过这一门课程,我们认识到了嵌入式系统的软件和硬件的设计、实现流程,让我们懂得了如果想要深入学习应该需要具备哪些技能,比如了解ARM芯片,会使用Linux操作系统,完成程序的编写及下载,需要懂得数电模电的知识,设计电路,使用DXP完成原理图和PCB图的制作,然后焊接,调试。
嵌入式系统及应用课程设计——基于STM32的温湿度监测系统的更多相关文章
- 基于stm32的水质监测系统项目基础部分详细记录
基于stm32的水质监测系统项目基础部分详细记录 软件环境:MDK5 硬件环境:STM32F103ZET6 开发板.颜色传感器.串口屏.串口打印机 搭建工程模板 在进行项目软件的撰写时,首先新建一个基 ...
- j2ee课程设计—基于activiti的请休假系统
前言 课设基于SSM框架,数据库采用mysql,主要业务交给activiti,版本控制利用github. 参考资料: Intellij 部署SSM框架 Activiti就是这么简单 方大师的教材 下文 ...
- Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)
#课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...
- Java语言课程设计——博客作业教学数据分析系统(201521123107 张翔)
#Java语言课程设计--博客作业教学数据分析系统(个人博客) 1.团队课程设计博客链接 [博客作业教学数据分析系统(From:网络五条狗)](http://www.cnblogs.com/fanta ...
- 课程设计- 基于ssm的捐赠物资分配管理系统 && 基于java的申请救援管理系统
课程设计- 基于ssm的捐赠物资分配管理系统 && 基于java的申请救援管理系统 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架: ...
- 温湿度监测系统设计:基于 STM32 的温湿度变送器的设计与实现
前言:这个是2018年上半年完成的,这里只贴出硬件设计部分,软件设计部分可以看上位机说明书. 设计总说明 随着科学技术的不断发展,高集成度.高精度.高可靠性的一体化温湿度变送器开始 得到广泛的应用.同 ...
- [课程设计]Scrum 多鱼点餐系统(团队交流日)
[课程设计]Scrum 多鱼点餐系统(团队交流日) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB ...
- Java课程设计——博客作业教学数据分析系统(201521123091 李嘉廉)
#课程设计--博客作业教学数据分析系统(201521123084 李嘉廉) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 數據分析 Kmeans聚類算法實現 多元綫性 ...
- Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)
Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...
随机推荐
- 在Codeblocks下配置GoogleTest单元测试工具
开发工具 我和我的组员的都是使用的是大一老师推荐的codeblocks,所以,就愉快的决定了工具统一为codeblocks,语言C++. 测试单元 老师推荐的是JUnit和VSTS工具,但同学们从大一 ...
- Python函数式编程之装饰器
原则:对修改是封闭的,对扩展是开放的,方法:一般不修改函数或者类,而是扩展函数或者类 一:装饰器 允许我们将一个提供核心功能的对象和其他可以改变这个功能的对象’包裹‘在一起, 使用装饰对象的任何对象与 ...
- 神经网络_线性神经网络 2 (Nerual Network_Linear Nerual Network 2)
1 LMS 学习规则 1.1 LMS学习规则定义 MSE=(1/Q)*Σe2k=(1/Q)*Σ(tk-ak)2,k=1,2,...,Q 式中:Q是训练样本:t(k)是神经元的期望输出:a(k)是神经元 ...
- 用 Java 解密 C# 加密的数据(DES)(转)
今天遇到java解密url的问题.我们的系统要获取外部传过来的URL,URL是采用 DES 算法对消息进行加密,再用 BASE64 编码.不过对方系统是用 C# 写的. 在网上搜了几篇文章终于找到一篇 ...
- 用R处理一组数据的三种方式
USArrests是R附带的一个数据集,现在我们需要创建一个factor向量urbancat,如果UrbanPop列的某个值在中位数之上,就把urbancat对应位置的值设为1,否则设为0. 这种数据 ...
- 深入理解Spring Redis的使用 (九)、通过Redis 实现 分布式锁 的 BUG,以及和数据库加锁的性能测试
在多节点的项目中,经常要涉及到某些方法加锁的控制.而这个时候,简单易用的synchronized已经不能满足多节点的部署结构. 之前在项目中,用的比较多的是数据库的更新锁:for udpate.但是这 ...
- MyEclipse设置Console输出到文件
Java程序默认输出为Console,如果要想将Console输出结果保存到文件中,则需要做如下配置: 在JAVA程序上右键--> Run As --> Run Configuration ...
- Vue(day1)
一.起步 <!-- 开发环境版本,包含了有帮助的命令行警告 --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/v ...
- [Swift]LeetCode166. 分数到小数 | Fraction to Recurring Decimal
Given two integers representing the numerator and denominator of a fraction, return the fraction in ...
- [Swift]LeetCode415. 字符串相加 | Add Strings
Given two non-negative integers num1 and num2 represented as string, return the sum of num1 and num2 ...