AT指令与长短信的发送
AT指令(Attention指令)是用于控制调制解调器(modem)的一种标准命令语言,通过AT指令,可以实现对调制解调器的功能控制,如拨号、收发传真、收发短信等,我们将重点介绍如何使用AT指令发送长短信。
AT指令简介
AT指令是一种基于字符串的命令语言,用于与调制解调器进行通信,每条AT指令以“AT”开头,后面跟着具体的功能代码和参数。AT+CMGF=1
表示设置短信格式为文本模式。
发送长短信的步骤
2.1 初始化调制解调器
在使用AT指令发送长短信之前,需要先初始化调制解调器,可以通过以下AT指令完成:
AT
:测试调制解调器是否工作正常。
AT+CMGF=1
:设置短信格式为文本模式。
AT+CSCA="+8613800100500"
:设置短信中心号码。
AT+CMGL="ALL"
:列出所有存储的短信。
2.2 编写长短信内容
将长短信内容分成若干段,每段不超过160个字符(包括空格和标点符号),可以使用编程语言或脚本来自动分割短信内容。
2.3 发送长短信
使用AT+CMGS
指令发送长短信,该指令的格式为:AT+CMGS=<recipient>s phone number>
,要向手机号为13800138000的用户发送短信,可以使用以下指令:
AT+CMGS="13800138000"
在执行上述指令后,调制解调器会返回一个确认码,表示已准备好接收短信内容,可以输入第一段短信内容,然后按Ctrl+Z结束输入,如果短信内容较长,可以继续输入下一段内容,直到所有段落都发送完毕。
示例代码
以下是一个简单的Python脚本示例,演示如何使用AT指令发送长短信:
import time import serial 打开串口 ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1) time.sleep(2) 初始化调制解调器 ser.write(b'ATr') time.sleep(1) ser.write(b'AT+CMGF=1r') time.sleep(1) ser.write(b'AT+CSCA="+8613800100500"r') time.sleep(1) ser.write(b'AT+CMGL="ALL"r') time.sleep(1) 发送长短信 recipient = "13800138000" message = "这是一个很长的短信内容,需要分成多段发送。" * 10 # 假设短信内容重复10次 segments = [message[i:i+160] for i in range(0, len(message), 160)] for segment in segments: ser.write(f'AT+CMGS="{recipient}"r'.encode()) time.sleep(1) ser.write(segment.encode() + b'x1A') # x1A表示Ctrl+Z time.sleep(1) response = ser.read_all().decode() print(response) time.sleep(1) 关闭串口 ser.close()
常见问题与解答
问题1:如何更改短信中心号码?
答:可以使用AT+CSCA
指令更改短信中心号码,要将短信中心号码更改为+8613800100500,可以使用以下指令:
AT+CSCA="+8613800100500"
问题2:如何检查短信发送状态?
答:可以使用AT+CMGL
指令检查短信发送状态,该指令会列出所有存储的短信及其状态。
AT+CMGL="ALL"
到此,以上就是小编对于“at指令 长短信”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/648854.html