第一次使用AIR724UG.

                                                    合宙AIR724UG体验

一.开箱以及硬件准备
19.9RMB=一块开发板+一个air724UG模块+4G高档黑色材质棒状天线。参加了合宙这么多次开发板活动,每次都感觉自己赚了这次感觉赚的更多了。
图片来源
估摸着可能吧紫光给了一定的优惠支持(只是猜想,个人见解,不负法律责任),RDA牛逼合宙牛逼

二.前情提要

这次是买了两块板子算撸羊毛。主要应用于4g语音传输。因为之前的2G传输语音实时体验欠佳。大概体验是这样的:

设备一语音发送端:按键按下录音------>松开按键传输,假设录音10秒.设备二接收到大概也要等待到第10秒才能接收到。这是设备对设备。当时做了一个桌面的软件发语音给设备还是能快一点点的

结论:2G上传速度太慢。大约1秒1k?

后来寻找解决方案:

方案一:stm32l4或者stm32F4+wm8978+air720+tencentos tiny+SPEEX

选型的考量:
stm32F4或者L4都原生支持物联网操作系统tencentostiny,而且有双I2S。
WM8978:因为当时只知道这玩意。
air720:合宙当时的产品,价格69,感觉awesome,开发板199:没拿到五折卡不awesome
tencentos tiny:对外设的支持。无缝接入LORA.ESP8266,移动通信模块
speex:是一套主要针对语音的开源免费、无专利保护的音频压缩格式,是基于CELP并且专门为码率在2-44kbps的语音压缩而设计的.吸引俺的是低码率。
当时硬件除了4G模块都准备就绪了。后来把这个方案的价格报给上去,黄了。
方案二:合宙air202F加air720。

通过串口进行数据的传递。air202F主要产生语音数据以及播放进入的语音数据。air168好像也行。air720主要进行通信。这个方案很靠谱。成品报价给当时觉得还行。但是提出要实时语音。
图片来源链接所以才有了方案三。

方案三:ESP32加ES8388+AIR720
ESP32:ADF框架.
ES8388:比wm8978老便宜了,根据硬件属性好像他们不属于一个东西。但是俺认为他们还是一个东西。
air720:合宙当时的产品,价格69,感觉awesome,开发板199:没拿到五折卡不awesome。别问,问就是穷人。
其实还有其他方案:mt7628,rk3308。

多说一句:rk3308的板我买的是百度的大金刚的拆机玩意,9.9一个。试了下硬件没问题。关机进入maskrom也正常。刷写引导文件也正常。但是无法刷入后续文件。有知道这个得大牛可以说说。这个还是等待后续再解决,俺解决了就再来说。
这就是上述俺为什么买两块开发板的理由,希望没抢到的大兄弟能理解。

三.进入正题:air724UG
图片链接

一.首先还是说句总结的话:
1.LUAT开发724UG一切以wiki(https://wiki.openluat.com/)为第一.不知道的全部wiki。当然你也可以面向合宙的QQ群编程也行。他们有常驻群的大牛(有几个大牛24小时stand by)。
2.如果是初学者,先要告诉你们lua使用很简单。是使用使用使用!!!。脚本语言也能够立即给与调试反馈。对了,不要买lua的书看。单纯从开发luat来看。不需要看(个人见解)
3.Demo那肯定是要过一遍的,只拣自己要用的demo功能使用。其他的看都不要看(纯属个人见解)
4.感谢制作老版固件的朱工和新版luat(这个俺不知道具体是谁。反正是群里的那几个大牛)
5.对了。又蹦出一个luatos二次开发什么鬼?

二.开始:
一.创建工程目录




二.进入官网下载文件

1.硬件文档下载链接:

http://www.openluat.com/Product/file/uis8910dm/Air720UH_Air720UG_%E6%A8%A1%E5%9D%97%E7%A1%AC%E4%BB%B6%E8%AE%BE%E8%AE%A1%E6%89%8B%E5%86%8C_V1.5.pdf

图片来源:合宙官网。具体链接无法复制

2.软件下载链接
[LuaTools] Luat下载调试工具v2:这玩意总结来说就是集下载与调试于一身的工具
http://www.openluat.com/Product/file/luatoolsV2-redirect.html
底层软件:这玩意你就理解为一个通用固件。有功能更新的时候更新一下。如果你的项目不需要功能更新可以不使用。相当于你更新安卓8,9,10一样的体验。
http://www.openluat.com/Product/file/rda8910/core_V0003.zip
看到这个链接的时候这就有点玩味了,8910内部代号竟然还是RDA.
上层软件luaTask V2.2.7 (Demo + Lib):这玩意你就理解为基于这个下载ZIP解压的文件开发.
http://www.openluat.com/Product/file/rda8910/script_LuaTask_V2.2.7.zip
USB驱动下载

http://www.openluat.com/Product/file/uis8910dm/sw_file_20200303181718_8910_module_usb_driver

下载完成以后:
二.开搞:
1.解压usb驱动文件
warning:win8以上的系统都需要f8开机禁用签名
安装成功完成后:
2.解压第一个core_V0003.zip文件:
当然是先看readme。这次看了一下感觉和没看一样。可能要等待后续更新。
readme,txt文件内容:
Luat_V0003_RDA8910文件夹:
Luat_V0003_RDA8910.dfota.bin
Luat_V0003_RDA8910.pac
3.安装luatools.exe文件
不废话,很直接。更像是一个一键压缩文件。打开就自动解压目录然后打开自己。然后请求更新。
点击开始:进入下载,等待更新成功,点击开始和取消都行,俺就是点了开始。
4.解压script_LuaTask_V2.2.7.zip文件
release.note可以看看。主要是合宙技术人员见招拆招的经过。
doc文件夹:wiki的离线版,对demo和lib的解释
demo文件夹:基于这些demo开发就好了。里面的功能demo应该是能满足你的要求的。你所要做的就是整合。
lib:大部分时间不看。想了解api的原理的可以看一下。
三.进行demo实操
俺使用的IDE是LDT(基于eclipse的lua开发工具)这个根据个人使用习惯。因为lua脚本语言,用记事本也能编程。
1.创建项目
1.调整IDE编码为UTF-8
main.lua文件:一般情况下不要管,默认就好了
--必须在这个位置定义PROJECT和VERSION变量 --PROJECT:ascii string类型,可以随便定义,只要不使用,就行 --VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义 PROJECT = "HTTP" VERSION = "2.0.0"

–加载日志功能模块,并且设置日志输出等级
–如果关闭调用log模块接口输出的日志,等级设置为log.LOG_SILENT即可
require “log”
LOG_LEVEL = log.LOGLEVEL_TRACE
–[[
如果使用UART输出日志,打开这行注释的代码”–log.openTrace(true,1,115200)”即可,根据自己的需求修改此接口的参数
如果要彻底关闭脚本中的输出日志(包括调用log模块接口和Lua标准print接口输出的日志),执行log.openTrace(false,第二个参数跟调用openTrace接口打开日志的第二个参数相同),例如:
1、没有调用过sys.opntrace配置日志输出端口或者最后一次是调用log.openTrace(true,nil,921600)配置日志输出端口,此时要关闭输出日志,直接调用log.openTrace(false)即可
2、最后一次是调用log.openTrace(true,1,115200)配置日志输出端口,此时要关闭输出日志,直接调用log.openTrace(false,1)即可
]]
–log.openTrace(true,1,115200)

require “sys”

require “net”
–每1分钟查询一次GSM信号强度
–每1分钟查询一次基站信息
net.startQueryAll(60000, 60000)

–加载控制台调试功能模块(此处代码配置的是uart2,波特率115200)
–此功能模块不是必须的,根据项目需求决定是否加载
–使用时注意:控制台使用的uart不要和其他功能使用的uart冲突
–使用说明参考demo/console下的《console功能使用说明.docx》
–require “console”
–console.setup(2, 115200)

–加载网络指示灯和LTE指示灯功能模块
–根据自己的项目需求和硬件配置决定:1、是否加载此功能模块;2、配置指示灯引脚
–合宙官方出售的Air720开发板上的网络指示灯引脚为pio.P2_0,LTE指示灯引脚为pio.P2_1
–require “netLed”
–netLed.setup(true,pio.P2_0,pio.P2_1)
–网络指示灯功能模块中,默认配置了各种工作状态下指示灯的闪烁规律,参考netLed.lua中ledBlinkTime配置的默认值
–如果默认值满足不了需求,此处调用netLed.updateBlinkTime去配置闪烁时长
–LTE指示灯功能模块中,配置的是注册上4G网络,灯就常亮,其余任何状态灯都会熄灭

–加载错误日志管理功能模块【强烈建议打开此功能】
–如下2行代码,只是简单的演示如何使用errDump功能,详情参考errDump的api
require “errDump”
errDump.request(“udp://ota.airm2m.com:9072”)

–加载远程升级功能模块【强烈建议打开此功能,如果使用了阿里云的OTA功能,可以不打开此功能】
–如下3行代码,只是简单的演示如何使用update功能,详情参考update的api以及demo/update
–PRODUCT_KEY = “v32xEAKsGTIEQxtqgwCldp5aPlcnPs3K”
–require “update”
–update.request()

–加载HTTP功能测试模块
require “testHttp”

–启动系统框架
sys.init(0, 0)
sys.run()

接下来是testHttp文件
— 模块功能:HTTP功能测试.
– @author openLuat
– @module http.testHttp
– @license MIT
– @copyright openLuat
– @release 2018.03.23

module(…,package.seeall)

require”http”

local function cbFnc(result,prompt,head,body)
log.info(“testHttp.cbFnc”,result,prompt)
if result and head then
for k,v in pairs(head) do
log.info(“testHttp.cbFnc”,k..”: “..v)
end
end
if result and body then
log.info(“testHttp.cbFnc”,”bodyLen=”..body:len())
end
end

local function cbFncFile(result,prompt,head,filePath)
log.info(“testHttp.cbFncFile”,result,prompt,filePath)
if result and head then
for k,v in pairs(head) do
log.info(“testHttp.cbFncFile”,k..”: “..v)
end
end
if result and filePath then
log.info(“stop”,os.time())
local size = io.fileSize(filePath)
log.info(“testHttp.cbFncFile”,”fileSize=”..size)

    --输出文件内容,如果文件太大,一次性读出文件内容可能会造成内存不足,分次读出可以避免此问题
    if size<=4096 then
        log.info("testHttp.cbFncFile",io.readFile(filePath))
    else

    end
end
--文件使用完之后,如果以后不再用到,需要自行删除
if filePath then os.remove(filePath) end

end

local function downloadfiles()
log.info(“start”,os.time())
http.request(“GET”,”http://域名或者ip/download.zip”,nil,nil,nil,30000,cbFncFile,”download.zip”)
end

sys.timerStart(downloadfiles,20000)

最后:下载测试
点击软件的项目管理测试
选择底层core
添加以下文件,以及打钩。
然后点击下载脚本。
接入usb接口下载:
按照如下手法:
详情请参照如下链接
插卡一,显示如下。
插卡槽二才能成功
然后把一个zip文件发送到服务器根目录
大小为291kb
最后可以得出下载一个291kb的文件大概四秒
第二次测试时间为5秒
第三次测试时间为5秒
改变变量:更换带宽大一点点的服务器。还是5秒
不测试了,女盆友呼唤俺了。哈哈哈哈哈
最后分享一个大兄弟开发的emqtt消息缓存到数据库的项目,不要购买商业版也能使用消息缓存到数据库。
https://blog.ezlinker.cn/2020/03/23/wwhai-EMQX%E6%95%99%E7%A8%8B-20200323-EMQX%E4%BA%8C%E6%AC%A1%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B%EF%BC%88%E9%AB%98%E7%BA%A7%E7%AF%87%EF%BC%89/

上次更新 2021-01-28