0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的OLED动态显示(温湿度实时数据)

HME京微齐力 来源:HME京微齐力 作者:HME京微齐力 2023-06-19 10:18 次阅读

实验结果

9644d0f6-0c2f-11ee-962d-dac502259ad0.png

视频中,可以看到,当手指捏住传感器后,OLED屏上的温湿度数据发生变化。

基于FPGA的OLED动态显示(温湿度实时数据)

Part一

硬件解析

1. 国产FPGA:HME-P1P060

58K逻辑单元,36K LUT-6,4个PLL,32个全局时钟,144个DSP,基本上已经满足了学生等级开发,感兴趣的,可以去米联客店铺看看。

96764c30-0c2f-11ee-962d-dac502259ad0.png

2. 0.96寸OLED

96e4f6b2-0c2f-11ee-962d-dac502259ad0.png

关于OLED的显示,这里不做介绍,详见二级菜单文章:京微齐力:基于HMEP060的OLED字符显示(及FUXI工程建立演示)

3. DTH11温湿度模块(比较枯燥,请耐心看完原理)

96f4150c-0c2f-11ee-962d-dac502259ad0.png

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。

97638ed2-0c2f-11ee-962d-dac502259ad0.png

上图为DHT11的内部原理图,可以看出感湿元件、感温元件和OTP内存直接连接在内部一个八位MCU上,该MCU通过计算得出测量数值。

DATA用于FPGA与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分为整数部分和小数部分,数据格式如下:一次完整的数据传输为40bit,高位在前。

数据格式:

9778b9ba-0c2f-11ee-962d-dac502259ad0.png

数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据”所得结果的末8位。校验和=数据之和,通过这个可以判断接收到的数据是否正确。

下面说一下,数据传输时序:

97944f04-0c2f-11ee-962d-dac502259ad0.png

主机(此处指FPGA)首先发送一次开始信号,即:拉低数据线,保持t1(至少18ms)时间;然后拉高数据线保持t2(20~40us)时间,随后开始读取DHT11的响应;如果操作正确的话,DHT11会拉低数据线,保持t3(80us)时间,作为响应信号;接下来DHT11会拉高数据线,保持t4(80us)时间,随后开始输出有效数据。

DHT11共输出40bit有效数据,每1bit数据都是以50us低电平开始,高电平的持续时间作为判断数据位的条件。当数据位为0时,高电平的持续时间为26~28us;当数据位为1时,高电平的持续时间为70us。

DHT11数据位“0”时序图和数据位“1”时序图如图:

979e6db8-0c2f-11ee-962d-dac502259ad0.png

需要注意的是,DHT11的温度和湿度转换较慢,如果读取速度过快会导致DHT11无法响应的情况。

Part二

程序设计

1. DTH11数据采集(状态机)

DHT11驱动模块使用三段式状态机来读取DHT11的温度和湿度值,从下图可以比较直观的看到每个状态实现的功能以及跳转到下一个状态的条件。

再次强调,这里需要注意:由于DHT11温度和湿度转换较慢,如果读取速度过快会导致DHT11无法响应的情况,所以我们在每次读操作结束后延时两秒(这样鲁棒性会比较高,也可以不要这步)。

97e0253c-0c2f-11ee-962d-dac502259ad0.png

在时序图中,提到了18ms、26-28us、20-40us、50us、70us、80us等等,但是经过分析后,并不需要定义这么多个计时周期数,只需要定义两个即可。为什么只定义这两个就可以了呢?

在时序图中,需要FPGA判断时间的,有两个位置,一个是FPGA拉低18ms以上,另外一个是判断数据表示是数据0还是数据1。第一个很清楚就是18ms。数据0表示的数据位26-28us,为了保险起见,这里设置为35us,如果高电平的持续时间低于35us,那么就表示数据0。

981f08ce-0c2f-11ee-962d-dac502259ad0.png

982d3520-0c2f-11ee-962d-dac502259ad0.png

988146ec-0c2f-11ee-962d-dac502259ad0.png

98973aba-0c2f-11ee-962d-dac502259ad0.png

98bdfd80-0c2f-11ee-962d-dac502259ad0.png

98c7907a-0c2f-11ee-962d-dac502259ad0.png

2. 字符显示

OLED的显示(包括字符提取等),这里不做介绍,我在另一篇文章有介绍过,感兴趣的可以看看:京微齐力:基于HMEP060的OLED字符显示(及FUXI工程建立演示)

98f7f47c-0c2f-11ee-962d-dac502259ad0.png

3. 字符输出

代码有注释,可以看注释

9b0aff0c-0c2f-11ee-962d-dac502259ad0.png

35 本例中,OLED显示一共分为如下5个状态。在初始化完成后,屏幕显示的是杂乱无章的数据,所以在初始化完成后,要进行一次刷新,将OLED中的数据全部写0。然后进行显示固定不变的支符,例如像温度湿度这样的字符。然后进入空闲态,直到DHT11采集到数据后,就进入到数据显示状态,数据显示完成后,又回到空闲态。这是整个的一个流程。

9b32bf92-0c2f-11ee-962d-dac502259ad0.png

9b3ead02-0c2f-11ee-962d-dac502259ad0.png

9b64f2dc-0c2f-11ee-962d-dac502259ad0.png

9b7a6e0a-0c2f-11ee-962d-dac502259ad0.png

9ba72e7c-0c2f-11ee-962d-dac502259ad0.png

9bb674c2-0c2f-11ee-962d-dac502259ad0.png

Part三

弧形抓取

在工程中,例化了debugware IP核,对温湿度传感器的波形进行抓取,可以看到如下:

9c03108e-0c2f-11ee-962d-dac502259ad0.png

前文有说过,传感器的数据位总共有40位,考虑到后续可能抓取别的波形,所以此处debugware的数据位宽我设置到了45位,预留了5位。

这里抓到的波形是:2E 0019 034A
对应的二进制即:

0010_1110_0000_0000_0001_1001_0000_0011_0100_1010

根据上文数据公式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和数据

所以此刻的,湿度:

46.00(10_1110_0000_0000)

温度:

25.03(0001_1001_0000_0011)

9c47ab68-0c2f-11ee-962d-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2526

    文章

    48093

    浏览量

    740085
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7682

    浏览量

    344364
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593201
  • OLED
    +关注

    关注

    118

    文章

    5986

    浏览量

    221464
  • 动态显示
    +关注

    关注

    0

    文章

    40

    浏览量

    11588

原文标题:京微齐力:基于P1P060的OLED动态显示(温湿度实时数据)

文章出处:【微信号:HME-FPGA,微信公众号:HME京微齐力】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于51单片机的SHT11温湿度监测系统,LCD1602显示,上下限按键设置

    LCD1602显示模块实时显示温湿度数据,同时可以通过按键模块对温湿度报警上、下限值进行设定。 当SHT11读取的
    发表于 03-26 17:44

    温湿度传感器工作原理 温湿度传感器的接线方法

    温湿度传感器是一种用于测量环境温度和相对湿度的装置。它通常用于工业、农业、气象、室内空调等领域。本文将详细介绍温湿度传感器的工作原理和接线方法。 一、温湿度传感器的工作原理
    的头像 发表于 02-14 18:00 4110次阅读

    温湿度监测系统解决方案应用场景

    温湿度监测系统解决方案,将温湿度参数进行测量并按照预定的时间间隔,将其储存在记录仪内部或通过GPRS/4G、WIFI上传管理云平台,可将数据导出,对其分析。可显示
    的头像 发表于 01-24 16:21 177次阅读

    冷链温湿度监控系统特点盘点

    监控系统解决方案,利用智能温湿度传感器获取实时信息,通过LORA无线网络将环境数据上传到智能网关、物联网主机等设备,并通过WIFI、4G等网络将数据上传到监控平台,实现仓库温度
    的头像 发表于 01-23 17:07 281次阅读

    温湿度传感器在食品药品安全领域的应用

    被广泛应用于相关场合,实时监测和记录温湿度数据,为管理者提供决策依据。 无线智能温湿度采集终端可以实时监测环境中的温度和湿度,并通过
    的头像 发表于 01-04 17:55 250次阅读
    <b class='flag-5'>温湿度</b>传感器在食品药品安全领域的应用

    4G远程温湿度传感器在仓库中的应用—蜂窝物联

    。为了更好的观测和掌握温湿度的变化,仓库需要安装温湿度传感器实时监测温湿度状态,确保适宜货物储存的温湿度环境。 蜂窝物联仓库存储环境远程监控
    的头像 发表于 01-02 09:36 161次阅读

    应用在智能仓储温湿度监测系统中的温度传感芯片

    温湿度是影响冷库环境的主要因素,建立实时温湿度监控系统,保存查看完整的历史温湿度数据十分必要。
    的头像 发表于 08-11 09:37 347次阅读
    应用在智能仓储<b class='flag-5'>温湿度</b>监测系统中的温度传感芯片

    数据中心温湿度监控系统解决方案之以太网温湿度传感器

    数据机房服务器数据中心温湿度的解决方案 引言 数据机房是现代企业和组织存储和处理海量数据的关键设施。在这些机房中,服务器承担着运行和存储
    的头像 发表于 08-02 09:52 801次阅读
    大<b class='flag-5'>数据</b>中心<b class='flag-5'>温湿度</b>监控系统解决方案之以太网<b class='flag-5'>温湿度</b>传感器

    基于RT-Thread与STM32F407的温湿度天气时钟设计案例

    本次项目主要内容为温湿度天气时钟设计,显示日期时间,此外还可实时检测温湿度、获取当地天气、并显示在LCD屏幕上。
    的头像 发表于 07-31 15:56 1793次阅读
    基于RT-Thread与STM32F407的<b class='flag-5'>温湿度</b>天气时钟设计案例

    应用在工业车间环境温湿度数据看板中的温度传感芯片

    运用传感器及物联网技术专业提供温湿度数据监控系统解决方案。由高精度温湿度传感器、LED显示屏或液晶显示屏、数据监控软件、移动端APP组成
    的头像 发表于 07-28 09:29 417次阅读

    基于STM32单片机的疫苗冷链加温湿度系统设计

    整个系统以STM32 单片机作为核心控制器,通过温湿度传感器检测温湿度,通过GPS进行位置检测,通过刷卡模块进行刷卡检测, 检测到的数据通过OLED进行
    的头像 发表于 07-24 15:06 503次阅读
    基于STM32单片机的疫苗冷链加<b class='flag-5'>温湿度</b>系统设计

    一种温湿度传感器的记录数据保存方法

    一种温湿度传感器的记录数据保存方法
    的头像 发表于 07-05 10:55 1046次阅读

    冷库温湿度监测系统——实时监测、智能报警

    监测系统主要提供对冷藏室、冷库等环境空间温度、湿度的严格监控和管理。冷库温湿度监测系统是由测点终端4G型多探头温湿度记录仪以及环境监控云平台组成。 各测点终端对周边环境温湿度进行
    的头像 发表于 06-12 17:30 985次阅读
    冷库<b class='flag-5'>温湿度</b>监测系统——<b class='flag-5'>实时</b>监测、智能报警

    STC89C52+DHT20设计的环境温湿度检测仪

    本项目基于STC89C52单片机和DHT20温湿度传感器,实现了一款环境温湿度检测仪。通过传感器采集环境的温度和湿度数据,利用IIC接口的OLED
    的头像 发表于 05-26 09:13 3018次阅读
    STC89C52+DHT20设计的环境<b class='flag-5'>温湿度</b>检测仪

    CH32V103基础教程71-温湿度及RTC显示

    本章教程主要使用温湿度传感器(DHT11)读取周围环境温湿度并通过OLED显示,同时显示时间。本章教程在第十二章、第六十九章、第七十章基础
    发表于 05-06 15:46