从串口、Arduino、Python 发送短信时遇到问题

问题描述 投票:0回答:1

I have a python script producing an output which I want to send as SMS. Here is the Python code to send message over serial port.

    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")

RX blinks on the board when script runs,  Here is the Arduino code to send 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);
    }
}
}

已使用相同的设置发送测试消息。我还是收不到消息

我缩小范围,使用绿色和红色来查看是否会发送任何消息。我尝试了多种解决方案都没有进展

我也尝试过

while(Serial.avaialable()==0)

c++ python-3.x serial-port arduino-uno gsm
1个回答
0
投票

我改变了在 python 脚本中打开串行通信的方式。之前发送数据时

def triggerSMS(message):
    ser.open()
    ser.write(message.encode('utf-8'))
    ser.close()

我注释掉了 ser.open() 和 ser.close()

© www.soinside.com 2019 - 2024. All rights reserved.