#include <SoftwareSerial.h>
#include <DHT.h>
const String PHONE = "+790945427##";
const String incoming = "temp";
const int RX = 11;
const int TX = 10;
SoftwareSerial MySerial(RX,TX);
//Переменные для хранения данных
String smsStatus,senderNumber,receivedDate,msg;
#define DHTPIN 4 // Куда подключен датчик
#define DHTTYPE DHT11 // DHT11 Версия датчика
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
MySerial.begin(9600);
MySerial.println("AT"); // Команда AT для настройки скорости обмена данными
dht.begin();
Serial.println(F("Подключение датчика температуры DHT11"));
delay(2000); // Задержка в 2 секунды
MySerial.println("AT+CMGF=1"); // Включить текстовый режим
Serial.println(F("Подключение GSM модуля SIM800L"));
delay(5000); // Задержка в 5 секунд
}
void loop(){
while(MySerial.available()){
parser(MySerial.readString());
}
while(Serial.available()) {
MySerial.println(Serial.readString());
}
}
void parser(String buff){
Serial.println(buff);
unsigned int len, index;
index = buff.indexOf("\r");
buff.remove(0, index+2);
buff.trim();
if(buff != 0){
index = buff.indexOf("\":");
String cmd = buff.substring(0, index);
cmd.trim();
buff.remove(0, index+2);
Sms(buff);
//ДЛЯ ТЕСТА
// Serial.println(msg);
// Serial.println(senderNumber);
if(senderNumber == PHONE && msg == incoming){
// Получение Температуры и Влажности
// Serial.println("Можно отправлять температуру");
float h = dht.readHumidity();
float t = dht.readTemperature();
String humidity = "Humidity: " + String(h) + "% \r";
String temperature = "Temperature: " + String(t) + " *C \r";
String text = temperature + humidity;
// Отправка СМС
MySerial.print("AT+CMGF=1\r");
delay(1000);
MySerial.print("AT+CMGS=\""+PHONE+"\"\r");
delay(1000);
MySerial.print(text);
delay(100);
MySerial.write(0x1A); //ascii код ctrl-26 Код отправки сообщения
delay(1000);
Serial.println("SMS Отправлено.");
}
}
}
void Sms(String buff){
unsigned int index;
index = buff.indexOf("\""); // Ищем первую кавычку
smsStatus = buff.substring(1, index-1);
buff.remove(0, index+1);
senderNumber = buff.substring(0, 12); // Получаем номер
buff.remove(0,19);
receivedDate = buff.substring(0, 20);
buff.remove(0,buff.indexOf("\r"));
buff.trim();
// Получаем сообщение
index =buff.indexOf("\n\r"); // После перевода строки
buff = buff.substring(0, index);
buff.trim();
msg = buff;
buff = "";
msg.toLowerCase(); // Переводим в маленькие буквы
}
Доброго времени суток, не смог понять что не так со скетчем(скетч не мой нашел в интернете для создания удаленной метеостанции). При проверке появляется сообщение exit status 1, тщательное изучение пока ни к чему так и не привело, возможно направите куда двигаться?