单片机设计智能电子秤设计
随着物联网技术的发展,传统电子秤已难以满足数据远程管理、长期记录的应用需求,为此本文设计了一款集称重、显示、数据存储与远程上传于一体的智能电子秤。本设计以STM32F411CEU6为核心控制器,搭配电阻应变式称重传感器与 HX711 24位高精度A/D转换芯片完成重量信号的采集与数字化处理;采用TFT LCD 屏幕实现称重数据与系统状态的本地实时显示,通过ESP8266 WiFi模块构建无线通信链路,实现数据向物联网云平台的远程上传;软件层面移植RT-Thread实时操作系统,完成多任务调度,开发了数据采集、显示驱动、WiFi传输等核心程序,实现各功能模块的协同运行。系统测试结果表明,该智能电子秤称重范围为10g~10kg,测量误差控制在±5g内,响应时间小于1秒,可稳定实现重量测量、数据本地显示与云端上传功能,且软硬件模块耦合度低、扩展性强,能够满足家庭健康管理、小型商业称重等场景的使用需求,相比传统电子秤实现了数据的智能化、可追溯化管理,具有良好的实用价值。
关键词:智能电子秤;STM32;HX711;ESP8266;RT-Thread;物联网
With the development of the Internet of Things (IoT) technology, traditional electronic scales can hardly meet the application requirements of remote data management and long-term data recording. To address this issue, this paper designs an intelligent electronic scale integrating weight measurement, data display, local storage and remote upload functions. The design adopts STM32F411CEU6 as the core controller, and combines resistance strain gauge weighing sensors with the HX711 24-bit high-precision A/D conversion chip to complete the acquisition and digital processing of weight signals. A TFT LCD screen is used for the local real-time display of weighing data and system status, and a wireless communication link is established via the ESP8266 WiFi module to realize the remote upload of data to the IoT cloud platform. At the software level, the RT-Thread real-time operating system is ported to achieve multi-task scheduling, and core programs for data acquisition, display driving and WiFi transmission are developed to realize the coordinated operation of each functional module. System test results show that the intelligent electronic scale has a weighing range of 10g to 10kg, with the measurement error controlled within ±5g and the response time less than 1 second. It can stably realize the functions of weight measurement, local data display and cloud upload. In addition, the hardware and software modules feature low coupling and high expandability, which can meet the application needs of scenarios such as household health management and small-scale commercial weighing. Compared with traditional electronic scales, it realizes the intelligent and traceable management of data, and has good practical value.
Key words:Intelligent electronic scale; STM32; HX711; ESP8266; RT-Thread; Internet of Things (IoT)
物联网技术飞速发展并不断普及,传统测量设备正在经历一场深刻的智能化变革,电子秤属于生活中必不可少的计量工具,它的应用场景由单一的重量测量拓展到智能零售,健康管理,物流储存等诸多领域,在健康管理领域,伴随人们健康意识的增强,体重监测成了日常健康管理的关键部分。传统的电子秤只能给出单次称重的数据,无法做到数据的长期保存以及趋势分析,在商业应用上,智能零售和无人售货形式日益兴起,这就对称重设备有了联网并上传数据的新需求,而且,工业生产和物流业也须要随时观察和追溯称重数据。 设计一款可达成称重数据自动采集,本地显示并远程上传的智能电子秤具备重要的现实意义与应用价值。
本设计依靠嵌入式技术并结合物联网云平台来做到称重数据的智能运作,选取 STM32F4 系列高性能微控制器作为核心处理器,此芯片具备很强的处理能力与多种外设接口,可以满足多任务即时处理的要求,挑选 HX711 高精度 A/D 转换芯片去获取称重传感器的信号,该芯片有着 24 位采样精度且自带放大电路,能有效地保障称重数据的准确度。经由 ESP8266 WiFi 模块把称重数据传送到物联网云平台,用户就能随时登陆平台查阅历史数据,从而达成对数据执行远程访问及管理的目标,整个系统利用 RT - Thread 实时操作系统来执行任务调度,使得数据采集,显示,上传等任务得以高效而协同地运行。 这种设计既能满足日常称重需求,又能给后续的功能拓展和性能改良构筑较好的软硬件根基。
国外在智能称重技术方面开始得比较早,投入的研发资金量大,技术沉淀比较深,欧美发达国家在传感器制作,信号处理以及系统整合上处于优势地位,它们已经创建起比较完善的智能称重产品体系。美国,德国以及日本这些国家的一些知名企业在高精度称重传感器和智能仪表方面有着突出的优势,它们的产品在测量精度,稳定性和可靠性方面表现良好,在工业应用上,国外把称重系统和生产运作系统紧密结合起来,称重数据能够直接输送到企业的资源计划和制造执行系统当中,给生产过程的数字化和智能化给予数据支持。 在商业应用方面,智能称重收银一体化系统被广泛用在超市和零售门店,达成了称重,计价,结算流程的自动化。而在健康守护领域,国外智能体脂秤产品已具备多参数检测和云端数据同步的功能,用户能够经由手机应用查看体重变化趋向和健康建议。
国外有关物联网技术和称重设备关联的研究更多着眼于系统的开放性与互操作性,不少智能称重产品符合标准的物联网通信协议,可以与主要云平台及智能家居系统紧密对接,在数据处理上,国外企业着手把人工智能技术运用到称重数据分析当中,利用机器学习算法对测量数据执行智能处理并实施异常检测,从而改善系统的智能化水平,国外在低功耗设计上也有明显发展,一些便携式智能称重设备利用低功耗无线通信技术,能够依靠电池长时间供电工作,进而适应移动应用环境,不过,国外高端智能称重产品的售价偏高,这在某种程度上制约了它们在成本敏感型市场里的推广与应用。
近些年来,物联网产业极速发展,国家有力支撑智能制造,国内智能称重技术研究取得了很大的提升,国内企业和科研机构在称重传感器,信号处理,系统融合等方面具备了自主技术能力,其产品性能和可靠性持续优化。在国内研究的技术路线当中,更重视成本控制和实用价值,于是针对不同的应用场景研制出许多种智能称重解决方案,在消费电子领域,国内智能体脂秤产品快速发展,有些品牌有着很强的市场竞争力,它们的产品功能包含对诸多健康指标(比如体重,体脂率,肌肉量等)展开测量,并执行云端管理。 在工业应用方面,国内企业研发的智能称重仪表具有数据收集,本地储存,网络通信等功能,可以满足绝大多数工业现场的使用需求。
在物联网技术的应用上,国内的研究更多着眼于同本土云平台的融合,阿里云,腾讯云,百度云这些国内的云服务供应商给予了完备的物联网平台支撑,使得智能称重设备的数据上传以及云端运作更为便捷。国内的研究人员做了许多工作来提升植入式系统的设计,改良无线传送协议,并改善低能耗设计,于是便收获了诸多操作经验,从学术研究来讲,依靠 STM32 和 HX711 设计电子秤在国内的嵌入式系统课程及毕业设计里属于比较常见的选题,有关研究朝着功能达成,系统改进和应用拓展方向逐步推进,不过,和世界发达国家相比,国内在高精度传感器制作,系统长久稳定性和标准化方面还是存在一些差距,要进一步加大基础研究力度并推动其向产业化方向发展。 本设计参考国内外研究成果之后,利用 RT - Thread 操作系统来执行任务管理,做到了称重数据采集,本地显示以及 WiFi 远程上传这些功能,具备一定的实用价值与参考意义。
本设计着眼于智能电子秤系统软硬件的达成,其主要研究内容涵盖系统总体方案设计,硬件电路设计,嵌入式软件设计以及系统检测这四个方面,在系统总体方案设计这个层面,首先要针对智能电子秤的功能需求实施分析,从而明确系统须要达成的称重计量,数据显示,数据存储以及远程上传等关键功能。按照功能需求来确定系统的性能指标,包含称重范围,测量精度,响应时间以及通信距离等技术参数,凭借这些参数去设计系统的总体框架,划分各个功能模块,并明确模块之间相互传递数据的关系,进而规划出系统的完整运作流程。
在硬件电路设计上,选取了 STM32F411CEU6作主控芯片,针对这个芯片来规划最小系统电路,其中牵涉到时钟电路,复位电路以及下载调试电路。称重采集模块采取电阻应变式传感器结合 HX711 A/D 转换芯片这样的设计方案,规划传感器信号调理电路和数字接口电路,显示模块挑选了 TFT LCD 屏幕,利用 SPI 接口同主控芯片相接,做到称重数据在本地的显现,无线通信模块选定的是 ESP8266,经由串口与主控芯片展开通信,达成把数据上传到物联网云平台的目的,而且规划了按键输入电路和电源守护电路,给整个系统赋予稳定可靠的运行环境,还完成了 PCB 电路板的总体设计。
在嵌入式软件设计上,采用 RT - Thread 实时操作系统来执行软件平台搭建,从而做到多任务的调度与经营,要编写 HX711 推动程序以及称重数据采集程序,以达成获取传感器信号并实施重量换算的目的,还要编写 LCD 显示推动程序,用以完成数据显示界面的设计及其更新操作,另外,也要编写 ESP8266 推动程序,以做到 WiFi 网络的连接,并具备数据上传能力,经由合理规划各项任务并设定相应的优先级,使得各个功能模块得以协同运作,在系统检测环节,则需针对每个功能模块展开单独检测,还要做系统联合调试,以此去核实称重精度,显示效果以及网络输送的可靠性,保证该系统符合预先制定的设计目标。
本设计要达成的智能电子秤系统需有四项主要功能,即称重测量,数据显示,数据保存以及远程上传。称重测量属于系统的基本功能,要精确测出放在秤盘上的物品重量,并把传感器产生的微小电信号转为成数字形式的重量值,测量时需稳定且抗干扰,防止因环境或者机械抖动造成测量失误,数据显示功能得即时把所测到的重量值显在LCD屏上,显示效果要清楚易懂,方便使用者查看,从实用角度出发,显示内容除当前重量值外,还可以有测量单位,数据保存状况以及网络关联状况之类的附加信息。
本设计的数据保存功能有别于传统电子秤,用户经由按键操作来保存当下的称重数据,所保存的数据需存入本地或者依靠无线网络上传到云端。此功能可让用户记录并比较多次的称重结果,符合健康管理或者商业应用方面的数据记录需求,要达成远程上传功能,系统就得依靠 WiFi 模块连接互联网,把保存的称重数据传递给物联网云平台,用户可以借助电脑或者手机登录云平台,随时查看过往的称重数据,从而做到对测量数据的远程访问与管理,这样一种设计冲破了传统电子秤数据孤岛的局限,令称重数据变成可追溯,可剖析的信息资源。
系统除具备前面述及的核心功能之外,还要有较好的用户交互体验,按键操作需反应灵敏,按键反馈要清晰可见,显示界面的设计得合理恰当,关键信息应该明显显现出来,系统应具有一定的容错能力,当传感器出现故障或者网络连接中断的时候,可以给予提示信息,并保留主要功能的运行状态,站在系统整体的层面看,各个功能模块之间应当相互协作配合,数据采集,显示更新,按键判断以及网络传送等工作任务要有条不紊地安排好,防止发生资源争用以及响应迟缓的情况,遵照前面所述的功能需求来展开分析,此设计就选定以 STM32 微控制器作为核心器件,把称重传感器, LCD 显示屏, WiFi 模块和按键输入整合到一起形成一个完整的方案。
按照智能电子秤的应用场景以及功能需求,本设计制订了如下性能指标要求,称重范围属于电子秤最基本的性能参数,该设计针对日常物品称重以及人体体重测量这样的场景,把最大称重值设置成10千克,最小称重值设为10克,这个量程范围可以涵盖厨房称重,包裹称重以及部分健康管理场景的需求。测量精度是衡量电子秤质量的重要指标,本设计采用高精度称重传感器和24位 A/D 转换芯片,要求系统测量误差控制在正负5克之内,高精度设计既能满足日常使用需求,又为后续也许会发生的功能拓展形成了性能根基。
响应时间指标表明,系统需在物体置于秤台之后,并且显示屏显示出稳定的重量值前历时不超过1秒,此指标要借助改良传感器信号稳定时延,A/D转换时延以及数据处理时延而达成,系统启动时间方面,则是从通电起到系统转入正常工作状态所历经的时延不可超出3秒,这里面牵涉硬件初始化以及系统任务生成等阶段,针对WiFi结合和上传功能而言,其响应时间要在网络状况良好的情形之下,从启动上传动作直至数据得以送达云平台这个时间段别低于5秒,至于通信距离指标来讲,ESP8266模块处于STA模式的时候,它同路由器之间的有效通信距离至少应当达到10米,这样才能符合普通家庭及办公场所的使用需求。
系统采用USB供电方式,工作电压为5伏,其正常工作电流需控制在200毫安之内,若应用场景要长时间通电运行,则低功耗有益于提升系统的稳定性及其使用寿命。就显示性能而言,TFT LCD屏幕分辨率不得低于128×160像素,从而清晰显示重量数值和辅助信息,屏幕亮度可调或者具备背光控制功能,这样才能符合不同环境光照情况下的使用需求,系统还要有良好的环境适应性,其可在0至50摄氏度的环境温度区间内正常运行,并具有一定抗电磁干扰的能力,以保证在常见电磁环境下测量结果的稳定性与可靠性。
本设计以模块化设计思想为参照,把智能电子秤系统分解为五大核心部分,即主控模块,称重采集模块,显示模块,通信模块以及人机交互模块。这些模块经由清晰界定的接口来实施数据交互并协作运行,其中,主控模块以 STM32F411CEU6 微控制器为核心,充当整个系统的指挥核心,承担调度各模块工作顺序,整理收集到的数据,回应用户指令以及支配数据上传的任务,此芯片所搭载的 ARM Cortex - M4 内核可达到高达 100MHz 的时钟频率,内置 512KB 的 Flash 存储空间与 128KB 的 RAM 存储空间,具备诸多外部设备接口,可以适应多任务随时处理的情况,而且主控模块当中还设有时钟电路,复位电路以及程序下载调试电路,给系统运行给予基本的支撑。
称重采集模块包含电阻应变式称重传感器以及HX711 A/D转换芯片,传感器以桥式电路结构为基础,当秤台承受压力的时候,应变片电阻产生变化,桥式电路就会输出与重量呈正比的差分电压信号。这个信号十分微弱,其幅值处于毫伏等级,必要经过放大以及模数转换之后才有可能被微控制器所处理,HX711芯片内置有可编程放大器以及具有24位精度的A/D转换器,可以将传感器发出的微弱信号径直转化为数字量,并经由简单的数字接口同微控制器开展交流,这样的设计构思精简了模拟电路的设计流程,优化了系统的抗干扰性能与测量精度。
显示模块配备的是TFT LCD彩色屏幕,它经由SPI串行接口同主控芯片相接,与并行接口相比,SPI接口所占有的引脚数目较少,其关联更为简单,非常契合那些引脚资源较为紧缺的嵌入式应用场景。通信模块选择了ESP8266 WiFi芯片,此芯片已经整合了TCP/IP协议栈,并符合802.11 b/g/n无线标准,借助串口与主控芯片形成对接,便能够轻松达成WiFi网络的接入以及数据的传送,人机交互模块包含按键输入以及状态指示这两个方面,用户可凭借按键来做数据保存之类的操作,而系统则经由屏幕显现以及也许会有的声光提示来给予用户关于自身当前状况的反馈信息。 人机交互模块由按键输入和状态指示这两部分形成,用户可通过按键执行数据保存等操作,系统则凭借屏幕显示及可能的声光提示向用户反馈自身状况,电源模块向整个系统赋予稳定的工作电压,把输入的5V电压转变成3.3V以供各个芯片使用,各个模块相互配合,一起达成智能电子秤的各种功能。
智能电子秤系统的工作流程存在五个主要阶段,它们分别是系统初始化,称重测量,数据显示,数据保存以及远程上传,系统初始化属于上电之后最先开展的流程,其中包含硬件初始化与软件初始化这两部分。在硬件初始化这个阶段,微控制器首先会设置系统时钟,并安排好各个外设的工作模式及参数,涉及到GPIO引脚功能的设置,串口参数的调定,SPI接口的初始化等等事务,接着再去做HX711芯片,LCD屏幕以及ESP8266模块的初始化处理,以使各类硬件模块能够正常运转,而在软件初始化阶段,RT-Thread操作系统启动起来并且做到自身内核的初始化工作,创建起负责数据采集,显示更新,按键检测以及网络传递之类任务的线程,指定好这些任务的优先顺序以及时间分配情况,然后开始运行任务调度机制,这样系统就进入了正常的运作模式当中。
系统正常运行时,称重测量任务会按时执行数据采集工作,数据采集流程先由HX711芯片读取传感器产生的数字信号,传感器存在零点漂移和非线性特点,所以采集到的原始数据需经数字滤波及标定换算才可转为成实际重量值。数字滤波可选用均值滤波或者滑动滤波算法,此算法能有效地抑制测量过程中的随机噪音,而标定换算要借助已知重量来做校准,从而形成起传感器输出值与实际重量间的线性联系,处理过后得到的重量值会被存放在共享数据区,供显示任务和保存任务调用。
显示任务要随时把处理过的重量值更新到LCD屏幕上,还要显示网络状态,保存状态之类的辅助信息,显示刷新的频率需和数据采集频率相适应,既得保证显示的即时性,又不能因为刷新频率太高而使处理器不堪重负。按键检测任务一直在监测按键的状态,一旦察觉到有效的按键操作,系统就会把当前的重量值保存到本地缓存当中或者立刻引发上传过程,远程上传任务专门负责维持WiFi的连接以及数据的传递,只要有数据要上传的时候,这个任务就会先查看WiFi的连接状况,如果没有连上,则会去尝试连接预定的网络,等到连接成立之后,再依照云平台所规定的格式来包装数据并发出。 整个工作流程当中,RT - Thread操作系统承担任务调度及运作的任务,使得各个任务依照自身的优先级与时分片有序开展,保障系统的时效性和稳定性。
第三章 系统硬件设计与实现
智能电子秤系统的硬件设计需遵照模块化,可靠性和可扩展性这些基本准则,模块化准则是要将系统拆解为具备确切功能,接口明晰的独立模块,这样就能方便各个模块单独执行设计,调试操作,并实施后期的守护。可靠准则是要充分考量硬件电路设计中的防干扰手段,比如电源去耦,信号屏蔽以及地线设计之类的情况,从而保证系统不论处于何种环境时都能稳定运行,可扩展准则是要给硬件接口保留一些余量资源,如此一来才方便日后提升功能并改善性能,按照这些准则,这个设计把硬件系统分成主控模块,称重采集模块,显示模块,通信模块,人机交互模块和电源模块这六大板块,它们经由标准接口相互关联,便合成了一套完整的硬件架构。
主控模块采用STMC32F411CEU6这款核心处理器,此芯片的性能与功耗比较适配,其外设资源也很丰富,可以满足智能电子秤对数据处理以及多任务守护方面的需求,依照主控芯片去规划最小系统电路,这里面包含供电电路,时钟电路,复位电路以及程序下载调试电路等部分,称重采集模块决定用电阻应变式传感器再结合HX711芯片的方案,传感器把重量转变成电信号,而HX711负责信号放大及模数转换,并直接把数字量发送给主控芯片,这样就简化了模拟信号处理电路,显示模块则采用了1.44英寸的TFT LCD显示屏,它经由SPI接口同主控芯片相接,其分辨率为128×128像素,可以清楚地显示出重量数值以及系统状况。
通信模块选取了ESP8266芯片,此芯片属于业内常见的Wi - Fi解决方案,具备诸多长处,比如成本较低,功耗较小,开发资源比较丰富等。它经由串口同主控芯片相接,主控芯片发送AT指令就能够控制模块去做网络关联和数据输送的事,人机交互模块包含按键输入和状态显示这两部分,按键起到触发数据保存及上传的功能,而状态显示则是借助显示屏来达成的,电源模块会把从USB得到的5V电压转变成3. 3V,给各个芯片供电,而且设计合理的电源滤波电路,减轻电源噪声给模拟信号采集带来的影响,PCB电路设计采用两层板结构,妥善安排各功能模块,改良信号走向和地线设计,保障信号的完整性以及电磁兼容性。
STM32F411CEU6是意法半导体公司推出的高性能ARM Cortex-M4微控制器,本设计选用该芯片作为系统主控核心。该芯片采用Cortex-M4内核,支持数字信号处理指令和单精度浮点运算单元,最高工作频率可达100MHz,具有较强的数据处理能力。芯片内置512KB的Flash存储器和128KB的SRAM存储器,能够满足程序代码存储和运行期数据存储的需求。丰富的外设资源是该芯片的另一重要特点,包括多个通用定时器、高级控制定时器、USART串口、SPI接口、I2C接口和12位ADC等,可以方便地连接各种外部设备。
图3-1 STM32F411CEU6主控芯片电路原理图
在引脚资源方面,STM32F411CEU6采用UFQFPN48封装,具有36个可用I/O引脚。这些引脚可配置为多种功能模式,满足不同类型外设的连接需求。本设计中,部分引脚用于SPI接口连接LCD屏幕,部分引脚用于串口通信连接ESP8266模块,部分引脚作为普通GPIO连接按键和状态指示,还有引脚用于连接HX711芯片的数据和控制信号。芯片内置的时钟系统支持多种时钟源,包括内部RC振荡器和外部晶振,可以根据应用需求灵活配置系统时钟频率。低功耗特性是该芯片的又一优势,支持睡眠、停机和待机多种低功耗模式,适合电池供电的便携式应用场景。
时钟电路对于微控制器来说极为关键,它给系统赋予统一的时序参照,STM32F411CEU6内置了RC振荡器,这个振荡器能够生成大约16MHz的HSI时钟以及大概32kHz的LSI时钟。不过,内部RC振荡器的精准度比较低,而且受温度和工作电压的影响很大,要是应用场合对时序控制和串行通信比较敏感,那就最好采用外部晶振,这会更为稳妥,本设计给系统安排了25MHz的高频外部晶振当作主要时钟源,还设置了一个32. 768kHz的低频晶振来完成实时时钟功能,高频晶振供应准确的系统时钟标准,经由内部锁相环倍频之后就能得到100MHz的系统主频,从而确保处理器高效运行。
晶振电路设计需留意诸多技术要点,晶振两端要接上合适容量的负载电容,以此同晶振的等效电感形成谐振回路,保证晶振平稳起振且频率准确无误,本设计依照晶振规格来选,20pF的陶瓷电容当作负载电容。晶振电路在PCB布局的时候尽量靠近芯片的OSC_IN和OSC_OUT引脚,削减走线的长度,免除出现寄生电容和电磁干扰,晶振下方不可有其他信号线经过,晶振外壳可以接地从而减小外部干扰,32.768kHz的晶振用作实时时钟功能,给系统赋予日历时间以及定时唤醒功能,它的电路设计和高频晶振相似,也得要设置恰当的负载电容。 两路晶振电路彼此独立,分别满足不同功能需求。
图3-2 晶振电路原理图
复位电路用于在系统上电或异常时将微控制器恢复到确定的初始状态。STM32F411CEU6具有内置的上电复位和掉电复位功能,但在实际应用中,仍需要设计外部复位电路以支持手动复位操作。本设计采用阻容复位电路与手动按键相结合的方式,复位引脚通过10千欧电阻上拉至3.3V电源,同时连接一个10微法电容到地。上电时,电容充电过程使复位引脚保持一段时间的低电平,确保芯片完成内部初始化。手动复位时,按键按下将复位引脚短接到地,触发复位操作。复位引脚内部还集成了施密特触发器和滤波电路,能够有效抑制复位信号的抖动干扰。
图3-3 复位电路原理图
程序下载调试电路在嵌入式系统开发当中十分关键,本设计利用 SWD 两线调试接口来做程序下载及在线调试,同 JTAG 接口相比,SWD 接口只需要 SWDIO 和 SWCLK 这两个引脚,引脚资源所占比例低,而且接线比较简便。SWD 接口要接到标准的 4 针调试插头上,其中分别对应着电源,地,数据线以及时钟线,在 PCB 布局的时候,SWD 接口最好放在板子的边缘部位,这样便于调试器去接入。想要保证下载和调试过程稳定可靠,就要让 SWDIO 和 SWCLK 这两条信号线尽可能短,并远离那些产生高频干扰的源头,如果有必要,可以在这两条线上串联上阻值较小的电阻来压制信号反射现象,在实施程序下载之际,调试器经由 SWD 接口去访问芯片内部的 Flash 存储区域,把经过编译好的程序代码写进芯片里面,等写入工作结束之后,系统便会从 Flash 中开始运行用户自行编写好的程序代码并展开相应动作。
图3-4 程序下载调试电路图
电阻应变式称重传感器是利用电阻应变片将重量转换为电信号的测量元件,是电子秤的核心部件。应变片的工作原理基于金属导体的应变电阻效应,即导体在机械变形时其电阻值发生变化的物理现象。当应变片粘贴在弹性体表面时,弹性体在受力后产生形变,应变片随之拉伸或压缩,导致其电阻值发生变化。对于金属应变片,拉伸时电阻增大,压缩时电阻减小,电阻变化率与应变成正比关系。利用这一原理,通过测量应变片电阻的变化量,就可以间接测量施加在弹性体上的力或重量。
图3-5 称重传感器内部应变片连接示意图
称重传感器想要提升测量灵敏度并加强温度补偿能力,往往把四个应变片串联成惠斯通电桥的形式,这个电桥包含四个电阻,两个应变片贴合在弹性体的受拉部分,另外两个则贴合在受压部分,在没有加載的情况下,电桥维持平衡状态,输出电压为0伏特,当秤台承压的时候,受拉部分的应变片电阻变大,而受压部分的应变片电阻变小,电桥就此打破原有平衡,产生一个与所施加力大小成正比的微小电压差值信号。 这种差动电桥结构存在两大明显优势,其一,其输出电压灵敏度是单臂电桥的两倍,其二,它可以有效地消除由于温度变化造成的电阻漂移现象,这是因为温度对四个应变片的作用相互抵消。
桥式测量电路由四个电阻应变片按照惠斯通电桥方式连接而成,将重量引起的电阻变化转换为电压信号输出。电桥的两个输入端施加稳定的激励电压,两个输出端输出差分电压信号。在无负载状态下,电桥各臂电阻相等,输出差分电压为零。当秤台承受负载时,粘贴在弹性体上的应变片发生形变,导致电桥各臂电阻值产生差异变化,从而输出与负载成正比的差分电压。该差分电压的幅值非常微小,满量程输出通常只有几毫伏到十几毫伏,需要经过放大处理才能进行模数转换。
图3-6 桥式传感器测量电路原理图
桥式测量电路的设计需要关注几个关键技术要点。激励电压的稳定性直接影响测量精度,因此需要为电桥提供稳定的直流电压,通常采用高精度稳压源或参考电压源供电。电桥输出信号中除了有用信号外,还包含共模噪声和工频干扰,因此后续放大电路需要具有较高的共模抑制比,能够有效抑制共模干扰而放大差模信号。温度补偿是桥式电路的另一个重要考虑因素,虽然差动电桥结构具有一定的温度补偿能力,但在高精度应用中,还需要配合软件温度补偿或采用自补偿应变片来进一步减小温度漂移的影响。本设计中电桥输出信号直接接入HX711芯片,由芯片内部的可编程放大器完成信号放大。
HX711是专为高精度电子秤设计的24位A/D转换芯片,本设计选用该芯片完成称重信号的数字化处理。HX711内部集成了可编程增益放大器、24位Sigma-Delta型ADC和数字控制逻辑,具有集成度高、使用简单、抗干扰性强等优点。芯片提供两个可选输入通道,通道A的增益可设置为64或128,对应满量程输入电压范围为±40mV或±20mV,适合连接称重传感器的差分输出信号。通道B的增益固定为32,可用于系统参数检测。芯片内部还集成了稳压电源,可以直接向外部传感器和ADC提供参考电压,简化了外围电路设计。
图3-7 HX711模块接口连接图
HX711和微控制器之间的通信依靠简单的两线串行接口,其中PD_SCK引脚负责接收微控制器所发送的时钟脉冲,而DOUT引脚则用以输出转换结果。数据读取包含两个阶段,第一阶段为微控制器持续监测DOUT引脚的状态,此引脚一旦转为低电平就表明转换已然完成,此时就可以启动数据读取流程。第二阶段由微控制器向PD_SCK引脚施加24个时钟脉冲,期间DOUT引脚会在每个时钟脉冲的下降沿输出一位数据,并从高位起始顺序输出总共24位的转换结果,第25个时钟脉冲被用来选定下次转换的通道及其放大倍数,该种接口无需复杂的协议栈,而且所占引脚数量较少,很符合那些资源比较有限的嵌入式应用场景,经过偏移校正以及标度变换之后,就能够得到真实的重量数值。
图3-8 HX711 内部方框图
显示模块是人机交互的重要界面,负责向用户呈现称重结果和系统状态信息。本设计选用1.44英寸TFT LCD彩色屏幕作为显示设备,该屏幕具有分辨率高、色彩丰富、视角宽等优点。屏幕分辨率为128×128像素,采用65K色显示,能够清晰展示重量数值、单位符号和辅助图标。屏幕尺寸适中,既保证了显示内容的可读性,又不会过多增加系统体积。显示区域能够同时显示当前重量值、数据保存状态、网络连接状态等信息,用户可以通过屏幕直观了解系统工作状态。
图3-9 TFTLCD显示模块图
该LCD屏幕装有驱动芯片,用户不必在意液晶面板确切的激发时序,要显示内容时,经由SPI接口向驱动芯片传送指令和数据就行了,它预存了多种显示模式,全彩色模式,部分色彩模式等等,按照自身需求来选择就行,屏幕背光依靠LED照明,可以利用PWM信号调节亮度,从而顺应不同环境光条件下的使用需求,在低功耗应用情况下,可以关闭背光或者减小亮度来节省电力,屏幕的工作电压是3.3V,这与主控芯片的逻辑电平相契合,无需增加额外的电平转换电路,大致来讲,该屏幕在显示效果,接口便捷性以及成本之间达成了较好的兼顾,符合本设计的应用需求。
TFT LCD屏幕同STM32主控芯片经由SPI串行接口开展通信,该接口具备接驳简易,传送速率较高,所占引脚数量较少等长处,SPI接口存在四条信号线,其中片选信号用来挑选屏幕设备,时钟信号给予数据传送时的同步时钟,主机输出从机输入线用以使主控芯片向屏幕发送指令与数据,在当前此设计当中并未利用主机输入从机输出线,原因在于屏幕无需向主控芯片反馈数据。 屏幕需另有若干控制信号线,即命令数据选择线与复位线,命令数据选择线用以辨别当下的传送内容是命令还是数据,复位线则负责给屏幕推动芯片执行硬件复位操作。
在引脚结合上,本设计把LCD屏幕的片选引脚接到STM32的PB15引脚,时钟引脚接到PB13引脚,数据引脚接到PB14引脚,命令数据选择引脚接到PA8引脚,复位引脚接到PA11引脚,背光控制引脚接到PB0引脚,可以凭借PWM输出来调节屏幕亮度,所有的结合都是利用普通的GPIO引脚来做软件模拟SPI时序,这种方法即便耗费了一些处理器时间,但是引脚的选择更为灵活,而且没有占到硬件SPI外设,这样就比较方便与其他设备一起分享总线资源,在PCB布局的时候,LCD接口应该放在离主控芯片比较近的地方,信号线最好是并行且等长,从而减小信号传送时延的差别。
ESP8266是乐鑫公司推出的一款低功耗、高集成度的WiFi芯片解决方案,本设计选用该模块实现智能电子秤的无线联网功能。ESP8266芯片集成了TCP/IP协议栈和802.11 b/g/n无线网络协议,支持STA、AP和STA+AP三种工作模式。芯片内部集成 Tensilica L106 32位处理器,主频可达160MHz,内置SRAM和Flash存储器,可以独立运行网络协议栈和应用代码。模块通过串口与外部主控芯片通信,主控芯片发送AT指令即可控制模块完成WiFi连接、数据传输等操作,开发门槛较低。
图3-9 ESP8266WIFI电路图
ESP8266支持的工作模式各有特点,适用于不同的应用场景。STA模式下,模块作为无线客户端,可以连接路由器或其他接入点提供的WiFi网络,通过路由器访问互联网,实现设备远程数据上传和云端通信。AP模式下,模块自身作为无线接入点,其他设备可以直接连接模块,实现局域网内的设备控制。STA+AP模式同时支持两种功能,模块既可以连接外部网络,又可以作为热点供其他设备接入。本设计中,智能电子秤需要将数据上传至物联网云平台,因此选用STA工作模式,通过家庭或办公场所的WiFi网络实现互联网接入。
本设计采用STA模式作为ESP8266的工作模式,在此种模式下,模块以WiFi客户端的身份去连接指定的无线路由器。其联网流程包含四个阶段,即扫描,认证,关联以及获取IP地址,模块会先对周边存在的无线网络实施扫描,并得到各个网络的SSID及其信号强度相关情况,由主控芯片凭借AT指令来确定要连接哪个网络及其对应密码之后,模块便会向所选网络的接入点发出认证请求,当完成认证之后便能够达成关联,之后模块经由DHCP协议向路由器提出获取IP地址的申请,一旦拿到IP地址就宣告实现了网络接入,从而可以利用TCP或者UDP协议同互联网上的服务器执行通信。
图3-10 STA模块原理图
在数据上传方案设计上,本设计采用TCP协议连接物联网云平台。TCP协议提供可靠的面向连接的数据传输服务,保证数据能够完整准确地送达服务器。连接建立时,主控芯片通过AT指令让ESP8266发起TCP连接,指定云平台的IP地址和端口号。连接建立成功后,主控芯片将需要上传的称重数据按照约定的格式封装,通过串口发送给ESP8266,模块将数据通过TCP连接发送到云平台。云平台接收到数据后进行解析和存储,用户可以通过Web界面或手机App访问和查看历史数据。为了保证连接的稳定性,程序中加入了断线重连机制,当检测到网络连接断开时自动重新连接。
ESP8266模块与STM32主控芯片之间通过串口进行通信,这种连接方式简单可靠,广泛应用于嵌入式系统。模块的TXD引脚连接STM32的RX引脚,用于模块向主控发送数据和响应信息。模块的RXD引脚连接STM32的TX引脚,用于主控向模块发送AT指令和数据。本设计将ESP8266的TXD引脚连接至STM32的PA3引脚,RXD引脚连接至PA2引脚。此外,模块还需要电源和地线连接,模块的VCC引脚接3.3V电源,GND引脚接地。EN引脚为模块使能端,接高电平使模块工作,RST引脚为复位端,低电平复位。
图3-11 与STM32硬件连接电路图
在硬件关联设计的时候,要留意电平适应的问题,ESP8266模块的 I/O 引脚电平为 3.3V,它与 STM32 的逻辑电平是可以相适应的,所以可以直接相连,不需要做电平转换。关于电源部分,ESP8266 在发射射频信号的时候,其峰值电流可能会高于 300mA,这就要求电源具备供应足够瞬态电流的能力,不然也许会造成模块运行不稳,本设计在模块电源引脚旁边安排了大容量电容,以此来供应瞬时电流并去除电源纹波。 PCB 布局时,要把 ESP8266 模块放在离其他高频信号源和敏感模拟电路远的地方,射频天线周围不要有铜层或者线条通过,从而保障无线通讯的质量,模块和 STM32 之间用作串行口通信的信号线最好是短一些,防止因为线路过长而产生干扰现象。
按键模块是用户与系统交互的主要输入设备,本设计设计了独立的按键电路用于触发数据保存和上传操作。按键采用轻触式微动开关,具有手感好、寿命长、接触可靠等优点。按键的一端连接到STM32的GPIO引脚,另一端接地。GPIO引脚通过10千欧上拉电阻连接到3.3V电源,在按键未按下时引脚为高电平,按键按下时引脚被拉低。微控制器通过检测引脚电平变化判断按键状态。为了防止按键抖动引起的误触发,程序中加入了软件消抖处理,在检测到电平变化后延迟一段时间再次确认,确保按键动作的可靠性。
图3-12 按键模块电路图
电源模块为整个系统提供稳定可靠的工作电压。系统采用USB接口供电,输入电压为5V。STM32主控芯片、HX711芯片、LCD屏幕和ESP8266模块都需要3.3V工作电压,因此需要将5V输入转换为3.3V。本设计选用低压差线性稳压器完成电压转换,该稳压器具有电路简单、输出纹波小、成本低廉等优点。稳压器的输入端和输出端均配置了滤波电容,输入端的10微法电容用于平滑输入电压,输出端的22纳法电容用于抑制高频噪声。电源模块的PCB布局遵循输入输出分开、滤波电容靠近稳压器引脚的原则,确保电源质量。整个系统的功耗控制在较低水平,通过USB接口即可满足供电需求。
图3-13 LDO电源电路原理图
PCB电路设计是将原理图转化为物理实现的关键环节,直接影响系统的电气性能和可靠性。本设计采用双层PCB板结构,板层厚度1.6毫米,铜箔厚度1盎司。顶层主要用于放置元器件和走信号线,底层作为完整的地平面。地平面的设计是PCB布局布线的重点,完整的地平面可以显著降低地线阻抗,减少信号回路面积,提高抗干扰能力。模拟地和数字地采用单点连接的方式,避免数字电路的高频噪声通过地线耦合到模拟电路中。称重传感器的信号属于微弱模拟信号,其走线应尽量短且远离数字信号线,必要时可在两侧包地屏蔽。
图3-14 PCB电路原理图
元器件布局依照功能分区原则,把相同功能模块的元器件聚集起来放置,缩减模块间信号连线的长度,主控芯片置于板子中央偏上处,便于引出各个接口的信号,晶振电路贴着主控芯片的 OSC 引脚,走线要尽可能短而且对称,去耦电容靠近芯片的电源引脚设置,用以净化电源线上面的高频噪声,ESP8266 模块安置于板子边缘,该模块天线部位下方及其周边不可存在覆铜以及走线现象,防止干扰其射频性能,接口插座设在板子边缘之处,利于与外部设备相连接,布线的时候首先着重保障关键信号的走线品质,时钟信号和数据信号线应当尽可能短,规避出现直角走线情况,而且过孔数目须要尽量减少。 布线完毕以后要开展设计规则检查,看看是否存在短路,开路或者间距违规之类的问题。
第四章 软件设计
RT - Thread属于开源的嵌入式即时操作系统,此设计把它移植到 STM32平台当作系统的软件根基,RT - Thread采取模块化设计,其内核体积较小而且裁剪性较强,特别适合资源有限的嵌入式应用。操作系统的核心功能涵盖任务调度,同步与互斥,软定时器,内存守护等部分,任务调度器具备抢占式和时间片轮转这两种调度方式,能够给不同任务指定不同的优先级,从而保证紧急任务得以及时响应,在本设计当中,称重数据采集任务对即时性要求比较高,所以把它设成高优先级,而显示和网络通信任务的优先级比较低,经由合理设置来保障系统具备即时性。
RT - Thread的启动流程包含若干个阶段,硬件复位之后会先去执行启动代码,完成堆栈指针和异常向量表的初始化工作,然后执行 C 运行时库的初始化,给 C 程序运行创建环境,系统时钟的设置属于启动过程中的重要环节,经由调用时钟设置函数来设定锁相环参数,把系统主频设置成 100MHz,RT - Thread 内核的初始化牵涉调度器的初始化,定时器的初始化以及内存池的初始化,当内核初始化完毕以后,系统会创建主线程并且转入调度循环,主线程承担着创建应用任务的任务,等到应用任务被创建出来以后,系统就可以开始正常运行了,这样的启动流程既清晰又规范,非常利于开发者领会系统的运行原理并实施功能拓展。
称重数据采集程序属于系统的核心功能模块,它的职责是读取HX711芯片的变换成果,并把它转化为现实的重量值。HX711芯片同主控芯片经由两线串行接口来开展通信,数据读取的时候要精准把控引脚电平变换的时间顺序,读取流程先是耐心等待DOUT引脚转为低电平,这表明A/D变换已经结束。之后,主控芯片就在PD_SCK引脚发出24个时钟脉冲,每一个脉冲的下降沿读取一位数据,而且是从高位开始逐步获取到24位的变换成果,第25个时钟脉冲被用来确定下一次变换的增益和通道,在当前这个设计方案当中,通道A的增益被选定为128倍,所获取到的24位数据就是原本的变换成果,这个数值和传感器输出的电压存在线性关联,不过和实际的重量还是必要去做标定换算。
数据处理流程包含数字滤波,零点校准以及标度变换这三项步骤,数字滤波是用来压制测量过程中的随机噪声的,本设计采用了移动平均滤波算法,也就是从众多采样值当中获取平均值当作有效数据,这样做可以很好地缓解由于噪声造成的测量波动。零点校准会在系统启动的时候自行达成,它会采集处于无负载状态下的很多次测量值来算出零点偏移量,之后所得的测量结果要是减去零点偏移量就可以得到相对重量,标度变换需按照已知的重量来做线性校准,利用标准砝码执行测量就能够得到传感器输出值与重量之间存在的比例系数,等到真正做测量的时候就把原来得到的数据减去零点再乘上这个系数,就可以得出重量值。 处理过的重量数据稳定性较高,准确度不错,符合日常称重的使用需求。
LCD显示程序需掌控屏幕内容更新及界面刷新事宜,向用户给出直观的称重数据显示效果,其显示驱动部分包含SPI通信协议与屏幕初始化流程,上层应用经由调用显示接口函数来达成文字,数字以及图形的绘制操作。屏幕初始化乃是显示功能得以正常运行的必要条件,在系统启动之时,会遵照驱动芯片所给定的要求发送初始化命令序列,设置诸如显示方向,颜色格式以及扫描模式之类的相关参数,等到初始化过程结束以后,屏幕便步入正常的工作阶段,从而具备接收显示数据的能力,显示内容被安排在帧缓冲区当中,应用程序把期望显示的内容写入到该缓冲区之中,随后由显示刷新程序把其中的数据传递到屏幕之上。
显示界面的设计重视信息显现的清晰度与易读性,主界面用大号字体显示当下的称重数值,使得用户能立即获取测量结果。界面上存在一个辅助信息区,用以显示重量单位,数据保存情况以及网络连接状况等等,一旦用户点击保存键,屏幕上就会暂时出现保存完成的提示信息,给用户以清晰的操作回应,要想达成流畅的显示效果,显示更新采取局部更新策略,仅仅更新发生改变的部分区域,免除因整屏更新而产生的闪烁现象和数据输送成本,称重数值变动速度较快,所以要有比较高的更新频次,静态文本和状态图标变动较少,可以减小更新频次来节省处理器资源。
WiFi数据输送程序担负着管理ESP8266模块网络连接以及数据上传工作的职责,该模块依靠串口AT指令集来执行控制操作,主控芯片向其发送已定格式的指令,模块完成相应动作之后会给予回应信息,数据输送程序要先对ESP8266的工作模式和网络参数展开设置,涵盖设定STA模式,关联指定的WiFi网络,设置TCP关联参数等方面,而在形成网络关联的过程中,应对诸如连接失败,密码不符之类的异常状况,利用重试机制及错误提示来优化系统的稳定性,等到关联达成以后,程序便转入到数据发送预备阶段,静候用户按下按键以开始数据上传流程。
数据上传功能经由TCP协议关联到物联网云平台来达成,在用户按下保存键的时候,程序把当下的称重数据依照预定的格式加以封装,这个被封装好的数据包涵盖了设备标识,时间戳以及重量值等相关信息。程序经由串口向ESP8266发送AT + CIPSEND命令,告诉模块准备要发送的数据量,模块准备好之后会回送发送指示符,然后程序再传送已封装好的数据,模块再利用TCP链接把这个数据传送到云平台服务器那里,服务器接收完数据以后会给予确认信息。 程序要保证数据传送的可靠性,所以具备了超时重传机制,如果超出了一定时限还未从服务器得到确认信息,就会再次去传送数据。当网络连接出现问题时,程序会试图重新创建连接,从而使得系统在网络状况恢复正常之后仍能正常运行。
系统的硬件与软件设计一旦完成,就要展开全面的功能检测,以此确认系统是否符合设计需求,功能检测按模块划分各自执行,包含称重采集功能检测,显示功能检测,按键交互功能检测以及 WiFi 上传功能检测。创建检测环境需准备硬件平台,调试工具及网络环境,其中硬件平台是本设计自制的智能电子秤样机,调试工具有串口调试助手和逻辑分析仪,网络环境为家用无线路由器供应的 WiFi 网络,各个检测项目均有清晰的检测步骤和预期成果,经由对比实际成果与预期成果之间的差别来评判功能的达成状况。
称重采集功能考察时,要用标准砝码当作测试负载,测量不同重量值时系统的输出情况,把砝码依次放在秤台上,记录LCD屏幕显示的重量数值,再同砝码标称值作比对。考察结果显示,系统能稳定测出不同重量的物体,而且测量值与负载变化几乎成线性关系,显示功能重点在于验证LCD屏幕的显示效果,看看能否清楚显示重量数值及附加信息,也要检查屏幕亮度和视角是否符合使用要求。 对按键交互功能展开检测,需考察按键响应的灵敏度及其防抖状况,要屡次按下按键以确保每次操作均被准确识别。针对WiFi上传功能实施检测,目的在于判断系统能否建立网络联系,并把数据传递到云平台,经由登录云平台去查阅已上传的数据,从而判定上传功能是否正常。
经由系统的功能及性能检测,并对相关数据展开分析,便能评判系统整体的性能水平,智能电子秤当中,称重精度属于最为关键的一项性能参数,检测结果表明,系统在各个称重区间之内,其测量偏差均被控制在预定的正负5克限度之内,而且具备较好的重复度特性,关于零点漂移的检测显示,当设备持续通电运行时,零点位移量非常小,这体现出数字滤波以及零点校正算法对于抑制因温变而造成的漂移现象和随机干扰噪音起到了积极作用,针对响应时间所作的检测,也证实从物体放到秤上开始一直到屏幕显示出稳定数值为止所需历时不到一秒,至于系统自身由休眠状态过渡至工作模式所需耗费的等待期则是大约两秒左右,这些情况皆符合原先的设计预期。
WiFi通信功能的检测结果显示,在正常网络环境下,ESP8266模块可立即与路由器关联,并达成数据上传,其数据上传的成功率比较高。一旦网络环境不佳或者路由器重新启动时,系统自带的断线重连机制会自动重新建立连接,从而确保数据传送的可靠性,检测显示功能的结果显示,TFT LCD屏幕显示的效果十分清晰,在室内光线条件下具备良好的可读性,屏幕刷新较为流畅,而且重量值更新比较及时,并不存在明显的迟缓或者停顿情况,各个按键的响应速度较快,按键消抖处理有效防止了误操作的发生,从总体来看,该系统各功能模块均能正常运作,各项性能指标也都符合设计预期,很好地达成了预定的设计目的。 测试过程中找到一些可改善之处,比如 WiFi初次连接耗时稍长,日后可经由改良连接策略予以进一步提升。







openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)