перечитал все помогите разобратся со следующей ситуацией,проверяются датчики 1-wire,в мониторе все пишется как надо,нужно что бы по определенному(в данном случае "#") символу во входящей смс,отреагировал ответным смс с температурами.в моем случае,запускается,ждем 20сек,начинают циклировать данные в мониторе,и через 5 сек после этого мне приходит смс "-127.00"
Код:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress domC = { 0x28, 0xF7, 0x72, 0x46, 0x05, 0x00, 0x00, 0xDB };
DeviceAddress ulicaC = { 0x28, 0x6B, 0xDF, 0xDF, 0x02, 0x00, 0x00, 0xC0 };
DeviceAddress kotelC = { 0x28, 0x59, 0xBE, 0xDF, 0x02, 0x00, 0x00, 0x9F };
char inchar;
float tempC;
void setup(void)
{
Serial.begin(9600);
Serial1.begin(9600);
Serial1.print("AT+CMGF=1\r");
delay(1000);
Serial1.println("AT+CNMI=3,0,0,0\r");
delay(1000);
sensors.begin();
sensors.setResolution(domC, 10);
sensors.setResolution(ulicaC, 10);
sensors.setResolution(kotelC, 10);
}
void printTemperature(DeviceAddress deviceAddress)
{
tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
Serial.print("Error getting temperature");
} else {
Serial.print("C: ");
Serial.print(tempC);
Serial.print(" F: ");
Serial.print(DallasTemperature::toFahrenheit(tempC));
}
}
void loop(void)
{
delay(20000);
Serial.print("Getting temperatures...\n\r");
sensors.requestTemperatures();
Serial.print("Doma: ");
printTemperature(domC);
Serial.print("\n\r");
Serial.print("Ha ylice: ");
printTemperature(ulicaC);
Serial.print("\n\r");
Serial.print("Kotel: ");
printTemperature(kotelC);
Serial.print("\n\r\n\r");
if(Serial1.available() >0) // насколько я понял считывает смс,возможно в этом проблема
{
inchar=Serial1.read();
if (inchar=='#')
{
sendSMS();
}
}
}
void sendSMS()
{
Serial1.println("AT+CMGS=\"+380660830000\"\r");
delay(1000);
Serial1.println(tempC);
delay(1000);
Serial1.println((char)26);
delay(1000);
Serial1.println("AT+CMGD=1,4\r");
Serial1.flush();
}
и как считывать\разбирать пришедшее смс,как лучше?