- python使用SIM800C发送英文短信
import io
import time
import serial
import serial.tools.list_ports
# 字符串转16进制unicode编码
def str2unicode(raw_str):
result = ''
for c in raw_str:
_hex = hex(ord(c))
# 处理数字
if len(_hex) == 4:
_hex = _hex.replace('0x', '00')
else:
_hex = _hex.replace('0x', '')
result += _hex.upper()
return result
port_list = list(serial.tools.list_ports.comports())
# 改成你的手机号
target_phone = str2unicode('132xxxxxxxx')
send_text = str2unicode('你好中文,英文符号,【落款6】')
if len(port_list) == 0:
print('没有可用的串口')
else:
# 使用第一个可用的串口
#s = serial.Serial(port_list[0].device, timeout=0.5)
# 或者指定一个串口
s = serial.Serial('COM4', timeout=0.5)
# 创建IO缓存
sio = io.TextIOWrapper(io.BufferedRWPair(s, s))
# 向串口发送字符串命令
sio.write(f'AT+CMGF=1\nAT+CSMP=17,167,2,25\nAT+CSCS="UCS2"\nAT+CMGS="{target_phone}"\n')
sio.flush()
print(''.join(sio.readlines()))
time.sleep(1)
sio.write(send_text + '\n')
sio.flush()
print(''.join(sio.readlines()))
s.write(b'\x1a') # 发送HEX内容1A
sio.flush()
print(''.join(sio.readlines()))
# 关闭串口
s.close()
注意事项:
- 此代码在SIM800c模块使用,下面两种都可以,推荐第二种,不需要额外电源,还便宜
购买链接:6.0嘻Gs9LXMYr4Gw啊 https://m.tb.cn/h.f0EFCwd?sm=e46aa3 USB转GSM模块 短信收发 四频GSM/GPRS SIM800C带蓝牙 Your Cee
- 重要,观察指示灯,具有工作指示灯,无网络、无 SIM 卡或 SIM 卡插反时 LED 灯 1 秒间隔快闪,正常接入网络 3 秒闪一次。
- 移动卡比较靠谱