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)
我改变了在 python 脚本中打开串行通信的方式。之前发送数据时
def triggerSMS(message):
ser.open()
ser.write(message.encode('utf-8'))
ser.close()
我注释掉了 ser.open() 和 ser.close()