分享一个 AIR724(电信卡)利用 bark 短信转发的操作, AIR780E 或许也能直接用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nirvanahh
V2EX    分享发现

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

  •  1
     
  •   nirvanahh 2022-11-10 16:07:59 +08:00 3852 次点击
    这是一个创建于 1120 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前些天跟风上车了 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.ToUtf8(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 和显示成功,会自动重启,等个半分钟左右就可以发短信和打电话测试了

    6 条回复    2022-11-11 13:04:04 +08:00
    nirvanahh
        1
    nirvanahh  
    OP
       2022-11-10 16:17:13 +08:00
    代码贴出来段七八糟的,搞不懂了,有需要的密我发脚本
    lucifer9
        2
    lucifer9  
       2022-11-10 16:38:36 +08:00
    724 支持 VoLTE ,那它接打电话,语音是能通过程序处理吗?还是必须接 Mic 和 Speaker
    nirvanahh
        3
    nirvanahh  
    OP
       2022-11-10 17:39:31 +08:00
    @lucifer9 我只需要实现短信转发功能,其它的我不太会;这个脚本利用了固件 TTS 文字转语音功能,直接打电话会播报语音,内容和代码里的中文一样。
    EngAPI
        4
    EngAPI  
       2022-11-10 19:35:36 +08:00
    我全电信卡,看来买的 9.9 是吃灰了
    FanError
        5
    FanError  
       2022-11-10 19:49:13 +08:00
    楼主的代码支持双卡吗?前段时间也在看这开发板。
    fenghuang
        6
    fenghuang  
       2022-11-11 13:04:04 +08:00 via Android
    724 和 780 价格差不少呢,最便宜也要 50+
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1083 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:19 PVG 02:19 LAX 10:19 JFK 13:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86