数码之家

标题: Luat 简单的搞个gps 定位器 [打印本页]

作者: zipcord    时间: 2024-7-5 23:21
标题: Luat 简单的搞个gps 定位器
本帖最后由 zipcord 于 2024-7-6 11:28 编辑

23年的时候关注合宙的公众号,经常见里面发什么39.9的cc电流表,19.9的air780E 做无线远程之类的,当时觉得不会luat语法,就没整。
悔不该应该薅羊毛啊,现在一个电流表1199,真是惊掉下巴。


说起这个定位器不得不说我的车上有个定位器,续费60一年,又在网上看了一圈,都是小100多,而且评价都不长久。碰巧搜到了度云air780eg 这个带4g和gps,最主要是带5年流量,才66,也不用注册直接用。手痒就想试试水。
下手了。就是这个小东西,还挺小巧的。
[attach]2151860[/attach]
[attach]2152042[/attach]

买回来后默认是带定位系统的。自带小程序


[attach]2151862[/attach]
按理说应该可以用,不知道为啥这个定位特别慢而且延迟比较大。试了一天觉得不好用。
于是手又抽抽了,问了客服,可以刷合宙的固件。网上简单学了一下刷固件,就干了。
客服说 刷完就刷不回最初的定位固件了。 罢了,就当学习投资了。 果断学习了几天luat。
找了个demo 就上手试了。能用。期间各种坑。 最后吭哧的搞的能用了,发上来和大家分享一下。
找了个air780eg_gnss 这个demo 改吧改吧。现在可以用了。
定位是网页和小程序,这个有个缺点是没有轨迹。但是定位是够用的。目前测试定位1分钟,休眠5分钟,测了7个小时用了40ma
这个功耗应该还能降,可惜合宙资料比较少。群里也是没技术支持。慢慢摸索吧。
电脑定位是这个界面 。手机小程序不能搜了,需要扫二维码才行。



有兴趣的的朋友可以一起交流尝试。



        




作者: zipcord    时间: 2024-7-5 23:23
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "gnsstest"
VERSION = "1.0.1"
PRODUCT_KEY = "" -- 基站定位需要用到

--[[
本demo需要很多流量!!!
注意: 室内无信号!! 无法定位!!!
]]

-- sys库是标配
_G.sys = require("sys")
require("sysplus")

mobile.simid(1)  --用SIM1 内置卡

_G.lat,_G.lng="0","0"

_G.gps_uart_id = 2

-- LED和ADC初始化
LED_GNSS = 27
gpio.setup(LED_GNSS, 0) -- GNSS定位成功灯




-- Air780E的AT固件默认会为开机键防抖, 导致部分用户刷机很麻烦
if rtos.bsp() == "EC618" and pm and pm.PWK_MODE then
    pm.power(pm.PWK_MODE, false)
end


-- 启动时对rtc进行判断和初始化
local reason, slp_state = pm.lastReson()
log.info("wakeup state", pm.lastReson())
if reason > 0 then
    pm.request(pm.IDLE)
        mobile.flymode(0, false)
        mobile.flymode(1, false)
    log.info("已经从深度休眠唤醒")
   
end

-- 演示GNSS定位, 含AGPS
require "testGnss"

-- 本TCP演示是连接到 gps.nutz.cn 19002 端口, irtu的自定义包格式
-- 网页是 https://gps.nutz.cn/ 输入IMEI号可参考当前位置
-- 微信小程序是 irtu寻物, 点击IMEI号, 扫描模块的二维码可查看当前位置和历史轨迹
-- 服务器源码地址: https://gitee.com/wendal/irtu-gps
require "testTcp"

sys.taskInit(function()
    for i=1,3 do
      gpio.set(LED_GNSS, 1)
      sys.wait(200)
      gpio.set(LED_GNSS, 0)
      sys.wait(200)
    end
   
        log.info("工作60秒后进入深度休眠")
        sys.wait(60*1000)
        mobile.simid(0)  --用SIM0 否则无法休眠
        mobile.flymode(0, true)
        log.info("深度休眠300s,用DTIMER来唤醒")
    for i=1,2 do
      gpio.set(LED_GNSS, 1)
      sys.wait(500)
      gpio.set(LED_GNSS, 0)
      sys.wait(500)
    end
        sys.wait(100)
        pm.power(pm.USB, false) -- 如果是插着USB测试,需要关闭USB
        pm.force(pm.HIB)
        pm.dtimerStart(0, 300*1000)
        sys.wait(5000)
    log.info("pm_usb on")
        pm.power(pm.USB, true) -- 如果是插着USB测试,需要关闭USB

end)


-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!
作者: beiling    时间: 2024-7-6 09:53
学习了 很实用的东西
作者: 壹筒江湖    时间: 2024-7-6 10:21
你这还带码的
作者: zipcord    时间: 2024-7-6 11:29
壹筒江湖 发表于 2024-7-6 10:21
你这还带码的

哈哈哈,忘了p 了
作者: 石墨    时间: 2024-7-6 20:48
西安的坛友
作者: 网络孤客    时间: 2024-7-8 17:37
谢谢,这么简单!
作者: dsx5ds    时间: 2024-11-4 00:41
大佬  我也是入手的这个,官方不给luat的支持,也是在摸索
-- 演示GNSS定位, 含AGPS
require "testGnss"  这个脚本可以给一下么

作者: dsx5ds    时间: 2024-11-4 01:17
testGnss和demo里的uc6228有改动么




欢迎光临 数码之家 (https://www.mydigit.cn/) Powered by Discuz! X3.4