嵌入式系统及应用课程设计——基于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.网络爬虫 ...
随机推荐
- C#中添加log4net(日志文件)
1.先下载引用“log4net” 2.然后再App.config配置 3.添加一个LogHandler类 4.在Assemblyinfo类中添加配置的读取文件 5.运用日志文件 6.显示结果
- PowerApp Document
https://docs.microsoft.com/en-us/powerapps/ PowerApp Document: https://docs.microsoft.com/en-us/powe ...
- java中的异常类
Java中的异常: 1. Throwable是所有异常的根,java.lang.Throwable Throwable包含了错误(Error)和异常(Exception),Exception又包含了运 ...
- spring-cloud-Zuul学习(三)【中级篇】--Filter链 工作原理与Zuul原生Filter【重新定义spring cloud实践】
这里开始记录zuul中级进阶内容.前面说过了,zuul主要是一层一层的Filter过滤器组成,并且Zuul的逻辑引擎与Filter可用其他基于JVM的语言编写,比如:Groovy. 工作原理 Zuul ...
- python获取多线程的返回值
import threading class MyThread(threading.Thread): def __init__(self,func,args=()): super(MyThread,s ...
- scala Actor Akka
推荐博客:过往记忆 https://www.iteblog.com/archives/1154.html akka.io
- cadence元件放置方法
在导入网表之后,需要放置元件,介绍几种常见的放置元件的方法和常用的几种元件操作方法.
- layui 表格内容显示更改
在cole 中使用temple 属性进行修改 例: table.render({ elem: '#messageTable' ,id: 'search_table_mId' ,height: 500 ...
- QT中foreach的使用
在标准C++中,并没有foreach关键字. 但是在QT中,可以使用这一个关键字,其主要原因是QT自己增加了这一个关键字,就像slots和signals.emit等一样.增加的foreach关键字在编 ...
- CS20SI-tensorflow for research笔记: Lecture3
本文整理自知乎专栏深度炼丹,转载请征求原作者同意. 本文的全部代码都在原作者GitHub仓库github CS20SI是Stanford大学开设的基于Tensorflow的深度学习研究课程. Tens ...