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

通过Serial、Arduino与Python发送SMS失败的排查求助

问题:Python通过串口控制Arduino发送SMS失败

我有一个Python脚本,希望将输出内容以SMS形式发送。运行脚本时开发板的RX指示灯闪烁,但现在无法接收消息——此前用相同配置成功发送过测试消息。我已简化为仅发送GREEN和RED指令测试,尝试多种解决方案(包括while(Serial.avaialable()==0)语句)仍无进展。

Python串口发送代码

def blinkLED(color):
    ser.open()
    ser.write(color.encode()) # send color to Arduino to control LED
    time.sleep(0.1)
    ser.close()
    print("LED Blinked")

Arduino SMS发送代码

void updateSerial() {
  delay(500);
  while(Serial.available()) {
    mySerial.write(Serial.read());}
    while (mySerial.available()){
    Serial.write(mySerial.read()) ;// Forward data from Arduino Serial to SIM900
  }
  
}


void loop() {
if(Serial.available() > 0){
    updateSerial();
    String message = Serial.readString();
    message.trim();
    if (message == "GREEN"){
      mySerial.println("AT");
      mySerial.println("AT+CMGF=1");
      delay(100);
      mySerial.println("AT+CMGS=\"+254703XXXXX\"");
      delay(100);
      //updateSerial();
      mySerial.println("Can do exam");
      delay(100);
      mySerial.println((char)26);
      Serial.println("Message sent");
      delay(100);   //updateSerial();

    }else if (message == "RED"){
      mySerial.println("AT");
      mySerial.println("AT+CMGF=1");
      delay(100);
      mySerial.println("AT+CMGS=\"+2547------\"");
      delay(100);
      //updateSerial();
      mySerial.println("Can't do exam");
      delay(100);
      mySerial.println((char)26);
      delay(100);
    }
}
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:37:41