python GSM模块-电脑接收短信

一、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
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值