美文网首页
4G LTE模块串口读取DTU中文短信

4G LTE模块串口读取DTU中文短信

作者: LCSan | 来源:发表于2021-10-12 11:58 被阅读0次

意在解决自动化机器人,接受短信验证码场景。
1.规避手机app读取短信方案,安全性,手机占用,系统兼容问题;
2.长时间,高稳定,低成本选择方案。

某宝上买4G LTE硬件模块(声称不支持中文短信接收,实际是没有解码),PC通过串口和模块连接,模拟at控制进行短信收发。

import serial
import serial.tools.list_ports
import binascii

class DTUSMS:

    def __init__(self, serialName=None, port=9600, **args):
        if serialName == None:
            plist = list(serial.tools.list_ports.comports())
            if len(plist) > 0:                
                plist_0 =list(plist[0])
                serialName = plist_0[0]
        if "timeout" not in args:
            args["timeout"] = 2
        if "parity" not in args:
            args["parity"] = serial.PARITY_NONE
        if "stopbits" not in args:
            args["stopbits"] = 1
        if serialName == None:
            self.ser = None
        else:
            # uart_fd = serial.Serial(serialName, int(9600), timeout=2, parity=serial.PARITY_NONE, stopbits=1)
            self.ser = serial.Serial(serialName, port, **args)
    
    def open(self):
        if not self.ser.isOpen():
            self.ser.open()

    def write(self, msg):
        # 短信接收模式
        self.ser.write(msg.encode())

    def readLines(self):
        msgs = self.ser.readlines()
        msgs = [i.decode("utf-8") for i in msgs]
        return msgs

    def decodeMsg(self, msg):
        return binascii.unhexlify(msg).decode("utf-16be")

    def close(self):
        if self.ser.isOpen():
            self.ser.close()

def open(serialName=None,port=9600,args={}):
    return DTUSMS(serialName,port,**args)

def write(sms,msg):
    sms.write(msg)
    
def read(sms):
    return sms.readLines()

def decodeMsg(msg):
    return binascii.unhexlify(msg).decode("utf-16be")

def close(sms):
    sms.close()

if __name__ == "__main__":
    sms = open()
    print(1)
    write(sms,'AT*SMSOUT=2#\r')
    print(2)
    msg=read(sms)
    print(msg)
    while True:
        msg=read(sms)
        print(msg)
        if len(msg)>0 and msg[0][0:5] == "+SMS:":
            msg=msg[0].split(",")[3]
            msg=sms.decodeMsg(msg)
            print(msg)
            break
            
    close(sms)

效果:


image.png

相关文章

  • 4G LTE模块串口读取DTU中文短信

    意在解决自动化机器人,接受短信验证码场景。1.规避手机app读取短信方案,安全性,手机占用,系统兼容问题;2.长时...

  • 这五个理由告诉你为什么需要串口WiFi模块

    物联网的高速发展带动了各个行业领域对4G路由WiFi模块、串口WiFi模块、USB WiFi模块的需求,其中串口W...

  • 全网通DTU与物联网网关区别

    全网通DTU与物联网网关区别 数据传输单元DTU (Data Transferunit)是专门用于将串口数据转换为...

  • Android USB转串口通信

    最近需要在Android板卡上面对接些串口控制的外设,比如,4G模块、呼吸灯、光感传感器等,这些都是串口指令控制。...

  • 4G模块G8100在低功耗摄像头的实现方案测试

    合方圆4G低功耗模块 G8100B 全球4G/LTE低功耗技术专家 工信部低功耗无线通信协会委员 国家高新技术企业...

  • 手机显示LTE而不是4G信号

    手机显示LTE而不是4G信号是因为当前4G信号差,只能接收到LTE信号,也有可能是没有开启4G网络。 手机显示LT...

  • 4g模块

    4G LTE 是 TD-LTE和FDD-LTE等 LTE网络制式的统称。 硬件将射频、基带集成在一块PCB小板上...

  • 4G DTU 知识解答

    4G DTU是什么? DTU英文名Data Transfer unit,直译过来是数据传输终端,在物联网系统中实现...

  • DTU的简单了解

    DTU Data Transfer unit数据传输单元,是专门用于将串口数据转换为IP数据或将IP数据转换为串口...

  • 关于RadioTechnology与NetworkType的转换

    我们经常在Log中看到,有的LTE =13,而有的LTE =14,其实不然,这两个都表示LTE 4G网络,下面我们...

网友评论

      本文标题:4G LTE模块串口读取DTU中文短信

      本文链接:https://www.haomeiwen.com/subject/dkpdoltx.html