Ich habe diesen Code von einer Website, die ich als eine Anleitung zum Senden von SMS-Nachricht von einem SIM800L mit meinem Arduino Mega verwenden.SIM800L Zeichenfolge Verkettung
#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
}
Ich habe einige Bits des Code in der Mitte, so dass sie eine String Eingabe von einem Benutzer in meinem Python GUI über die serielle Schnittstelle empfangen werden.
#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");
}
Ich versuche, die Daten von meinem serial.readString()
bis zum Ende der text
zu verketten. Herkömmliche Methoden wie die +
und %s
funktionieren nicht.
In Arduino IDE Ich erhalte diese Fehlermeldung:
error: cannot convert ‘StringSumHelper’ to ‘char*’ in assignment
Wenn ich richtig bin char*
ist ein Zeiger, der auf eine Adresse verweist. Gibt es trotzdem die Zeichenfolge vom seriellen Monitor zum Text hinzuzufügen?
* Arduino * hat eine 'String' Klasse, die eine' 'concat()'] (https://www.arduino.cc/en/Reference/StringConcat) Methode besitzt, 'text' könnte einfach deklariert werden eine 'Zeichenfolge', um diese Funktion mit viel weniger Code als in der akzeptierten Antwort zu nutzen. Und wenn * Verkettung * nicht Ihren Bedürfnissen entspricht, hat auch 'String' einen zusätzlichen Operator (https://www.arduino.cc/en/Tutorial/StringAdditionOperator). –