You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RPi4使用GSM modem发送TCP数据时混入Pi登录提示符问题

问题描述

在树莓派4上使用GSM模块与远程服务器建立TCP连接时,连接成功,但发送的消息中混入了树莓派的登录提示符(garage login: Password:),导致服务器收到的内容混乱。

相关代码

ser = serial.Serial('/dev/ttyS0', 115200)
ser.write((f'AT+CIPOPEN=0,"TCP","{config.server_host}",{config.server_port}').encode())
ser.write(b'AT+CIPSEND=0,')
time.sleep(5)
ser.write(b'GET / HTTP/1.1\r\n')
ser.write(b'\x1A')

服务器接收内容

connection from ('x.x.x.x', yyyyy)
received b'\r\n\r\n>garage logi'
received b'n: Password: GET'
received b' / HTTP/1.1\r\r\n'
no more data from ('x.x.x.x', yyyyy)

已尝试ser.reset_input_buffer()、ser.reset_output_buffer()及调整sleep时长,均无效果。


问题原因与解决办法

问题原因

树莓派默认将ttyS0端口配置为串口控制台,系统的getty服务会持续在这个串口输出登录提示符(login: Password:)。而你的GSM模块正好使用ttyS0进行串口通信,这些系统输出的内容会和你发送的AT命令、数据一起被GSM模块转发到远程服务器,导致内容混入。

解决步骤

  1. 禁用串口控制台服务

    • 方法一:通过raspi-config配置
      运行sudo raspi-config,依次进入:
      • Interface Options → Serial Port
      • 第一个选项询问是否为串口登录shell启用串口,选择No
      • 第二个选项询问是否启用串口硬件,选择Yes(需保留串口硬件功能时)
      • 重启树莓派生效
    • 方法二:手动禁用服务
      执行命令直接禁用ttyS0的getty服务:
      sudo systemctl disable --now serial-getty@ttyS0.service
      
      若需永久关闭,可删除服务链接:
      sudo rm /etc/systemd/system/getty.target.wants/serial-getty@ttyS0.service
      
      最后重启树莓派。
  2. 优化AT命令发送流程

    • 发送AT+CIPSEND时指定准确的数据长度,避免长时间等待导致混入额外内容:
      data = b'GET / HTTP/1.1\r\n'
      # 指定要发送的数据长度
      ser.write(f'AT+CIPSEND=0,{len(data)}\r\n'.encode())
      # 短暂等待模块进入发送模式
      time.sleep(0.5)
      ser.write(data)
      ser.write(b'\x1A')
      
    • 每次发送AT命令后读取模块响应,确认命令执行成功再继续,避免盲目等待。比如发送AT+CIPOPEN后检查响应:
      open_cmd = f'AT+CIPOPEN=0,"TCP","{config.server_host}",{config.server_port}\r\n'.encode()
      ser.write(open_cmd)
      response = ser.read_all().decode()
      if "CONNECT OK" not in response:
          # 处理连接失败逻辑
          ser.close()
          exit()
      

内容的提问来源于stack exchange,提问作者shiznatix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:45:29