体验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/,在“设备列表”中就可以看到自己的设备出现在了未分组设备中,先给设备分个组,点击“分组管理”->“添加分组”,添加一个“测试组”,可以在设备列表中“修改分组”把设备分到新组中。“分组管理”中可以为组中的设备“修改别名/修改备注”,这样更好记一些。

- 阅读剩余部分 -

用大球派播放MP3

2018-07-10-ubuntu-16.04-server-preview-bpi-m3-sd-emmc.img
sudo apt-get install mplayer
mplayer miku.m4a

apt-get install alsa-base
alsamixer

sudo apt-get install libsox-fmt-all
sudo apt-get install sox
rec qubot.wav

参考文献:
https://blog.csdn.net/vola9527/article/details/85107928

python写中文文件

发现一个奇怪的事情,网页上抓的中文可以写文件,MQTT收到的中文却写不进文件
经查询:python打开txt文件默认的是ascii编码,是无法处理中文字符的
用type看数据类型,有str和unicode有区别
小撸说.decode('utf-8'),结果发现是转unicode,转str用.encode('utf-8')
这样就可以写文件了

参考文献:
https://blog.csdn.net/joyfixing/article/details/79971667

做个控制页面

大体url如下吧,其中d是设备编号,a是可选项,执行的动作
http://wy.mikuq.com/panel.htm?d=45772655&a=on
大概就对应这么一个二维码
45772655.png
首先要取得url中的参数,送到title上

<script>
        function getUrlParam(name)
        {
                var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
                var r = window.location.search.substr(1).match(reg);
                if (r!=null) return decodeURI(r[2]); return null;
        }
        window.onload = function(){
                try{
                        var ID=getUrlParam("d");
                        document.getElementsByTagName("title")[0].innerText = "设备ID:"+ID;
                }
                catch(ex){}
        }
</script>

- 阅读剩余部分 -

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)