分类 喝粥 下的文章

体验DTU的流水帐

暂且称之为DTU吧,稀饭老师做这个已经很久了,从最早的202模块透传固件,好像还有个字母尾标,记不清了,会不会是202U呢?后来有了iRTU,功能越来越多,支持各种主流无联网平台,某日稀饭老师宣布开源,同时也对720提供了支持。最近呢,称为SmartDTU(智连DTU),底层库也进行了重构。
闲话少讲吧,这里主要记录一下一个小白体验dtu的过程吧,沿用一下网友总结的使用流程,记录一下自己的操作过程,以作备忘。

1、把IMEI号码告诉稀饭老师,添加到自己的账户里
2、烧录官方的DTU固件
3、网页配置参数
4、断电重启

*****第一步*****

首先就是提交,imei号码,订货记录里有4g模块的imei,没有找到2g模块的imei,发照片也是不成的,不过也不用去抄,容易出错,可以用qq的二维码扫描功能获取,然后发给稀饭就可以啦,很快,不到2分钟就添加到后台了。
登录http://dtu.openluat.com/,在“设备列表”中就可以看到自己的设备出现在了未分组设备中,先给设备分个组,点击“分组管理”->“添加分组”,添加一个“测试组”,可以在设备列表中“修改分组”把设备分到新组中。“分组管理”中可以为组中的设备“修改别名/修改备注”,这样更好记一些。

- 阅读剩余部分 -

202F模块播放语音

听闻202模块有TTS功能,马上尝试,竟然接个喇叭就能用
https://wiki.openluat.com/doc/luaScriptApi/#audioplay
Miuser老师的demo,sys.timerStart(audio.play,200,1,"TTS",common.gb2312ToUtf8(str),5)
格式:
audio.play(priority,typ,path,vol,cb,dup,duprd)
参数:
priority,必选参数,音频优先级,数值越大,优先级越高
typ,必选参数,音频类型,目前仅支持"FILE"、"TTS"、"RECORD"
path,必选参数,音频文件路径,跟 typ 有关:
typ 为"FILE"时:string 类型,表示音频文件路径。用工具下载音频文件到模块里的缺省目录是/ldata
typ 为"TTS"时:string 类型,表示要播放数据的 UCS2 十六进制字符串
typ为"TTSCC"时:string类型,表示要播放给通话对端数据的UCS2十六进制字符串
typ 为"RECORD"时:number 类型,表示录音 ID
vol,可选参数,播放音量,取值范围0-7
cb,音频播放结束或者出错时的回调函数,回调时包含一个参数:0 表示播放成功结束;1 表示播放出错;2 表示播放优先级不够,没有播放
dup,可选参数,是否循环播放,true 循环,false 或者 nil 不循环
duprd,可选参数,播放间隔(单位毫秒),dup 为 true 时,此值才有意义
实例(现在可以直接播放utf8了):
audio.play(TTS,"TTS",common.binstohexs(common.gb2312toucs2(ttstr)),audiocore.VOL7,testcb)

luat的串口库

--功耗低不需要串口时调用pm.sleep("testUart")
pm.wake("testUart")
--注册串口收到数据后以中断方式调用read接口读取数据
uart.on(UART_ID,"receive",read)
--配置并且打开串口
uart.setup(UART_ID,9600,8,uart.PAR_NONE,uart.STOP_1)
--向设备发送0x01 0x02 0x03三个字节
write(string.fromHex("010203"))

--发送串口数据
function write(s)
log.info("testuart.write",s:toHex(),s)
uart.write(UART_ID,s)
end

--接收串口数据
local function read()
local data = ""
while true do
data = uart.read(UART_ID,"*l")
--数据不存在时停止接收数据
if not data or string.len(data) == 0 then break end
--打开下面的打印会耗时
log.info("testUart.read bin",data)
log.info("testUart.read hex",data:toHex())
--真正的串口数据处理函数
proc(data)
end
end

参考文献:
https://wiki.openluat.com/doc/luatApi/#uartsetup
https://wiki.openluat.com/doc/luatApi/#uarton-id-event-callback
https://ask.openluat.com/article/25