私のPCに保存されているテキストファイルから文字列を読み取ろうとしています。私のGSMモジュールは、私は、テキストファイルに含まれている次の行読み取るためのpythonを使用していますSIM900Aです:+ CMGS ATファイルからのテキストの読み取りとArduinoからGSMモジュールへの送信
を= \「+ 9232xxxxxxxx \」\ rを
この行は、ATコマンドと電話番号が含まれています私はSMSを送ろうとしています。次のように
ザ・Pythonコードは、次のように
import serial
import time
arduino = serial.Serial("COM3",9600,timeout = 5)
time.sleep(2)
i = 0
while(i<1):
arduino.flush()
text_file = open("Data.txt","r")
line1 = text_file.readline()
arduino.write(line1)
time.sleep(1)
i = i + 1
exit()
text_file.close()
Arduinoのコードは次のとおりです。
#include <SoftwareSerial.h>
SoftwareSerial mySerial(7, 8);
int counter = 0;
String msg1;
String numb = "AT+CMGS=\"+9232xxxxxxxx\"\r";
void setup() {
mySerial.begin(9600);
Serial.begin(9600);
delay(100);
}
void loop() {
while (!Serial.available()) {} // wait for data to arrive
// serial read section
while (Serial.available()) {
if(Serial.available()>0) {
msg1 = Serial.readString();
if(counter<1) {
SendMessage();
counter++;
}
}
delay(500);
}
if (mySerial.available()>0) Serial.write(mySerial.read());
}
void SendMessage() {
mySerial.println("AT+CMGF=1");
//Sets the GSM Module in Text Mode
delay(1000);
// Delay of 1000 milli seconds or 1 second
mySerial.println(msg1);
// Replace x with mobile number
delay(1000);
mySerial.println("Hello");
// The SMS text you want to send
delay(100);
mySerial.println((char)26);
// ASCII code of CTRL+Z
delay(1000);
}
mySerial.println("AT+CMGS=\"+9232xxxxxxxx\"\r");
mySerial.println(numb);
mySerial.println(msg1);
私は最初の行を使用している場合は、私は私の番号にメッセージが表示されます。同様に、オプション2の場合、上のArduinoコードで宣言した文字列刻みを渡すと、メッセージが表示されます。
しかし、オプション3の場合、PCに保存されているテキストファイルから前述の文字列を読み取ったときにメッセージは表示されません。誰でも私がここで間違っていることを教えてもらえますか?
あなたが読んであなたのファイルは、おそらく '\のN '、あなたを持っています'\ r'が必要です –
こんにちは。迅速なレスポンスをありがとう。私もそうだと思う。改行の代わりにキャリッジリターンを使う方法を教えていただけますか –