基于单片机的中药仓库系统设计

2 系统需求分析和总体方案设计

2.1 系统需求分析

建立智能中药仓库的目的是能够实时监控中药饮片存储的实时环境监测和异常情况的自动调控与报警功能。结合智能中药仓库的应用需求及实际可行性,系统详细需求如下:

(1)低成本。这是商业化设计第一考虑要素,便于系统商用化推广。

(2) 安装简单维护方便。该系统采用单片机技术,安装灵活。

(3) 监测节点体积小精度高。可以实现对温度、湿度、二氧化碳的实时监测。

(4) 具有异常自动报警功能。发生异常状况是能够发出警报通知管理人员进行处理。

(5) 可以显示检测数据并设置阈值。

2.2 总体设计方案

根据系统的需求和功能要求,结合嵌入式技术,设计了智能中药仓库系统的总体设计方案。本系统主要的功能是实时监测中药饮片仓库内的温度、湿度、二氧化碳浓度,并且能够自动调节温度湿度。其构成模块较多,涉及传感器模块、显示模块、wifi模块、电路模块等,同时还必须提供一个终端模块实现系统整体操控。

传感器模块,主要承担的就是对现场进行温湿度检测,并将相应数据传输到主控制器上,主控器根据设定的算法将数据反馈到作为显示器的模块上。自动控制启动的依据是先前设定的温湿度阈值,当当前环境温湿度超过或低于设置的温湿度阈值时,自动控制系统便会启动。如果超过了设定值,系统将会发出警报,并且开始自动调控温湿度。用户也可以根据客户端模块获取实时的温度湿度的值,还可以选择是否开启自动调控模式。系统总体结构图如图2-1所示:

图2-1:系统总体方案设计图

3 系统硬件设计

本章主要涉及项目中的硬件部分的具体设计。前文已经提到,此次中药仓库系统设计中,硬件构成主要包括了三种传感器、wifi部分、显示模块、单片机及控制模块等。并且由这些模块组成了本系统的设计原理和实现过程。传感器部分将采集到的数据传输到单片机,由单片机做出判断并将结果发送到显示模块部分,再根据当前环境的具体数值判断是否启动自动控制系统。

3.1 处理器模块设计

本系统将会采用单片机型号为STM32F103C8T6作为核心处理器。该处理器的研发方是ST公司,其内核是ARM公司生产的ARMv7架构的32Cortex-M3微控制内核。从内核上分类可以将STM32分成四大类,分别是Cortex-M0,Cortex-M3,Cortex-M4,Cortex-M7。其中Cortex-M0可以作为入门级产品,具有较低的功耗;而Cortex-M3则是这系列中的基础型,也是本系统采用的型号。这款内核主频为72MHz,具有高性能、低功耗的特点。Cortex-M4主要是以混合信号为特点,主频能够达到180MHz,也具有高性能,低功耗的特性。之后一个就是Cortex-M7,这款内核主打高性能,价格也比较昂贵。

3.1.2 STM32F103C8T6微控制器

STM32F103C8T6 是目前在较小系统开发中使用率较高的一种微处理器,其内核选用的是ARM Cortex-M3,内部程序存储规格数据是64KB[[[] 张瀚中, 曹江涛, 邵鹏飞,等. 基于WSNs的温室大棚智能灌溉控制系统设计[J]. 控制工程, 2019, 26(1):6.]],能够实现的最高工作频率,从数据来看达到了72MHz,适宜工作温度区间是-40℃-85℃。该芯片处理速度快、损耗功率低,能够满足本系统的实时监控、测量状态多等多种需求。图3-1为STM32F103C8T6的最小系统电路图。其研发者是意法公司,具有112个I/O口,与其他相同类型的单片机相比更容易推广。

图3-1 STM32F103C8T6最小系统电路图

4 系统软件设计

4.1 设计原则

需要先提供了较为完整的硬件设计方案后,再开展后续软件设计,该设计环节需要达到系统预期性能标准和功能要求,同时还要确保其结构与运行具有稳健性和逻辑性,整体框架较为精简,同时还要求能够提供更具可能性能够为后续系统升级打下基础的可移植性,并提高运维便捷性和易操作性;[[[] 何希平. 基于STM32的大型粮仓温湿度监控系统设计[D]. 大连理工大学.

]]总体开发原则具有下述几个要点。

(1)明确系统功能诉求和模块化的任务开发。经过需求分析来确定软件的模块化划分,使得软件开发任务分配的更加合理,使得软件开发能够条理分明的研发。

(2)根据需求分析把软件划分成各个模块。软件的模块化分析能够减少重复性的开发工作,强化开发效率,并能够提升代码有用性和可靠性。

(3)代码开发需要具备后续升级可能并有利于维护。开发者要始终坚持标准化编程,这意味着对代码、变量、常量等都能够进行精确注释或定义,且保证格式完整与正确,养成良好的写代码习惯能够让团队中的其他人和后续维护软件的工作人员轻松维护源代码。

(4)软件开发要经过多次调试,探寻其中可能的bug,测试环节中,要设施多种测试条件或模拟多种运行环境进行多角度和多样化调试,尽量找到系统中所有偏差或错误,确保系统稳健性。

4.2 硬件编程环境介绍

Keil MDK-ARM是美国Keil软件公司出品的支持ARM微控制器的一款IDE(集成开发环境)。其是基于工业标准进行研发的,内部组件非常丰富且多元,包括Keil C编译器、内核组件、宏汇编器等多个部分,同时还包含了ARM C/C++编译工作组,目前不管是应用性还是性能性都属于业内领先。支持多系列器件,包括了Cortex和ARM等所属的数个系列等,也支持多数品牌芯片,包括TI、Atmel等。

C语言开发效率高、时间短;具有模块化思维;可移植性好、能够适应大多数开发平台。Keil uVision5具有丰富的函数库和库,使用C语言编译,界面友好,支持Windows界面,容易上手,在本系统中,用于检测控制的主循环的部分关键代码。开发环境如图4-1所示。

图4-1 Keil uVision5开发工具

5 系统测试

在前面的文章中,按照顺序完成了系统的需求分析和总体方案设计;完成了硬件中的传感器模块、显示器模块、处理器模块、网络模块的设计;完成了软件模块中单片机的编程和手机app的编程设计。为了保证系统能够达到之前预期的效果,本章将对硬件电路方面和软件开发方面逐一进行测试。在整个系统测试过程中,也应该遵循模块化的思想依次对各个方面进行测试。达到更好的设计指标,让整个系统达到目标要求。

5.1 系统电路测试

在本文中药仓库系统设计环节中需要进行电路测试, 其中需要根据下述步骤展开:第一步是以不通电模式进行测试,对系统内部连线工作逐一进行检车,且是在不通电条件下进行,按照设计图对照查看线路正确与否,是否存在线路误接或少接等问题。第二步是以通电模式进行测试,不接信号源的条件下,直接将电源连入电路,等其运行一段时间内,观察线路是否存在异常反应,如元件不正常发热、冒烟等情况,一旦发现就必须先切断电源,进行错误排除之后再次上电,同时该项检测环节中,还需要对其中部分关键引脚完成电压测试,其目的在于测试元件指标情况,确保其符合要求。第三步是以分块形式进行测试,也就是基于功能模块进行对应性测试,将它们作为一个个相对独立的板块逐一进行测试,一个板块测完就和另一板块串联起来进行测试,最后达成整体系统测试目标。系统电路运行测试图如图5-1所示。

图5-1 系统电路测试图

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

相关推荐
代码游侠6 小时前
ARM开发——阶段问题综述(二)
运维·arm开发·笔记·单片机·嵌入式硬件·学习
DLGXY6 小时前
STM32——旋转编码器计次(七)
stm32·单片机·嵌入式硬件
羽获飞7 小时前
从零开始学嵌入式之STM32——3.使用寄存器点亮一盏LED灯
单片机·嵌入式硬件
浩子智控8 小时前
商业航天计算机抗辐射设计
单片机·嵌入式硬件
独处东汉11 小时前
freertos开发空气检测仪之输入子系统结构体设计
数据结构·人工智能·stm32·单片机·嵌入式硬件·算法
czy878747512 小时前
机智云 MCU OTA可以对MCU程序进行无线远程升级。
单片机·嵌入式硬件
A9better14 小时前
嵌入式开发学习日志52——二值与计数信号量
单片机·嵌入式硬件·学习
日更嵌入式的打工仔15 小时前
(实用向)中断服务程序(ISR)的优化方向
笔记·单片机
想放学的刺客16 小时前
单片机嵌入式试题(第25)嵌入式系统可靠性设计与外设驱动异常处理
stm32·单片机·嵌入式硬件·mcu·物联网
wotaifuzao16 小时前
STM32+FreeRTOS 长期可维护架构设计(事件驱动篇)-- 告别“屎山”代码
c语言·stm32·嵌入式硬件·freertos·状态机·事件驱动·嵌入式架构