请选择 进入手机版 | 继续访问电脑版
查看: 6533|回复: 184

【2021.07.30】每日签到:用LPC55xx搭建AIOT平台,步骤分解之...

[复制链接]
回帖奖励 126 NXP金币 回复本帖可获得 2 NXP金币奖励! 每人限 1 次
抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 
  • TA的每日心情
    开心
    前天 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3296

    主题

    6541

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    31904
    最后登录
    2024-3-28
    发表于 2021-7-30 08:36:14 | 显示全部楼层 |阅读模式
    周五早上好啊!又要周末了!精神抖擞!

    大神推荐:
    自制RT1176板卡:1.开整
    自制RT1176板卡:2.翻车了但又没有完全翻车

    签到送金币:
    30楼:30金币
    70楼:700金币
    300楼:3000金币(不可连续抢楼,每人每周只可获得一次,为月底盲盒做准备

    活动推荐:
    【谁支持谁反对】17大LPC8N04设计创意推荐
    头脑风暴7:说一说蓝牙模块的应用

    恩智浦小课堂第二十六期—如何上手NXP家MCU的SDK代码包和IDE

    【暑期Show】LPC8N04免费探秘再启动


    每日签到:领取1NXP金币,今天回复再领2NXP金币。
    别忘了新人注册福利:

    *new!今日最新任务发布:
    奖励10NXP金币。每10天进行一次限时大转盘抽奖。(第七期已经上线)
    点击领取

    —————————————————————————————————
    用户须知:恩智浦社区任务体系如下:
    1、每天发布定向任务,大家可领取任务,完成即可获得NXP金币。
    2、10天为一个小周期,进行大转盘抽奖。
    3、一个月为一个大周期,进行随机抽盲包,金币兑盲包。
    上述任务体系归属权为:恩智浦社区,所有以活跃社区氛围为目的。

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-1-31 09:34
  • 签到天数: 202 天

    [LV.7]常住居民III

    7

    主题

    1515

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3801
    最后登录
    2024-2-19
    发表于 2021-7-30 08:41:46 | 显示全部楼层

    回帖奖励 +2 NXP金币

    签到签到
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    10 小时前
  • 签到天数: 2366 天

    [LV.Master]伴坛终老

    9

    主题

    4795

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    10696
    最后登录
    2024-3-28
    发表于 2021-7-30 08:51:25 | 显示全部楼层

    回帖奖励 +2 NXP金币

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-4-14 08:59
  • 签到天数: 449 天

    [LV.9]以坛为家II

    5

    主题

    2053

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    4529
    最后登录
    2023-12-7
    发表于 2021-7-30 08:56:12 | 显示全部楼层

    回帖奖励 +2 NXP金币

    签到签到签到签到
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 10:05
  • 签到天数: 827 天

    [LV.10]以坛为家III

    1

    主题

    2058

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    4253
    最后登录
    2024-3-27
    发表于 2021-7-30 09:04:07 | 显示全部楼层

    回帖奖励 +2 NXP金币

    签到签到签到
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 2547 天

    [LV.Master]伴坛终老

    7

    主题

    6088

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    12659
    最后登录
    2024-3-28
    发表于 2021-7-30 09:04:50 | 显示全部楼层

    回帖奖励 +2 NXP金币

    签到签到
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-4-24 15:04
  • 签到天数: 508 天

    [LV.9]以坛为家II

    0

    主题

    1273

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3360
    最后登录
    2023-5-22
    发表于 2021-7-30 09:17:01 | 显示全部楼层

    回帖奖励 +2 NXP金币

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:00
  • 签到天数: 554 天

    [LV.9]以坛为家II

    34

    主题

    5904

    帖子

    2

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    5604
    最后登录
    2024-3-28
    发表于 2021-7-30 09:17:18 | 显示全部楼层

    回帖奖励 +2 NXP金币

    书接上回——上回书在此,上次咱们介绍的如何利用I2C接口接入传感器,这篇文章介绍是如何通过UART连接北斗/GPS模块获取地理位置信息,智慧物流嘛北斗/GPS是传统位置追踪的手段,也可以利用GPS模块给出的时间数据进行校时。


    一、北斗/GPS模块介绍
    GPS购于某宝,类似的厂商有很多知名的有Ublox,,移远等,我这里买的是中科微的,别问为什么选它,问就是便宜... 而且这个模块尺寸小、支持全GNSS系统(北斗、GPS、GLONASS、伽利略、日本的QZSS以及卫星增强系统SBAS)。
    1、接MCU的UART
    模块引脚说明如下
    GPS模块引脚实际与LPC55S69-IOT kit连接的时候,可以按照如下接法,模块的RX可以不接,看要不要配置模块了,如果不需要配置GPS模块则可以不接的。
    2、GPS模块的数据格式- NEMA码
    我们可以先用USB转UART的dongle来看看NEMA长什么样子,本狮这里用的是CP2102的模块,用sscom串口助手来接受GPS模块发出来的数据。数据有点多,但是别怕,之后我们先认真分析下后用“拥抱(CTRL+C) +开源(CTRL+V)”的方式给大家节约点时间,毕竟工作后键盘磨秃的不再是AWSD了~
    下面是模块输出的数据:
    这里本狮说的NEMA码指的是NMEA-0183协议的报文,大多数常见的GNSS接收机、GNSS数据处理软件、导航软件都遵守或者兼容这个协议。


    数据里面我们看到三种数据类型GN、GP、BD 分别代表双模模式、GPS 模式、北斗模式。比如下面这条报文:


    根据NMEA-0183协议的规定,$XXGGA报文是关于时间、经纬度位置、解算状态、卫星颗数等相关信息。XX的不同代表模式的不同,比如$GPGGA表示单GPS模式,$BDGGA表示单北斗模式,$GNGGA表示多星联合定位。具体的含义我们对应查表就行了(NEMA-0193协议),微信小文章就不放了,论坛的帖子里我会放具体的表格,定位不一样。

    二、MCU如何获取NEMA码并且解析


    一般来说GPS模块都是和MCU的串口连接的,串口接收数据的方式无非三种,轮询Polling/中断Interrupt/DMA。轮询基本上是不可能选择的模式,所以大多数用户还是用的中断,高阶点的则用DMA的方式。


    1、中断的方式
    中断的方式虽说占用些MCU的资源,但是胜在串口是低速率的并且简单易移植,如果系统设备始终中断资源较少的话影响还好。


    2、DMA的方式
    DMA的方式比较推荐,占用CPU的资源少,一般来说要配置UART的接收完成(Received Idle)信号来完成一次数据的接收,并且启动下一次DMA从串口到RAM的搬运工作。但是LPC55系列除了LPC55S3x系列的UART带有Received Idle的功能,其他的比如LPC55S0x、LPC55S1x、LPC55S2x、LPC55S6x都不具备此模式,所以针对这种没有Received Idle的MCU,我们只能启动一个定时器来做Timeout管理。


    3、代码中如何识别
    咱们可以用strstr的方式去获取GPS的数据头帧的信息,比如:
    • if(g_GPRSecvCnt>=GPS_BUFFER_SIZE)
    • {
    •     uint8_t*buff=NULL;
    •     buf=(uint8_t*)strstr((const char*)g_GPRSecvBuf,"SGNRMC,");
    •      if(buf !=null)
    • {

    [color=rgb(51, 102, 153) !important]复制代码

    4、借助开源
    Github上关于GPS的NEMA解码有现成的code,比如GPSNMEAparser,现在作者改名叫lwgps了,license比较友好MIT的,基于ANSI C99l垒的码移植起来也很简单,具体见论坛的帖子。


    API使用介绍
    第一步,声明全局句柄lwgps_t hgps;
    第二步,初始化lwgps_init(&hgps);
    第三步,在while(1)或者任务中调用lwgpsprocess(&hgps, gpsrxdata, strlen(gpsrx_data));


    剩下的就可以通过,hgps.is_valid来判断GPS模块是否定位成功,如果定位成功则hgps.latitude和hgps.longitude就是经纬度数据,hgps.altitude就是高度数据。当然也可以通过hgps的date,month,year等获取时间数据,hpgs.speed获取速度数据等等。具体参考hgps的定义即可。

    三、附加知识


    如果你GPS的实际数据上传到百度或者高德地图的话,多半会和你实际的地理位置差了几公里...那是因为你的GPS模块吐出来的一般是WGS84坐标系,百度地图用的是BD-09坐标系,高德地图用的是GCJ-02坐标系。


    国外的地图服务商可能会用WGS84坐标系... 数据偏移的算法也不难,网上可查,但是作为一个CTRL+C/V的程序员还是推荐一个开源的代码库ChinaMapShift,license依旧是友好的MIT。


    API使用介绍
    第一步,声明 WGS84和 GCJ02句柄
    Location WGS84;
    Location GCJ02;
    第二步,将GPS输出的合法的WGS84坐标系的数据赋值给WGS84
    WGS84.lat = hgps.latitude;
    WGS84.lng = hgps.longitude;
    第三步,调用transformFromWGSToGCJ()
    GCJ02 = transformFromWGSToGCJ(WGS84);


    剩下的,GCJ02.lat以及GCJ02.lng就是GCJ02坐标系下的经纬度数据了。


    本人水平有限,非常欢迎大家分享如何使用GPS模块的技巧。



    上篇回顾:
    用LPC55xx搭建AIOT平台,步骤分解之传感器篇
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    9 小时前
  • 签到天数: 1393 天

    [LV.10]以坛为家III

    48

    主题

    3450

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    7214
    最后登录
    2024-3-28
    发表于 2021-7-30 09:21:20 | 显示全部楼层

    回帖奖励 +2 NXP金币

    签到,签到
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    [LV.8]以坛为家I

    14

    主题

    1746

    帖子

    4

    金牌会员

    Rank: 6Rank: 6

    积分
    2507
    最后登录
    2023-8-30
    发表于 2021-7-30 09:26:53 | 显示全部楼层

    回帖奖励 +2 NXP金币


    签到签到
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-3-28 19:27 , Processed in 0.143478 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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