当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]系统通过AHT21传感器连续测量周围环境的温度和湿度。STM32不使用内置库,而是通过定制软件I²C(位敲击)驱动程序与传感器通信,从而完全控制时序和数据传输。

我们的项目是一个实时温湿度监测系统,使用STM32微控制器,AHT21温湿度传感器和带有8080并行接口的ST7789液晶显示器构建。

系统通过AHT21传感器连续测量周围环境的温度和湿度。STM32不使用内置库,而是通过定制软件I²C(位敲击)驱动程序与传感器通信,从而完全控制时序和数据传输。

当测量被触发时,STM32向AHT21传感器发送所需的命令,并等待传感器完成其内部转换。在接收到原始数据字节后,微控制器处理并将其转换为可读的温度(°C)和湿度(%)值。

计算值然后实时显示在LCD屏幕上。显示器使用8位8080并行接口,由定制的STM32 LCD驱动程序驱动,该驱动程序以两个8位传输方式发送16位RGB颜色数据。这允许快速和平滑的屏幕更新,而不依赖于外部图形库。

系统每秒刷新传感器读数,提供稳定、准确的环境数据。实现了一个轻量级的自定义GUI和位图字体渲染器,以清晰有效地显示值。

步骤1 -引脚映射和硬件配置

在编写任何代码之前,第一步是仔细分析RT-Spark (STM32F407)引脚,并了解外部组件如何连接到微控制器。

上图显示了在STM32CubeMX中配置的STM32引脚分配,突出显示了用于AHT21传感器和ST7789 LCD显示器的引脚。

•AHT21传感器连接(软件I²C)

•PE0→AHT21_SDA(数据线)

•PE1→AHT21_SCL(时钟线)

这些引脚配置为开漏GPIO输出,以实现基于软件的I²C(位敲打)接口。这允许完全控制I²C时序,而不是使用硬件I²C外设,这对于学习和调试低级通信非常有用。

•LCD接口(FSMC - 8080并行总线)

•ST7789 LCD采用8080式并行接口,通过STM32的FSMC(柔性静态存储器控制器)连接。

•FSMC数据总线(LCD - 8位模式)

LCD显示器以8位并行方式使用FSMC(柔性静态存储器控制器)连接。

•Pd14→fsmc_d0

•Pd15→fsmc_d1

•PD13→FSMC_A18用作LCD的控制/地址线(通常映射为RS / DC)

步骤2 -驱动程序实现

编写自定义驱动程序来控制传感器和显示器,而不使用外部库。

•液晶驱动程序

•支持8位FSMC传输

•将16位RGB565颜色数据拆分为两个8位写入

•包括自定义绘图、文本和位图字体函数

LCD驱动支持8位FSMC传输拆分16位RGB565颜色数据为两个8位写入包括自定义绘图,文本,和位图字体功能

•AHT21司机

•实现软件I²C协议(Start, Stop, ACK, Send/Read)

•发送测量命令并读取原始传感器数据

•将原始值转换为温度(°C)和湿度(%)

AHT21 driver实现软件I²C协议(Start, Stop, ACK, Send/Read)发送测量命令,读取原始传感器数据,将原始值转换为温度(°C)和湿度(%)

步骤3 -系统集成和测试

所有驱动程序都集成在main.c中,以创建一个完整的工作系统。

•每秒读取传感器数据

•移动平均滤波器平滑温度和湿度值

•处理值实时显示在LCD

•心跳像素确认系统正在运行

•如果通信失败,错误处理将复位传感器

步骤4 -实时数据处理和显示

上图显示了系统的运行情况,在ST7789液晶显示器上显示实时温度和湿度读数。STM32每秒持续与AHT21传感器通信,应用移动平均滤波器平滑数据,并实时更新屏幕。

•温度以红色显示,单位为℃。

•湿度以蓝色显示,单位为%。

角落里闪烁的小像素充当心跳指示灯,确认主程序循环正常运行。

如果传感器读取失败,则短暂显示错误消息(“read Err”),STM32自动重新初始化传感器以保持连续运行。

这一步演示了硬件、驱动程序、过滤和显示的集成,展示了系统如何提供稳定、可读和实时的环境数据。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭