跳转至

短消息(sms)

一、简介

对于仅支持 4G 网络 的 CAT1 模块(Air720UG、Air724UG)而言,移动,联通卡不需开通 VOLTE 可以支持短信功能,电信卡只有 sim 卡开通 VOLTE 功能才能使用短信功能。

而 Air720UH 模块同时支持 4G 和 2G 网络,2G 网络本身支持短信功能,所以不需要打开 VOLTE 就可以使用短信功能。

可以通过登录运营商 APP、登录运营商网站、或者拨打运营商客服电话,确认开通 VOLTE 功能。

二、演示功能概述

本教程教你如何用 Air724 开发板,使用 sms 功能,并通过日志观察实验结果。

三、准备硬件环境

3.1 开发板准备

使用 EVB_Air724 开发板,如下图所示:

淘宝购买链接:Air724UG-NFM 开发板淘宝购买链接

此开发板的详细使用说明参考:Air724UG 产品手册 中的《EVB_Air724UG_AXX 开发板使用说明》,写这篇文章时最新版本的使用说明为:《EVB_Air724UG_A14 开发板使用说明》;开发板使用过程中遇到任何问题,可以直接参考这份使用说明文档。

api:https://doc.openluat.com/wiki/21?wiki_page_id=2068

3.2 数据通信线

USB 数据线一根(micro USB)。

3.3 PC 电脑

WIN7 以及以上版本的 WINDOWS 系统。

3.4 SIM 卡

中国大陆环境下,可以上网的 SIM 卡。一般来说,使用移动,电信,联通的物联网卡或者手机卡都行。

3.5 组装硬件环境

USB 数据线插入 USB 口,另一端与电脑相连,拨码开关全部拨到 ON,串口切换开关选择 UART1,USB 供电的 4V 对应开关拨至 ON 档,SIM 卡放到 SIM 卡槽中锁紧,如下图所示。

四、准备软件环境

4.1 下载调试工具

使用说明参考:Luatools 下载和详细使用

4.2 源码及固件

1.底层 core 下载

下载底层固件,并解压

链接:https://docs.openluat.com/air724ug/luatos/firmware/

如下图所示,红框的是我们要使用到的。

2.本教程使用的 demo: https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/sms

4.3 下载固件和脚本到开发板中

打开 Luatools,开发板上电开机,如开机成功 Luatools 会打印如下信息。

点击项目管理测试选项。

进入管理界面,如下图所示。

  • 点击选择文件,选择底层固件,我的文件放在 D:\luatOS\Air724 路径中

  • 点击增加脚本或资源文件,选择 之前下载的程序源码,如下图所示。

  • 点击下载底层和脚本,下载完成如下图所示。

五、代码示例介绍

5.1 API 说明

sms.send(phone, msg, auto_phone_fix)

作用:发送短信

参数:

传入值类型
解释
string
电话号码,必填
string
短信内容,必填
bool
是否自动处理电话号号码的格式,默认是按短信内容和号码格式进行自动判断, 设置为 false 可禁用

返回值:

返回值类型
解释
bool
成功返回 true,否则返回 false 或 nil

sms.setNewSmsCb(func)

作用:设置新 SMS 的回调函数

参数:

传入值类型
解释
function
回调函数, 3 个参数, num, txt, metas

返回值:

返回值类型
解释
nil
传入是函数就能成功,无返回值

5.2 testSms.lua 代码

只需要调用 sms.send()函数,填入对方手机号和消息内容即可。

通过设置回调函数。或者订阅发送完成的系统消息,来进行发送完成的处理。

本 demo 的效果是给服务商发短信消息,查询话费信息,收到返回的短信息打印日志。

--- 模块功能:短信功能测试.
-- @author openLuat
-- @module sms.testSms
-- @license MIT
-- @copyright openLuat
-- @release 2018.03.27
module(..., package.seeall)

require "sms"

-----------------------------------------短信接收功能测试[开始]-----------------------------------------
local function procnewsms(num, data, datetime)
    log.info("testSms.procnewsms", num, common.gb2312ToUtf8(data), datetime)
end

sms.setNewSmsCb(procnewsms)
-----------------------------------------短信接收功能测试[结束]-----------------------------------------

-----------------------------------------短信发送测试[开始]-----------------------------------------
local function sendtest1(result, num, data)
    log.info("testSms.sendtest1", result, num, data)
end

local function sendtest2(result, num, data)
    log.info("testSms.sendtest2", result, num, data)
end

local function sendtest3(result, num, data)
    log.info("testSms.sendtest3", result, num, data)
end

local function sendtest4(result, num, data)
    log.info("testSms.sendtest4", result, num, data)
end

sys.subscribe("SMS_READY", function()
    sys.timerStart(function()
        sms.send("10010", "10010", sendtest1)
        -- sms.send("10086",common.utf8ToGb2312("第2条短信"),sendtest2)
        -- sms.send("10086","qeiuqwdsahdkjahdkjahdkja122136489759725923759823hfdskfdkjnbzndkjhfskjdfkjdshfkjdsfks83478648732432qeiuqwdsahdkjahdkjahdkja122136489759725923759823hfdskfdkjnbzndkjhfskjdfkjdshfkjdsfks83478648732432qeiuqwdsahdkjahdkjahdkja122136489759725923759823hfdskfdkjnbzndkjhfskjdfkjdshfkjdsfks83478648732432",sendtest3)
        -- sms.send("10086",common.utf8ToGb2312("华康是的撒qeiuqwdsahdkjahdkjahdkja122136489759725923759823hfdskfdkjnbzndkjhfskjdfkjdshfkjdsfks83478648732432qeiuqwdsahdkjahdkjahdkja122136489759725923759823hfdskfdkjnbzndkjhfskjdfkjdshfkjdsfks83478648732432qeiuqwdsahdkjahdkjahdkja122136489759725923759823hfdskfdkjnbzndkjhfskjdfkjdshfkjdsfks83478648732432"),sendtest4)
    end, 10000)
end)
-----------------------------------------短信发送测试[结束]-----------------------------------------

5.3 main.lua 代码

本代码为主程序脚本,系统启动后首先会对 4G 网络进行配置,等待网络连接成功,然后加载测试模块。

六、开机调试

6.1 开发板开机

连接好硬件并下载固件后,启动 Luatools 软件,系统运行信息将显示在界面中。红框中为开发板连接到 PC 机后正常打印的信息,如下图所示。

6.2 功能调试

发送短信息

收到短信息

七、常见问题

7.1 物联网卡支持短信功能吗?

一般来说,物联网卡是不支持短信功能的,具体需要咨询物联网卡供应商。

7.2 支持移动、电信,联通卡的短信功能吗?

支持,电信 sim 卡必须开通 VOLTE 功能。

7.3 是否支持彩信功能

不支持。

7.4 如何开通 VOLTE 功能?

对于仅支持 4G 网络 的 CAT1 模块(Air720UG、Air724UG)而言,移动,联通卡不需开通 VOLTE 可以支持短信功能,电信卡只有 sim 卡开通 VOLTE 功能才能使用短信功能。

如何开通 VOLTE 功能,有如下几种方式:

  • 登录运营商手机端 app 开通
  • 登录运营商官网开通
  • 拨打运营商客服电话开通

给读者的话

本篇文章由杨超开发;

本篇文章描述的内容,如果有错误、细节缺失、细节不清晰或者其他任何问题,总之就是无法解决您遇到的问题;

请登录合宙技术交流论坛,点击文档找错赢奖金-Air724UG-LuatOS-软件指南-4G通信-短消息

用截图标注+文字描述的方式跟帖回复,记录清楚您发现的问题;

我们会迅速核实并且修改文档;

同时也会为您累计找错积分,您还可能赢取月度找错奖金!