嵌入式系统及应用课程设计——基于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.网络爬虫 ...
随机推荐
- JAVA_AesCBC例子
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.Secre ...
- React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)
最近在学习react时,用到了很流行的UI框架Ant Design,也了解了一下Ant Design Pro,发现它们都有导航组件,Ant Design框架的导航菜单在这里,Ant Design Pr ...
- 关于css中为什么要设置html和body的高度?
1.在怪异模式下,也就是网页的头部不写DOCTYPE的时候,body作为根元素,设置高度为百分百的时候.可以是页面的高度和浏览高度相同,在标准模式下也就是有DOCTYPE的时候,html才是根元素这时 ...
- django 标签的使用
首先重建一个common的app 然后创建__init__使common成为一个包 注意templatetags 名字使固定的 并在下面创建一个名字为fitter的过滤器 注册过滤器app htm ...
- MVC是什么
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...
- 《JavaScript DOM编程艺术》学习笔记(二)
终于开始接着写我的读书笔记了. 17.DOM有insertBefore方法,但并没有提供insertAfter()方法.不过可利用已有的DOM方法和属性编写此函数: function insertAf ...
- Ajax实现聊天室
Ajax实现聊天室 运行效果如下: 代码显示: var net=new Object();//编写构造函数net.AjaxRequest=function(url,onload,onerror,met ...
- 电子科技大学第九届ACM趣味程序设计竞赛(热身赛)题解
比赛地址:http://acm.uestc.edu.cn/#/contest/show/191 A题 小羽涂色 题意: 在x轴的正半轴上,问你是否存在一段区间[L,R]其中包含r个奇数和g个偶数. 分 ...
- monaco editor + vue的配置
monaco editor是vscode的御用编辑器. 功能非常强大,使用方便轻巧,对js\ts等等语言支持都良好,能方便的扩展以支持其他语言或者自定义的特性. 夸了这么多,这里只说它一个问题: 这货 ...
- 算法与数据结构(八) AOV网的关键路径(Swift版)
上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...