Использую плату arduino nano, вместе с модулем sim800l. Вот такой скетч:
#include <SoftwareSerial.h>
SoftwareSerial SIM800(2, 3);
void setup()
{
begin(9600);
sendATCommand("AT+COPS?", true);
}
void loop()
{
}
String sendATCommand(String cmd, bool waiting) {
String _resp = "";
SIM800.println(cmd);
if (waiting) {
_resp = waitResponse();
// Если Echo Mode выключен (ATE0), то эти 3 строки можно закомментировать
if (_resp.startsWith(cmd)) {
_resp = _resp.substring(_resp.indexOf("\r", cmd.length()) + 2);
}
Serial.println(_resp);
}
return _resp;
}
String waitResponse() {
String _resp = "";
long _timeout = millis() + 10000;
while (!SIM800.available() && millis() < _timeout) {};
if (SIM800.available()) {
_resp = SIM800.readString();
}
else {
Serial.println("Timeout...");
}
return _resp;
}
bool begin(int baud)
{
Serial.begin(115200);
SIM800.begin(baud);
}
Получаю вот такой вывод:
Вопрос, откуда взялся квадрат в начале? Из-за него не выполняется if на 22 строчке. Как решить проблему?
Спасибо!