目录

1、前言:合宙Luat,让万物互联更简单

2、硬件:Air724UG & Air530

2.1 硬件模块介绍

2.2 实验硬件条件

3、嵌入式软件

3.1 打开电压域

3.2 配置串口

3.3 打开GPS

3.4 处理NMEA数据

3.5 打印GPS相关数据

4、实验结果


1、前言:合宙Luat,让万物互联更简单

LuatOS是合宙公司推出的一款嵌入式操作系统——嵌入式的脚本运行框架。覆盖各类物联网应用场景,可运行于4G Cat.1/MCU/NB-IoT/2G/Wi-Fi/蓝牙等等不同的物联网主控芯片。这么做的目的,用合宙自己的话来说,就是——合宙Luat,让万物互联更简单

结合最近项目开发的亲身经历,使用LuatOS来开发项目,的确很简单,很快能把想法实现。特别适合人手有限的物联网公司。还有大学生做创业项目、别业设计等等,就是可以更加专注于产品本身,而不必在顶层的硬件和软件上牵涉太多时间和精力。

这篇文章主要记录近期针对合宙的Cat1模块搭载GPS定位模块进行定位的一些开发情况。

2、硬件:Air724UG & Air530

2.1 硬件模块介绍

4G Cat.1模块——Air724UG

Air724UG是合宙2020年推出的一款4G Cat1全网通系列模块,可以支持AT指令、和Luatos两种开发模式。利用AT指令模式开发,就是把Air724UG完全当成一个普通的Cat1模块,用uart和上位机MCU通信,接受AT指令来完成联网、数据透传等功能。

而使用Luatos的开发模式,一个明显差异就是会少用一个MCU,所有的控制、通信功能都在Air724UG模块内部来完成。在进行实际开发的时候,合宙提供了丰富的应用接口,只需要开发者自己编写脚本调用这些接口就可以了。比如本次开发要进行GPS模块的应用,需要应用串口uart和GPS模块进行通信、打开GPS模块、收到数据后要进行NMEA数据解析、判断定位是否成功,等等。其实还是挺复杂的,如果全是自己来编写驱动代码,也不是一件容易的事情。现在用合宙的Luatos,利用现有的API,开发起来很轻松,我用了一个下午就成功定位了,文章最后展示定位的地图位置。

Air724UG卖的也不贵,淘宝上很容易买到。而且官网提供的配套资料很全,特别方便。

GPS定位模块——Air530Z

Air530Z是合宙自己推出的GPS /北斗双模单频定位模组,官方售价14.9园真便宜。淘宝上也能很方便买到Air530z的开发板,自带陶瓷天线,非常容易使用。

2.2 实验硬件条件

实验材料 数量
Air724UG评估板 1套
Air530Z评估板 1套
杜邦线,用于开发板之间连接 4根
USB数据线,用于连接电脑和Air724UG评估板 1跟

模块之间连接,需要连接四根线:

Air530Z评估板 Air724UG评估板
GND(黑) GND(黑)
RXD(橙) U1_TXD(橙)
TXD(蓝) U1_TXD(蓝)
VDD(红) VMMC(红)

3、嵌入式软件

3.1 打开电压域

硬件上Air724的VMMC引脚给GPS模块供电,需要在脚本打开Air724的电压域,让LDO输出供电3.2V.

pmd.ldoset(15,pmd.LDO_VMMC)

3.2 配置串口

使用Air724的Uart1来接收GPS模块上报的数据,因此需要对串口1进行配置。即按照如下格式进行Uart的接口设置:串口代号、波特率——根据外接GPS模块来定、8位数据、校验位、停止位。

gps.setUart(1,9600,8,uart.PAR_NONE,uart.STOP_1)

3.3 打开GPS

gps.open(gps.TIMER,{tag="TEST3",val=300,cb=test3Cb})

3.4 处理NMEA数据

gps.setNmeaMode()接口会调用nmeaCb()函数打印NEMA数据,当GPS应用启动时会根据条件调用回调函数。

函数名:nemacb
功能  :NEMA数据的处理回调函数
参数  :
        data:一条NEMA数据
返回值:无
]]
local function nmeaCb(nmeaItem)
    log.info("testGps.nmeaCb",nmeaItem)
end

local function test1Cb(tag)
    log.info("testGps.test1Cb",tag)
    printGps()
end

local function test2Cb(tag)
    log.info("testGps.test2Cb",tag)
    printGps()
end

local function test3Cb(tag)
    log.info("testGps.test3Cb",tag)
    printGps()
end

3.5 打印GPS相关数据

打开一个循环定时器调用printGps()函数打印gps相关数据。

local function printGps()
    if gps.isOpen() then
        local tLocation = gps.getLocation()--获取度格式的经纬度信息
        local speed = gps.getSpeed()
        log.info("testGps.printGps",
            gps.isOpen()--获取GPS模块是否处于开启状态,gps.isFix()--获取GPS模块是否定位成功,
            tLocation.lngType,tLocation.lng,tLocation.latType,tLocation.lat,--打印经纬度
            gps.getAltitude(),--获取海拔
            speed,--获取速度
            gps.getCourse(),--获取方向角
            gps.getViewedSateCnt(),--获取可见卫星的个数
            gps.getUsedSateCnt())--获取定位使用的卫星个数
    end
end

sys.timerLoopStart(printGps,2000)

4、实验结果

烧录底层固件和脚本后,运行电路模块,成功获取到GPS的NMEA数据,log如图所示显示GPS定位情况,及实时的NMEA数据。

根据log所显示,当前坐标为E 110.4238686 N 19.9687228

将坐标输入到高德开发平台的坐标拾取器,立刻定位到我家位置,效果非常好。

LuatOS快速上手——GPS定位相关推荐

  1. 导航定位用户向服务器发送位置请求6,gps定位服务器地址

    gps定位服务器地址 内容精选 换一换 将NFS文件系统挂载到Windows IIS服务器时,报错路径格式不支持,挂载失败.IIS Web服务器的物理路径错误.根据可能原因进行故障排查.如图1为文件系 ...

  2. 上传文件 微信小程序input_快速上手微信小程序UI框架

    本课程属于 微信小程序 A计划,不单独售卖,加入 A 计划可免费观看本课程及所有 微信小程序 收费课程~ 微信小程序 A计划永久有效期购买链接: http://www.sikiedu.com/clas ...

  3. Python程序员的圣经——《Python编程快速上手:让繁琐工作自动化》尾末附下载地址

    一.前言 如今,人们面临的大多数任务都可以通过编写计算机软件来完成.Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过Python编程,我们能够解决现实生活中的很多任务. 今天给 ...

  4. 入职新公司,如何快速上手公司业务?

    最近很多小伙伴入职新公司,问我入职好如何快速上手自己负责的产品,这里说一下自己的看法: 1.了解一下公司的业务逻辑 可以通过请教别人的方式,了解一下公司的业务,请教的时候可以给别人买一杯咖啡啥的,谁都 ...

  5. React+Webpack快速上手指南

    2019独角兽企业重金招聘Python工程师标准>>> 前言 这篇文章不是有关React和Webpack的教程,只是一篇能够让你快速上手使用目前这两种热门技术的前端指南,并假设你对两 ...

  6. PyQt5入门——手把手教你配置环境,快速上手GUI程序开发(Anaconda+PyCharm+Qt Designer+pyuic)

    文章目录 引言 1. 安装python环境 1.1 安装anaconda 1.2 创建虚拟环境 2. 安装PyQt库 3. 安装pycharm 4. 在pycharm中配置PyQt 4.1 配置PyQ ...

  7. 《Iphone SDK3开发快速上手》

    <Iphone SDK3开发快速上手> --iPhone SDK 3 Visual QuickStart Guide 译者:(美)Duncan Campbell   著 刘红伟 等译 IS ...

  8. endnote一打开就自动关闭_【EndNote文献管理】5分钟快速上手Endnote

    EndNote是我们在撰写和编辑论文中常用的软件,有了它可以让我们更加快速的管理参考文献,也可以更方便地插入和编辑参考文献. 本篇教程教你如何快速上手EndNote,通过几个常用的功能就可以迅速掌握这 ...

  9. android功耗(23)---gps定位开发省电要点

    android手机gps定位开发省电要点 android手机使用GPS定位会非常费电.google工程师在quora上做了具体的解释,有兴趣可以看看 https://www.quora.com/Bat ...

最新文章

  1. C++Primer学习笔记(二)
  2. Android入门:DDMS视图
  3. torch torchvision 下载安装与使用
  4. 通过设置Cookie 让弹框显示一次
  5. linux用ping命令测试网速,linux下面使用命令测试网速
  6. 光线求交加速算法:边界体积层次结构(Bounding Volume Hierarchies)3-LBVH(Linear Bounding Volume Hierarchies)
  7. hpux 下查看内存的的大小的几种方法:
  8. 时间记录html,jquery水平、垂直时间线记录jQuery Timelinr
  9. dockerfile制作镜像及k8s中应用
  10. PMBOK(第六版) PMP笔记——《八》第八章(项目质量管理)
  11. linux系统串口dmx512,基于stm32实现DMX512协议发送与接收详解
  12. 页面置换算法详解(10种)
  13. 用c语言判断一个数是否为素数
  14. 动态ARP检测原理及应用
  15. 虚拟化和禁用安全启动的设置
  16. 远程桌面连接服务器显示内部错误,解决远程桌面连接出现了内部错误
  17. LMS自适应波束形成算法(MATLAB)
  18. 2022年天猫超市春节不打烊活动时间规定
  19. 怎么用python编简单游戏大全_适合新手练手的三个python简单小游戏
  20. [从头读历史] 第241节 根据天时定历法

热门文章

  1. 网络工程师的前景如何?未来是怎么样的?
  2. uni-app项目实现用户注册密码前端页面加密
  3. 线性非齐次微分方程的求解套路
  4. 算子法二阶线性非齐次微分方程的通解
  5. 【转载】Oracle 大字段处理
  6. leetcode 1884-鸡蛋掉落-两枚鸡蛋
  7. kafka:默认的分区策略
  8. 连咖啡:新零售时代中的娱乐“生意经” | 一点财经
  9. 旅游行业电子合同应用普及,提速、控险、降本
  10. MySQL连接查询的成本