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

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

3天内不再提示

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

Tony908441519 来源: Tony908441519 作者: Tony908441519 2023-07-05 10:55 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

最原始的数据记录都是依靠人工去完成的,每隔一段时间记录一次数据。在科学实验室里,科技人员经常拿着笔和纸记录当时观察的数据,这种工作既单调又枯燥,还不能及时。于是人们想到一种办法,让机器来定时采集和记录,然后将采集的数据保存到FLASH中。当我们需要的时候,再从FLASH中读出来,供我们使用。可见,机器记录数据既保证了实时性和效率,还节省了人工成本。

我们先回顾一下人工记录的方法:先在一张空白的纸上制作一个表格,里面有:序号,内容,时间,签字人姓名,核验时间。同理、机器记录也需要首先要有一个空白的数据记录区,而且掉电再上电还要保证数据继续存在。于是我们会很快想到FLASH存储器,FLASH通常有两种:I2C通讯的EEPROM和SPI通讯的FLASH。EEPROM最大的分区为页,限制了EEPROM的容量扩展;其次跨页写入时,EEPROM需要发送重启条件;再次I2C抗干扰能力差。SPI通讯的FLASH支持扇区读、写和擦除,同时支持块擦除,容量大,性价比高。因此,SPI通讯的FLASH是我们的首选。

W25Q128容量为16M字节,共计4096个扇区,每个扇区为4*1024个字节,地址为24位。扇区擦除后,里面的数据全部是0xFF。

1、保存对象

温度1(float型),温度2(float型),湿度1(u8型),湿度2(u8型),状态数据(u8型)

1、数据保存周期

规定每5分钟保存一次。这样,每天保存的信息数量为:24*60/5=288条。

2、消息格式

1)、时间:

用秒表示,32位数值,使用16进制的ASCii码表示,需要占用8个字节。

若用0表示2000年1月1日00:00:00,则:

全为平年,最大年数为0x100000000/3600/24/365=4294967296=136.19年

全为闰年,最大年数为0x100000000/3600/24/366=4294967296=135.82年

从2023年算起,还可以支持112年,这个时间数值够用了。

2)、u32和单精度浮点数:

单精度浮点数为32位数值,使用16进制的ASCii码表示,需要占用8个字节。

3)、整型数:

u16型数值,使用16进制的ASCii码表示,需要占用4个字节,用D表示。

u8型数值,使用16进制的ASCii码表示,需要占用2个字节,用d表示。

4)、校验码:

校验码为u8型数值,使用16进制的ASCii码表示,需要占用2个字节。

5)、起始符号和结束符号:

起始符号’(’,使用ASCii码表示,需要占用1个字节。

结束符号’)’,使用ASCii码表示,需要占用1个字节。

6)、上传状态:

0xFF表示没有上传,需要执行断网续传;字符’Y’表示已上传,无需续传。需要占用1个字节。

7)、消息格式:(上传状态/时间/f1/f2/d1/d2/d3/校验码)

每条信息为3*8+3*2+5=35个字节。

1个时间数据,3个浮点数,3个u8型数值。

举例:

(Y000000003F0000003F0000004B4B00XX)

Y表示该信息已经上传

时间:00000000通过换算得到时间为2000-01-01 00:00:00

温度1为浮点字符串数值3F000000,合为十进制数为0.5度

温度2为浮点字符串数值3F000000,合为十进制数为0.5度

湿度1为u8型字符串数值4B,合为十进制数为75

湿度2为u8型字符串数值4B,合为十进制数为75

温度1,温度2,湿度1和湿度2状态值为u8型字符串数值00,合为十进制数为0。

3、扇区规划

1)、每个扇区的前两个字节,用来记录扇区的状态:

分别用SectorXByte[0]和SectorXByte[1]表示,其中-1

SectorXByte[0]=0xFF且SectorXByte[1]=0xFF表示该扇区为空白扇区;

SectorXByte[0]=’1’且SectorXByte[1]=0xFF表示该扇区可以继续保存信息;

SectorXByte[0]=’1’且SectorXByte[1]=’1’表示该扇区满,不能再保存信息;

SectorXByte[0]=0xFF且SectorXByte[1]=’1’表示该扇区损坏了,不能保存信息;

这么规定的目的,可以告诉我们当前写到哪个扇区了,同时,可以避免将数据写入坏扇区。

举例:

Sector0Byte[0]=0xFF且Sector0Byte[1]=0xFF表示扇区0为空白扇区;

Sector0Byte[0]=’1’且Sector0Byte[1]=0xFF表示扇区0可以继续保存信息;

Sector0Byte[0]=’1’且Sector0Byte[1]=’1’表示扇区0满,不能再保存信息;

Sector0Byte[0]=0xFF且Sector0Byte[1]=’1’表示扇区0损坏了,不能保存信息;

2)、每个扇区的信息数量

(4096-2)/35=116.9条,按照116条/扇区计算,损失34个字节。

3)、规定信息写入,不得跨越扇区。因此最后34个字节为0xFF,不使用。这么设计的目的,就是为了保证扇区前两个字节用作记录扇区的状态,不被改变,同时,也是为了扇区具有可读性。

4、W25Q64JV(8M容量的FLASH)

1)、最大信息数量

116*2048=237568条数据

2)、最多天数

237568/288=824天,因此8M的FLASH可以保存2.2年的数据。

5、W25Q128JV(16M容量的FLASH)

1)、最大信息数量

116*4096=475136条数据

2)、最多天数

475136/288=1649天,因此16M的FLASH可以保存4.5年的数据。

6、总结

通过上述对FLASH得规划,实现数据记录就很容易实现了。

审核编辑 黄宇

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

    关注

    2577

    文章

    55506

    浏览量

    793964
  • FlaSh
    +关注

    关注

    10

    文章

    1759

    浏览量

    155908
  • EEPROM
    +关注

    关注

    9

    文章

    1146

    浏览量

    86342
  • ASCII
    +关注

    关注

    5

    文章

    172

    浏览量

    36824
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HDC2010:低功耗温湿度数字传感器的卓越之选

    HDC2010:低功耗温湿度数字传感器的卓越之选 在电子设备的设计中,温湿度传感器是不可或缺的部分,它广泛应用于各种环境监测和控制场景。今
    的头像 发表于 02-12 11:25 482次阅读

    HDC2080数字传感器:高精度、低功耗的温湿度监测解决方案

    HDC2080数字传感器:高精度、低功耗的温湿度监测解决方案 在电子设计领域,温湿度监测是许多应用场景中的关键需求。无论是智能家居、工业控制还是气象监测,都需要可靠、精确的温湿度
    的头像 发表于 02-12 09:40 478次阅读

    HDC2021高精度温湿度传感器:特性、应用与设计要点

    HDC2021高精度温湿度传感器:特性、应用与设计要点 引言 在电子设备的设计中,温湿度传感器扮演着至关重要的角色。HDC2021作为款高
    的头像 发表于 02-11 16:00 286次阅读

    HDC3120高精度温湿度传感器:设计与应用全解析

    HDC3120高精度温湿度传感器:设计与应用全解析 在电子设备的设计中,温湿度传感器个关键组件,广泛应用于各种领域,从智能家居到工业自动
    的头像 发表于 02-11 09:25 649次阅读

    2025温湿度变送器选购指南与传感器应用方案解析

    温湿度变送器作为环境监测和工业控制领域的重要设备,广泛应用于农业、医疗、工业制造、物联网等众多行业。2025年,伴随着传感器技术的进步发展,温湿度变送器的性能不断提升,市场需求也持续
    的头像 发表于 02-01 10:44 1053次阅读

    燃气表需要温湿度传感器推荐啥?

    嘿,朋友们,今天有个挺有意思的选型问题想和大家聊聊。有客户来问:“燃气表里需要温湿度传感器,温度精度要求0.2℃,湿度精度要±2%RH,有合适的型号推荐吗?”首先,咱们
    的头像 发表于 01-28 12:05 351次阅读
    燃气表需要<b class='flag-5'>一</b>颗<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>推荐啥?

    ±0.1℃精准监测 + POE 供电!网口温湿度传感器,部署运维双省心

    原标题网口温湿度传感器:技术原理、核心优势与选型应用全解析 机房应用 、网口温湿度传感器的核心定义与技术原理 网口
    的头像 发表于 01-04 14:25 428次阅读

    以太网温湿度气体传感器:精准守护环氧乙烷灭菌与工业安全的关键防线

    以太网温湿度气体传感器,双气体模组,三十组合可定制
    的头像 发表于 12-03 09:21 587次阅读
    以太网<b class='flag-5'>温湿度</b>气体<b class='flag-5'>传感器</b>:精准守护环氧乙烷灭菌与工业安全的关键防线

    应用于智能门锁的温湿度传感器解决方案

    智能传感器已广泛应用于我们生活的方方面面,从智能开关(86盒)、电子温湿度计到智能窗帘盒、烟感等,无处不在。其中,温湿度传感器芯片凭借其高
    的头像 发表于 11-28 15:03 461次阅读

    温湿度传感器HTU31D在温湿度中的应用优势

    温湿度控制一种用于监测和调节环境温度与湿度的设备,广泛应用于农业、仓储、工业生产、家庭等多个领域。其主要功能是维持特定环境条件,以确保产品质量和舒适的居住环境。
    的头像 发表于 11-06 14:38 447次阅读
    <b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>HTU31D在<b class='flag-5'>温湿度</b>控<b class='flag-5'>器</b>中的应用优势

    中科银河芯GXHT30C温湿度传感器的核心亮点

    在工业控制、智能家居、医疗设备等领域,温湿度数据的精准采集是保障设备稳定运行、提升用户体验的关键。而款性能卓越、适配性强的温湿度传感器,正是实现这
    的头像 发表于 11-05 17:54 1703次阅读

    中科银河芯GXHT30温湿度传感器的卓越性能

    在工业自动化、智能家居、医疗设备等领域,温湿度数据的精准采集直接影响系统性能与决策质量。传统传感器往往面临精度不足、稳定性差、适配性有限等痛点,而中科银河芯推出的 GXHT30 温湿度传感器
    的头像 发表于 08-08 17:09 2817次阅读

    什么是温湿度传感器的水合?

    温湿度传感器需要进行水合处理(Hydration),主要是为了优化传感器的性能、稳定性和长期可靠性。以下是具体原因和作用的详细解释:1.稳定湿度敏感材料电容式
    的头像 发表于 07-11 12:10 1275次阅读
    什么是<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>的水合?

    常见的温湿度传感器类型?

    温湿度传感器一种用于测量环境温度和湿度的设备,广泛应用于工业、农业、气象等领域。以下是几种常见的温湿度
    发表于 06-24 09:24

    温湿度变送器功能有哪些?文详细解析

    功能就是精准测量环境中的温度和湿度。它采用高精度的传感器,能够快速、准确地感知环境温湿度的变化,并将这些数据转化为可识别的电信号。无论是在实验室、仓库,还是在生产车间,都能为用户提供可
    发表于 06-03 10:56