分享一个 AIR724(电信卡)利用 bark 短信转发的操作, AIR780E 或许也能直接用

2022-11-10 16:07:59 +08:00
 nirvanahh

前些天跟风上车了 AIR780E ,到手发现不支持电信短信转发,再加上官方二次开发也没放出来(官网显示 11 月 13 号放出),直接吃灰,立马入了个 AIR724 (外接电源工业应用铁盒那种),724 支持电信 VoLTE 状态下的短信收发,最好选择带 USB 接口调试这种,方便固件和脚本的刷写。 参考了几位大佬的脚本,谢谢大佬们的示范,我做了点微不足道的复制粘贴工作

使用 Air724ug 开发板进行短信转发 https://web.archive.org/web/20221026074816/https://blog.okwlan.com/article/air724ug.html

使用 Air724UG 作为短信转发器 https://www.lotlab.org/2021/10/17/air724ug-sms-forwarder/

air724UG + Luat 玩转物联网(一) 环境搭建及固件烧录 https://www.jianshu.com/p/1f7043fff6de

准备工作:

1 、724 模块+天线+电源+数据线+驱动+luatoolsV2 调试软件 2 、电信卡(带流量,利用自身流量转发到 bark ) 3 、已部署好的 bark 服务器地址

实际操作( WIN7 驱动支持不好,工具显示不正常,建议 WIN10 操作):

1 、装好驱动打开 luatools 对模块进行刷机 选择 luatools\resource\8910_lua_lod\core_V4018\LuatOS-Air_V4018_RDA8910_TTS_NOLVGL_FLOAT.pac 进行下载,重启后进行下一步

2 、烧写脚本 进入项目管理测试里新建一个项目名称( SMS 之类的) 底层 core 选择 luatools\resource\8910_lua_lod\core_V4018\LuatOS-Air_V4018_RDA8910_TTS_NOLVGL_FLOAT.pac 脚本文件选择 luatools\resource\8910_script\script_LuaTask_V2.4.3\demo\sms 下面的 main.lua 和 testSms.lua 并对 testSms.lua 脚本文件做以下编辑,并把第三行的 BARK_URL 替换成自己的:

PROJECT = "SMS_Forwarder"

VERSION = "1.0.0"

BARK_URL = "http://XXX.XXX.XXX.XXX:8080/ABCDEFGHIJK/" -- 替换成自己的 bark 推送地址

require "sys"

require "http"

require "sms"

require "common"

require "cc"

require "audio"

require "net"

-- HTTP 回调,显示调试信息用 function httpCallback(result, prompt, head, body) if result then print("HTTP", prompt, body) else print("HTTP Request Failed. ", prompt) end end

-- 将消息发送到你的平台 function notifyToBark(msg) http.request( "GET", -- BARK_URL..string.urlEncode(msg), BARK_URL..string.rawurlEncode(msg), -- 对内容中文进行编码 nil, -- 不指定证书 nil, nil, 30000, -- 发送超时,ms httpCallback, -- 回调 nil ) end

--[[ num:短信号码,ASCII 码字符串格式 data:短信内容,字符串格式 datetime:短信日期和时间,ASCII 码字符串格式 ]]

function smsCallback(num, data, datetime) print("SMS FROM ", num, " IN ", datetime) print(data)

data = common.gb2312ToUtf8(data) -- 短信编码要转换为目标平台支持的 UTF-8
data = string.gsub(data, "*", "\\*") -- Telegram 特殊字符转义
data = string.gsub(data, "_", "\\_") -- Telegram 特殊字符转义
notifyToBark(num.." ("..datetime.."):\r\n"..data)

end

call_in = false

-- 电话拨入回调,在这里发送通知并接通电话 function call_incoming(num) print("CALL FROM ", num) if not call_in then call_in = true notifyToBark(num.." 给您来电") cc.accept(num) end end

-- 电话接通回调,这里播放 TTS 通知对方 function call_connected(num) print("CALL CONNECTED") call_in = false --通话中向对方播放 TTS audio.play(7,"TTS","您好,机主无法接听您的来电,请使用短信联系机主。",7,nil,true,2000) --30 秒之后主动结束通话 sys.timerStart(cc.hangUp,30000,num) end

-- 电话挂断回调,停止 TTS function call_disconnected(discReason) print("CALL DISCONNECTED") call_in = false sys.timerStopAll(cc.hangUp) audio.stop() end

-- 定时任务:每天发送短信到 10001 查询流量 sys.timerLoopStart( function() sms.send("10001", "108", nil, nil) end , 246060*1000 )

--加载网络指示灯和 LTE 指示灯功能模块 --根据自己的项目需求和硬件配置决定:1 、是否加载此功能模块; 2 、配置指示灯引脚 --合宙官方出售的 Air720U 开发板上的网络指示灯引脚为 pio.P0_1 ,LTE 指示灯引脚为 pio.P0_4 require "netLed" pmd.ldoset(2,pmd.LDO_VLCD) netLed.setup(true,pio.P0_1,pio.P0_4)

--设置短信回调 sms.setNewSmsCb(smsCallback)

--禁用 RNDIS ,防止跑流量 ril.request("AT+RNDISCALL=0,1")

--注册电话回调 sys.subscribe("CALL_INCOMING", call_incoming) sys.subscribe("CALL_CONNECTED", call_connected) sys.subscribe("CALL_DISCONNECTED", call_disconnected)

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

-- 系统初始化 sys.init(0, 0) sys.run()

勾选 usb 打印 trace 、添加默认 lib 、升级文件包含脚本 选择下载脚本,7-8S 和显示成功,会自动重启,等个半分钟左右就可以发短信和打电话测试了

2715 次点击
所在节点    分享发现
6 条回复
nirvanahh
2022-11-10 16:17:13 +08:00
代码贴出来段七八糟的,搞不懂了,有需要的密我发脚本
lucifer9
2022-11-10 16:38:36 +08:00
724 支持 VoLTE ,那它接打电话,语音是能通过程序处理吗?还是必须接 Mic 和 Speaker
nirvanahh
2022-11-10 17:39:31 +08:00
@lucifer9 我只需要实现短信转发功能,其它的我不太会;这个脚本利用了固件 TTS 文字转语音功能,直接打电话会播报语音,内容和代码里的中文一样。
EngAPI
2022-11-10 19:35:36 +08:00
我全电信卡,看来买的 9.9 是吃灰了
FanError
2022-11-10 19:49:13 +08:00
楼主的代码支持双卡吗?前段时间也在看这开发板。
fenghuang
2022-11-11 13:04:04 +08:00
724 和 780 价格差不少呢,最便宜也要 50+

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/894175

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX