简介
M100M-C系列 DTU是由银尔达(yinerda)推出的工业级的单TTL串口DTU 。小巧、稳定、可靠。适合设备控制,状态检测,传感器数据采集等通过4G网络与服务器通讯的场景。
测试发短信

进入对应的手册,查看教程
要注意:
AT固件不支持RS485发送,支持TTL,RS232等发送。
短信需要手机卡才支持,普通物联网卡不支持发短信。
Air724支持移动、联通、电信卡都支持。
Air780支持移动和联通卡,==不支持电信==。
AT\r 测试
ATE0\r 关闭回显
AT+ICCID\r 确认SIM卡插好了
AT+CGATT? 查看网络连接, +CGATT: 1 是正常
AT+CSMS=1 设置短信服务, +CSMS: 1,1,1在线 Unicode 编码转换,可以实现中文转 Unicode实际测试,发中文手机会收到乱码,所以还是发英文短信。
AT+CMGF=1 //设置为TEXT模式
OK
AT+CSMP=17,167,0,0 //配置当前TEXT模式参数,17,短信首字节167,短信有效期,12小时 + ( (vp – 143 )×30分钟即24小时
OK
AT+CSCS? //查询使用的字符集
+CSCS: “IRA” //使用IRA字符集
OK
AT+CMGS="180xxxx1447" //给180xxxx1447发英文短信注:180xxxx1447是发送目的号码,请按照实际填写,不要照抄
>HELLO! //出现>号后,输入要发送的短信内容(长度限制最大为180)
0X1A(hex发送) //十六进制方式发送 0x1A(注:此命令后面不跟回车换行)
+CMGS: 73 //73为序号,非固定,短消息发送成功
OK在单片机中使用
实际使用
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include "cmsis_os2.h"
#include "usart.h"
/**
* @brief 通过AIR780E 4G模块发送短信
*
* 此函数用于向指定的电话号码发送一条文本短信。它会依次配置短信模式、字符集、短信参数,
* 然后输入目标号码和短信内容,并以 Ctrl+Z 结束发送流程。
*
* @param number 目标手机号码字符串(例如:"13800138000")
* @param note 要发送的短信内容字符串
*/
void air780e_4g_send_note(char *number, char *note)
{
char cmd[128] = {0};
uint8_t ctrl_z = 0x1A;
// 设置短信模式
HAL_UART_Transmit(&huart1, "AT+CMGF=1\r\n", strlen("AT+CMGF=1\r\n"), 1000);
osDelay(1000);
// 设置字符集
HAL_UART_Transmit(&huart1, "AT+CSCS=\"GSM\"\r\n", strlen("AT+CSCS=\"GSM\"\r\n"), 1000);
osDelay(1000);
// 设置短信参数
HAL_UART_Transmit(&huart1, "AT+CSMP=17,167,0,0\r\n", strlen("AT+CSMP=17,167,0,0\r\n"), 1000);
osDelay(1000);
// 设置接收号码
snprintf(cmd, sizeof(cmd), "AT+CMGS=\"%s\"\r\n", number);
HAL_UART_Transmit(&huart1, cmd, strlen(cmd), 1000);
osDelay(2000); // 需要等待模块返回 "> "
// 发送短信内容
HAL_UART_Transmit(&huart1, note, strlen(note), 1000);
// 发送Ctrl+Z结束
HAL_UART_Transmit(&huart1, &ctrl_z, 1, 1000);
osDelay(5000); // 发送后需要足够时间等待响应
}
在需要的地方调用,用于发送英文短信
// 发送短信给紧急联系人
elog_info("SMS", "Sending manual emergency SMS to xxxxxxxxxx");
air780e_4g_send_note(phone_number, alarm_report);
elog_info("SMS", "Manual emergency SMS sent successfully");

评论
暂无评论