Часть кода моего регулятора температуры: Код (C): #include <SoftwareSerial.h> SoftwareSerial mySerial(7, 8); ... mySerial.println("AT+HTTPPARA=\"URL\",\"mysite.com/arduino.php?temp="+String(t)+"\"");// setting the httppara, the second parameter is the website you want to access delay(1000); ShowSerialData(); ... void ShowSerialData() { while(mySerial.available()!=0) Serial.write(mySerial.read()); } Система конектится к сайту, получает данные, пишет в консоли. Но нужно данные с сервера обработать в скетче. Подскажите как записать ответ сервера в строку для дальнейших манипуляций?
посмотрите внимательнее, в коде показано, что в консоль пишется и откуда берется. подсказка - смотрим на тело функции void ShowSerialData() Рассуждаем так: в консоль пишется некая строка функцией write(stroka). в коде написано в аргументе mySerial.read(). Значит эта функция возвращает нам строку, которую write "пуляет" в консоль. эквивалент тела функции: Код (C): { string stroka; stroka=mySerial.read(); Serial.write(stroka); }
String webresult; Код (C): void ShowSerialData() { while(mySerial.available()!=0) { webresult = webresult + mySerial.read(); } } Почему-то в webresult получается набор цифр вместо текста?
Сейчас только заметил: Код (C): while(mySerial.available()!=0) { Serial.write(mySerial.read()); } Этот код не все данные пишет в конслоь. Часть полученной строки обрезается.
webresult - у вас не объявлен тип. неявно считается тип - "целое число" int Вот поэтому вы и не видите желаемую строку. длина получаемой строки какая? Код (C): Serial.println(mySerial.available()); update: и попробуйте mySerial.readBytes(stroka,mySerial.available()) вместо простого read и не забываем про кодировку символов, ибо любой символ есть число.