查看: 1564|回复: 4

[分享] 用LPC55xx搭建AIOT平台,步骤分解之传感器篇

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3299

    主题

    6546

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32024
    最后登录
    2024-4-25
    发表于 2021-7-8 12:41:03 | 显示全部楼层 |阅读模式
    用LPC55xx搭建AIOT平台,步骤分解之传感器篇


    Smart Tracker智能载具,是目前开发的一个新方向,这个方向在国内基本算是比较成熟的行业,类似的应用就是GPS跟踪器,以前LPC也在这个市场里有着广泛的应用,比如LPC17xx系列和LPC11xx系列。
    在技术创新层出不穷的今天,智能载具新增了很多新的发展方向。比如新的无线连接方面:CAT1、NB、Lora、sigfox等;增强的安全认证与快速配置;全方位的环境检测:温湿度、震动碰撞等。
    说白了就是个大的AIOT平台,接下来将分几次,依据本人对智能载具的理解,以MCU为起点,从传感器、GPS、无线连接等多个维度,给大家讲解MCU如何对接这些外设。
    NXP是唯一的能提供从MCU到MPU、SE、BLE、Thread、Zigbee、SigFox、WIFI、NFC、UWB的厂商,对智能载具的理解会更深入。

    本文将先介绍如何将温湿度传感器SHT31的驱动代码,移植到LPC55Sxx上。

    一、SHT31温湿度传感器简介

    SHT31是Sensirion基于[CMOSens®]工艺的温湿度传感器,是目前市面上常用的温湿度传感器之一,具有以下特色:
    1、SHT3x增强了信号处理
    2、可编程温湿度极限报警模式
    3、提供了高达1MHz的I2C通信速度,两个可配置的I2C地址
    4、封装为DFN,体积小巧,面积2.5x2.5mm2, 高度为0.9mm
    5、宽工作电压范围, 2.15V~5.5V
    6、功耗4.8µW (在2.4 V时低重复性, 1 次/秒)
    7、湿度工作范围 0 - 100% RH
    8、温度工作范围 -40°C - 125°C (-40°F - 257°F)

    二、SHT31引脚配置

    SHT31是一个8个引脚DFN封装的传感器,具体引脚说明见下图:
    11.png
    SHT31总共有8个引脚:

    1、SDA,I2C数据线引脚
    2、ADDR,I2C地址选择引脚,可连接VSS或者VDD分别对应不同的I2C地址,不能悬空
    3、ALEAT,报警功能引脚,如果使用则接到LPC的外部中断引脚(接到GPIO即可),不用的话建议浮空
    4、SCL,I2C时钟线引脚
    5、VDD,芯片工作电压引脚
    6、nRESET,复位引脚,低电平有效,如果不用,建议接到VDD
    7、R,没啥用,接到VSS即可
    9、VSS,地

    SHT31 DFN封装底部中间部位还有个Die Pad(Center Pad),一般接VSS(地)即可。

    三、官方典型应用电路
    12.png
    四、LPC55Sxx如何连接SHT31

    LPC55Sxx可以通过8组FlexComm接口中的任意一个,配置为I2C的模式去连接SHT31的I2C接口。
    对于FlexComm来讲,一组FlexComm可能存在两组I2C引脚配置即:
    FCn_CTS_SDA_SSEL0
    FCn_RTS_SCL_SSEL1
    或者
    FCn_TXD_SCL_MISO_WS
    FCn_RXD_SDA_MOSI_DATA
    这里FCn中的n代表了0-7,即8组FlexComm的之一。
    SHT31的Alert信号线可以任意连接一个LPC55Sxx的GPIO,通过PINT或者GINT功能产生中断来提示MCU。
    13.png
    五、SHT31应用代码解析

    我们的SHT31参考代码是基于Adafruit公开在Github上的代码(GitHub - adafruit/Adafruit_SHT31: Arduino Library for SHT31 Digital sensors)修改而来,Adafruit的代码遵循的是BSD License(Adafruit_SHT31/license.txt at master · adafruit/Adafruit_SHT31 · GitHub)
    具体移植过程参考接下来的步骤:
    1. 根据硬件设定配置LPC55Sxx的管脚
    在提供的参考代码里,driver_sensor_sht31.h文件中定义了与SHT31 I2C引脚连接的GPIO的PORT,PIN,FUNC#以及配置PINCFG信息,见下图,用户根据自己的实际硬件修改成对应的管脚和功能即可。这两个引脚会在sht32_init()中进行初始化。
    14.png
    2. 根据硬件设定配置LPC55Sxx的FlexComm
    修改好引脚配置后,我们需要针对引脚对应的FlexComm号 对I2C接口进行配置,主要是在driver_sensor_sht31.h文件中,需要修改SHT31用到的I2C编号,对应FlexComm复位的通道号,对应FlexComm的时钟源设置,对应FlexComm的时钟频率,对应FlexComm的时钟号,以及I2C的通信速率。
    15.png
    3. 根据硬件设定配置SHT31的I2C地址
    我们按照SHT31的文档,代码中我们在driver_sensor_sht32.h中配置SHT31的I2C地址, 即I2C_SHT31_ADDR。我们设置默认的是0x44,用户根据自己的需求可以选择0x44或者0x45。
    4. 基本的操作API
    sht31_init():SHT31初始化,包括引脚,I2C外设以及SHT31自身的初始化
    sht31_reset():SHT31软件复位
    sht31_read_status():SHT31状态获取
    sht31_crc8():SHT31 数据CRC校验
    sht31_read_temp_hum():SHT31读取温度和湿度数据

    最终的温湿度结果,用户在调用过sht31_read_humidity()后,可以直接读全局变量sht31_temp和sht31_humidity即可得到。

    实际应用中,只需要在初始化过程中调用sht32_init()后,在需要读温湿度的地方调用

    sht31_read_temp_hum()即可,这个例程用的是单次触发采样模式。

    5. 例程
    如果手上刚好有LPC55S69-IOT开发板以及SHT31的模块的话,可以如下图连接好模块到开发板的FlexComm3连接器以及调试器。
    下载实例代码后即可通过串口打印出温湿度采样的结果。
    16.png


    下面是串口打印结果:
    17.png

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-7-8 14:08:17 | 显示全部楼层
    我怎么都觉得LPC55S69用于Iot是大马拉小车了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-12-2 08:40
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    97

    主题

    836

    帖子

    7

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    3975
    最后登录
    2024-4-16
    发表于 2021-7-8 16:06:39 | 显示全部楼层
    jobszheng5 发表于 2021-7-8 14:08
    我怎么都觉得LPC55S69用于Iot是大马拉小车了。

    小钢炮啊,合适的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-2-5 12:06
  • 签到天数: 627 天

    [LV.9]以坛为家II

    94

    主题

    1628

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    4429

    热心会员

    最后登录
    2024-2-5
    发表于 2021-7-12 12:50:10 | 显示全部楼层
    NICE~`
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-8-30 17:43
  • 签到天数: 306 天

    [LV.8]以坛为家I

    14

    主题

    1746

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    2530
    最后登录
    2023-8-30
    发表于 2021-7-14 18:57:33 | 显示全部楼层
    内容真丰富,赞!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 04:14 , Processed in 0.110830 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表