一、GSM模块:
1、 产品介绍
① 一种具有独立的操作系统的功能模块,GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。
② GSM模块具有发送SMS短信,语音通话,GPRS数据传输等基于GSM网络进行通信的所有基本功能。简单来讲,GSM模块加上键盘、显示屏和电池,就是一部手机
2、前言:最近做了一个需求,需要接收手机短信验证码。因此我这里考虑到了 GSM 模块
RPA解决:python GSM 模块 - 电脑接收短信
目前电信已退 2g 网,联通正在退,只剩下移动。不过大家以后可以直接购买 4g 的模块进行使用。
#安装依赖
pip install pyserial
#窗口连接
import serial
s = serial.Serial("/dev/ttyUSB0")
#打电话
s.write(“ATD10086;\r\n”.encode())
#发短信
#设置短信模式为 PDU
s.write(b’AT+CMGF=0\r\n’)
#设置短信编码
s.write(b’AT+CSCS=“UCS2”\r\n’)
#手机号码 16 进制 unicode 码
s.write(‘AT+CMGS=“00310030003000380036”\r\n’.encode())
#短信内容 16 进制 unicode 码
s.write(‘00680065006c006c006f00204e16754c’.encode())
#发送代码
s.write(b’\x1A\r\n’)
#读取短信
import re
#读取所有短信
s.write(b’AT+CMGL=“ALL”\r\n’)
#获取全部返回
res = s.read()
while True:
count = s.inWaiting()
if count == 0:
break
res += s.read(count)
#匹配短信文本
msg_list = re.findall(’+CMGL: (\d+),“REC READ”,"(.?)","","(.?)"\r\n(.*?)\r\n’, res.decode())
msg_list = [list(i) for i in msg_list]
for msg in msg_list:
msg[1] = unicode2str(msg[1])
msg[-1] = unicode2str(msg[-1])
print(msg_list)
#字符串转 16 进制 unicode 码
def str2unicode(text):
code = ‘’
for i in text:
hex_i = hex(ord(i))
if len(hex_i) == 4:
code += hex_i.replace(‘0x’, ‘00’)
else:
code += hex_i.replace(‘0x’, ‘’)
return code
#16 进制 unicode 码转字符串
def unicode2str(code):
text = ‘’
tmp = ‘’
for i in range(len(code)):
tmp += code[i]
if len(tmp) == 4:
text += “\\u” + tmp
tmp = ‘’
text = eval(f’"{text}"’)
return text