私はArduino Megaに接続されたSIM800LからSMSメッセージを送信するためのガイドとして使用しているこのコードをWebサイトから取得しています。SIM800L文字列連結
#include <Sim800l.h>
#include <SoftwareSerial.h>
Sim800l Sim800l; //declare the library
char* text;
char* number;
bool error;
void setup(){
Sim800l.begin();
text="Testing Sms";
number="+542926556644";
error=Sim800l.sendSms(number,text);
// OR
//error=Sim800l.sendSms("+540111111111","the text go here");
}
void loop(){
//do nothing
}
中間のコードをいくつか追加して、シリアル接続でPython GUIのユーザーからの文字列入力を受け取るようにしました。
#include <Sim800l.h>
#include <SoftwareSerial.h>
Sim800l Sim800l; //declare the library
char* text;
char* number;
bool error;
String data;
void setup(){
Serial.begin(9600);
}
void loop(){
if (Serial.available() > 0)
{
data = Serial.readString();
Serial.print(data);
sendmess();
}
}
void sendmess()
{
Sim800l.begin();
text="Power Outage occured in area of account #: ";
number="+639164384650";
error=Sim800l.sendSms(number,text);
// OR
//error=Sim800l.sendSms("+540111111111","the text go here");
}
私はtext
の終わりに私のserial.readString()
からのデータを結合しようとしています。 +
や%s
のような従来の方法は機能しません。 ArduinoのIDEで
私はこのエラーを取得しています:
error: cannot convert ‘StringSumHelper’ to ‘char*’ in assignment
私が正しいんだ場合char*
がアドレスを指すポインタです。シリアルモニタから文字列をテキストに追加する方法はありますか?
* Arduino *は['concat()'](https://www.arduino.cc/en/Reference/StringConcat)メソッドを持つ 'String'クラスを持ち、' text'は単純に宣言できます受け入れられた答えよりもはるかに少ないコードでこの機能を利用する 'String' *連結*があなたのニーズに合わない場合、 'String'には[加算演算子](https://www.arduino.cc/en/Tutorial/StringAdditionOperator)もあります。 –