news 2026/5/15 6:58:04

第14章实践项目开发——智能温控系统14.5(上)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第14章实践项目开发——智能温控系统14.5(上)

14.5项目实战

开始进入本章的重头戏,也是本书即将结束的综合训练,实实在在的实战项目--智能温控系统。当接到一个具体项目开发任务后,要根据项目做出框架规划,整理出逻辑思路,设计电路图,写出规范的代码,调试代码最终完成功能。

14.5.1项目需求分析

作为一个空调的温控器,基本功能以及使用Kingst51开发板上的电子元件包含:

  1. 显示当前室内温度,使用18B20温度传感器和数码管完成。
  2. 记录当前设定的温度值,以便下次开机直接使用,使用EEPROM完成。
  3. 当室内温度高于设定温度时,启动压缩机开始工作,使用继电器完成。
  4. 当空调压缩机损坏,无法降低室内温度,温度高到一定值,系统报警,使用蜂鸣器完成。
  5. 手动调整制冷温度值和报警温度值,使用按键和数码管和LED小灯完成。
  6. 使用LED点阵显示一个爱心图像。

14.5.2硬件电路布局和选型

设计一个产品,并不是一个所需功能的简单杂乱堆积,而是要从功能设计,产品布局让人用起来更舒服、更愉悦、更符合人性化,这才是一个优秀的设计。比如以Kingst51开发板作为智能温控器的设计参考产品,硬件设计和开发充分考虑的几个方面。

  1. 主控芯片通常放到整个线路板的偏中心位置,方便走线。
  2. 显示部分的LED小灯、数码管和点阵都放到线路板右上方比较醒目的位置。
  3. 按键输入部分,放到线路板的右下角,方便右手按按键。
  4. 继电器、蜂鸣器放到左上方;USB供电和通信放到左下方。

对于器件的选择,考虑的因素有:

  1. 所选器件是否可靠和稳定,根据产品的定位考量。如果是DIY练习为主,器件选择可以能方便购买就行;如果是批量产品,要充分考虑器件品质,能否耐用,长期使用,尽量不选一些最近半年出的新的器件。
  2. 所选器件是否满足批量生产、长期生产的需求。首先避免所选器件为市场淘汰产品,市场上仅有一些二手拆机件,容易造成整个产品次品率大幅提高,生产供应跟不上。其次要确保所选器件厂家的品质和实力,能否确保长期使用不断货。
  3. 选择器件时考虑部分器件是否方便替代,是否可以有备选方案。
  4. 所选器件是否方便生产。原则上能用SMT贴片的,就不选插件的;能选机器完成焊接的,就不能选人工组装的。
  5. 满足稳定可靠的基础上,选择价格合理的,控制整体产品的硬件成本。
  6. 最后还可以有美观上的加分项,比如Kingst51开发板的器件,整个板子设计成红色,需要手动操作的部件包括插针都选了蓝色。

14.5.3程序结构规划

项目需求和硬件规划已经确定,那就要开始研究如何实现所需要的软件功能,程序结构如何组织。一个项目,如果需要参与工作的器件比较多,同时实现的功能也很多,为了方便程序编写和维护,整个程序必须采用模块化编程,也就是每个功能模块对应一个.c文件来实现,这种用法在前边的章节已经开始使用了。一方面,所有的代码堆到一起会显得杂乱无章,更重要的是容易造成意外错误,程序一旦有逻辑上的问题或者功能增加或者程序更新的需求,修改程序代码将是一种灾难。另外一方面,如果一个项目程序很大的时候,可能需要多个程序开发人员共同参与编程,多模块的方式也可以让每位程序员之间的代码最终很灵活的融合到一起。

模块的划分没有什么教条可以遵循,而是根据具体需要灵活处理,就以这个智能温控器项目为例。这个项目在实际开发中算是一个微型产品,所以功能和模块规划也比较简单。

  1. LED小灯、数码管和LED点阵,都是显示部件,因此合并一个功能模块led.c。
  2. 矩阵按键驱动部分程序代码,作为单独的功能模块keyboard.c。
  3. 温度传感器作为一个独立的功能模块DS18b20.c。
  4. 虽然EEPROM和I2C在本项目中是一起用的,但是依然做成了两个模块,方便做成通用的程序用来移植。
  5. 系统工作模式分为三种模式:正常工作模式,设置继电器动作温度和设置蜂鸣器报警温度,主程序不断地扫描目前系统所处的模式,扫描按键并执行相应的动作,同时主程序定时扫描进行温度显示。

随着程序量逐步增多,程序功能逐步增强,对于程序的划分需要逐步有分层的思路。其中按键、LED、I2C、EEPROM、18B20这些都属于底层驱动的范畴,它们要共同为上层应用服务,那么上层是什么呢?就是根据最终需要显示的效果来调度各种驱动函数,根据按键的输入来实现模式切换和温度调整,并且控制系统进行继电器动作和蜂鸣器报警动作,这些都属于应用层的功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 6:57:21

Android Studio智能编码新体验:盘点几款媲美ChatGPT的免费AI助手

1. Android Studio开发者的AI助手新选择 最近两年AI编程助手的爆发式增长,让我这个老Android开发者都感到惊讶。记得刚开始用Android Studio时,连基本的代码补全都不够智能,现在却能直接让AI帮我写完整段逻辑。更让人惊喜的是,除了…

作者头像 李华
网站建设 2026/5/15 6:55:16

提示词架构设计:从字符串到组件化系统的工程实践

1. 项目概述:当提示词也需要“架构师”在AI应用开发,尤其是大语言模型(LLM)驱动的项目中,我们常常面临一个核心矛盾:一方面,我们希望提示词(Prompt)足够强大、灵活&#…

作者头像 李华
网站建设 2026/5/15 6:46:06

GPT-CLI:命令行AI助手集成与开发工作流优化实践

1. 项目概述:一个让GPT在终端里“活”起来的命令行工具如果你和我一样,日常开发、写作、调试代码都离不开终端,那你肯定也幻想过:要是能把那个强大的GPT助手直接“塞”进命令行里,让它成为像ls、grep一样随手可用的工具…

作者头像 李华
网站建设 2026/5/15 6:41:22

数据结构--------单链表下

书接上回,本章主要讲的是单链表的头删,尾删,指定位置插入删除,链表的查找和链表的销毁;一.链表的操作1.头删文字描述如下:正所谓头删,删除的肯定是链表的头元素,但是我们要怎么样进行…

作者头像 李华
网站建设 2026/5/15 6:29:17

一分钟为 Hermes Agent 配置 Taotoken 后端服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 一分钟为 Hermes Agent 配置 Taotoken 后端服务 如果你正在使用 Hermes Agent 进行 AI 应用开发,并希望它能调用 Taoto…

作者头像 李华