欢迎来到Luat开源社区

Luat = Lua + AT, Luat推出的物联网开源架构,依托于通信模块做简易快捷的开发,将传统的AT命令用Lua语言封装成API,并提供各种功能应用的demo,大大减少用户的开发成本。

开发者可以通过调用API轻松,便捷的实现TTS、GPS、SOCKET、MQTT、OTA等功能。例如下面通过几条代码既可以实现GPS,MQTT功能。

GPS

--引用gps.lua、sys.lua
require"gps"
require"sys"

--定义函数prtgps,在trace中输出gps定位信息
--是否3D定位,经纬度,速度,方向角,海拔
local function prtgps()
    print("gps", gps.is3dfix(), gps.getgpslocation(), gps.getgpsspd(), gps.getgpscog(), gps.getaltitude())  
end

--设置定时器,每10秒调用一次prtgps函数
sys.timer_loop_start(prtgps, 10000)
--开机后,初始化gps;gps授时同步时钟
gps.init()
gps.settimezone(gps.GPS_BEIJING_TIME)

MQTT

--引用mqtt.lua
require"mqtt"

--mqtt connect成功的回调函数
local function connectedcb()
    --订阅主题
    mqttclient:subscribe({topic="/event0",qos=1})
    --发布消息
    mqttclient:publish("/event0", "qos1data", 1)
end

--创建mqtt client
mqttclient = mqtt.create("TCP", "lbsmqtt.airm2m.com", 8083)
--连接到 mqtt 服务器
mqttclient:connect("clientID", 240, "username", "password", connectedcb)

Luat介绍

Lua脚本是内嵌在模块基础软件core中运行的(core编译生成的文件是.lod文件),Lod中有支持Lua运行的环境,Lua脚本就在这个环境中运行。脚本实现功能是通过API(对AT命令进行了封装)实现的。

在模块内部,Lua发出AT命令,并通过虚拟的uart.ATC 口和Lod之间进行AT命令的交互。即Lua发出AT命令,Lod接收后进行解析并返回AT命令运行结果,不需要上位机(一般是单片机)通过物理串口给模块发AT命令,这样就节省了单片机的花费。

coreLua

Luat入门视频


名称解释

下载github上的Luat开发包。开发包的目录为下:

├── core

    └──Luat_VXXXX_8955.lod:不支持SSL、TTS、SPI接口的LCD功能
    Lua脚本和资源(通过烧写工具烧写的文件,例如lua脚本文件,mp3音频文件)可用768KB
    文件系统(例如脚本运行过程中创建的参数文件,录音文件,远程升级文件等)可用860KB

    └──Luat_VXXXX_8955_SSL.lod:支持SSL功能
    LuaDB脚本和资源(通过烧写工具烧写的文件,例如lua脚本文件,mp3音频文件)可用768KB
    文件系统(例如脚本运行过程中创建的参数文件,录音文件,远程升级文件等)可用796KB

    └──Luat_VXXXX_8955_SSL_TTS.lod:支持SSL、TTS功能,不支持MP3、MIDI、录音功能
    LuaDB脚本和资源(通过烧写工具烧写的文件,例如lua脚本文件,mp3音频文件)可用324KB
    文件系统(例如脚本运行过程中创建的参数文件,录音文件,远程升级文件等)可用344KB

    └──Luat_VXXXX_8955_SSL_UI.lod:支持SSL、SPI接口的LCD功能
    LuaDB 脚本和资源(通过烧写工具烧写的文件,例如lua脚本文件,mp3音频文件,图片文件)可用704KB
    文件系统(例如脚本运行过程中创建的参数文件,录音文件,远程升级文件等)可用540KB

    └──Luat_VXXXX_8955_TTS_UI.lod:支持TTS、SPI接口的LCD功能
    LuaDB 脚本和资源(通过烧写工具烧写的文件,例如lua脚本文件,mp3音频文件,图片文件)可用152KB
    文件系统(例如脚本运行过程中创建的参数文件,录音文件,远程升级文件等)可用132KB

    └──Luat_VXXXX_8955_TTS1.lod:支持TTS功能
    LuaDB脚本和资源(通过烧写工具烧写的文件,例如lua脚本文件,mp3音频文件)可用216KB
    文件系统(例如脚本运行过程中创建的参数文件,录音文件,远程升级文件等)可用260KB

    └──Luat_VXXXX_8955_UI.lod:支持SPI接口的LCD功能
    LuaDB 脚本和资源(通过烧写工具烧写的文件,例如lua脚本文件,mp3音频文件,图片文件)可用512KB
    文件系统(例如脚本运行过程中创建的参数文件,录音文件,远程升级文件等)可用796KB

    └──Luat_VXXXX_8955_SSL_FLOAT.lod:支持SSL功能、浮点数

    └──Luat_VXXXX_8955_SSL_UI_FLOAT.lod:支持SSL功能、PI接口的LCD功能、浮点数

    └──Luat_VXXXX_8955F.lod:64M flash版本(Air202F),支持SSL、TTS、SPI接口的LCD功能


├── script_LuaTask 基于Lua的协程实现了多线程的支持

    └── demo 例程
    └── lib 库文件
    └── product/LuatBoard_Air202  LuatBoard开发板

底层软件(也叫基础软件,位于/core)用C语言开发完成,支撑Lua的运行。

lib目录中的“库脚本”(所有项目都应该使用),

用户自己编写的“应用脚本”(例如demo目录下的脚本)

LuaTools

使用Luat调试开发工具对模块进行lod和script的下载。该工具功能如下:

加密lod功能;

下载官方lod底层;

下载Lua脚本进行二次开发;

用App验证开发板是否为良品;

对模块打印trace进行输出分析;

生成量产文件进行远程升级/批量生产。

工具并不支持代码编辑功能,如果要编辑代码,则需下载其他编辑器,比如sublime text 3,vscode,notepad++等。

使用教程

下载链接