项目概述
本案例使用乐天使官方pico开发板和UniRTOS,通过调用UniRTOS中SMS相关功能函数,让开发板能向其他SIM卡发送短信,实现远程通知功能。
功能特性
远程短信告警
- 精准消息投递:可将预设的告警或通知信息,以短信形式精准发送至指定手机号码。
- 多场景触发支持:作为关键信息的远程通知出口,可集成于各类事件处理流程中(如异常检测、定时任务、用户指令)。
开发准备
硬件要求

- USB数据线(USB-A转USB-C),点此购买。


软件要求
- unirtos-toolchain.exe:编译工具链安装程序,点此获取。
- Python:用于运行unirtos-cli工具,需使用3.9及更高版本。安装步骤见快速启动-环境搭建章节。
- Git:unirtos-cli使用该工具拉取SDK、依赖库等,需使用2.40及更高版本。安装步骤见快速启动-环境搭建章节。
- unirtos-cli:UniRTOS的命令行工具,用于一键拉取SDK、快速创建工程。安装步骤见快速启动-环境搭建章节。
- USB驱动:用于PC识别?榈腢SB枚举接口,点此获取。
- QFlash.exe:模块固件烧录程序,用于烧录UniRTOS编译生成的固件,点此获取。
- EPAT工具:芯片厂商提供的日志抓取工具,用于查看模块运行日志以分析应用程序执行情况,点此获取。
快速上手
下载项目
示例代码位于UniRTOS官方创客仓库,点此访问下载。
修改源码参数
修改源码当中接收短信的电话号码。修改点位于sms_send/main/sms.c中,修改宏定义TARGET_PHONE_NUMBER的值即可。
编译并烧录项目
确保unirtos-cli工具和unirtos-toolchain工具已安装,在下载的项目目录开启Cmd或PowerShell窗口,执行命令unirtos-cli env-setup拉取编译环境,再执行命令unirtos-cli build进行编译。项目配置中默认编译型号为EG800ZCN_LA,如若使用的模组型号不是EG800ZCN_LA,可通过项目中env_config.json文件的build字段进行修改,详细编译与烧录流程请参考
快速启动。
硬件连接

1.按卡槽丝印提示方向拨开卡槽盖,将SIM卡放入,再扣好盖子。
2.使用数据线连接开发板和电脑。
效果展示
下图为手机收到开发板发来的短信。

代码概览
主要功能接口
unir_sms_demo_init
功能:短信发送Demo入口与初始化函数。负责创建独立任务,让短信发送逻辑在后台运行,不阻塞主程序。
关键操作:
- 任务创建:调用qosa_task_create创建名为test_demo的任务,执行unir_sms_demo_process主逻辑。
- 任务参数:配置栈大小 4 KB、普通优先级,确保短信任务稳定运行。
- 重要性:用户应用初始化时必须调用,用于启动整个短信发送功能。
unir_sms_demo_process
功能:短信发送 Demo 主处理函数。在无限循环中按固定周期执行短信发送,是业务逻辑的核心入口。
关键操作:
- 周期控制:延时计数,每 60 秒触发一次短信发送。
- 调用发送:执行qosa_sms_demo_send_all_characters_sms向目标号码发送中英混合短信。
- 状态打。菏涑鲈诵腥罩,标记发送成功/失败状态。
- 循环执行:持续运行,支持周期性自动重发。
- 重要性:封装定时发送逻辑。
qosa_sms_demo_send_all_characters_sms
功能:中英混合短信发送核心接口。完成网络附着、编码转换、PDU封装、异步发送全流程。
关键操作:
- 网络等待:调用qosa_datacall_wait_attached等待网络注册成功,超时300 s。
- 编码转换:将UTF-8中英文内容转为UCS2编码,支持中文正常发送。
- PDU封装:调用qosa_sms_text_to_pdu把文本转为短信PDU格式。
- 异步发送:通过 qosa_sms_send_pdu_async发送短信,绑定结果回调。
- 资源释放:自动释放内存,避免泄漏。
- 重要性:底层核心发送接口,支持中英文混合短信,可直接在项目中复用。
常见问题
程序一直等待网络连接?
确认使用的SIM卡能够注网且正确安装。