Чтение Ардуиной из текстового файла в интернете

kosma
Offline
Зарегистрирован: 27.08.2015

Привет!

Задался вопросом об управлении ардуино через интернет, нашёл на гиктаймсе это http://geektimes.ru/post/255546/ , со стороны сервера всё в порядке - работает, а вот со стороны скетча вообще какая-то лажа. Отправлять данные - это как бы я наладил (тем более что у меня датчик DHT22) перелапатив интернет, но вот с чтением из файла не понятно, т.е. как я понимаю в коде не указано откуда читать и из какого файла, ну и собственно где-то присутствуют ошибки сами по себе.

У меня цель, пока, отправлять данные с датчика DHT22 - это уже работает, и считывать данные из текстового файла для включения/выключения каждого из реле в 4-х релейном модуле.

В комплекте Arduino UNO, Ethernet Shield, DHT22, 4-Relay Module - Всё с Алиэкспресс

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Стандартный пример клиента из библиотеки Ethernet.
В параметрах GET-запроса указываете нужный файл.
 

В примере на Гиктаймс, клиент обращается к пхп-скрипту, и слушает что он ответит. Вам по тому-же принципу, нужно обратиться к файлу, который вы хотите прочитать, а ответом сервера будет содержимое этого файла.

Vладимир
Offline
Зарегистрирован: 27.01.2015

при приеме данных от сервера  не забывайте что в ардуинках не так уж и много памяти , и когда память начнет заканчиватся во время выполнения программы возможно не предсказуемое поведение проги  

kosma
Offline
Зарегистрирован: 27.08.2015

А может есть пример кода?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

kosma пишет:
А может есть пример кода?

Gippopotam пишет:
Стандартный пример клиента из библиотеки Ethernet.

kosma
Offline
Зарегистрирован: 27.08.2015

Т.е. в void setup меняем на
client.println("GET /txt/out-1.txt HTTP/1.1");
client.println("Host: 192.168.100.10");

А луп будет таким?

void loop()
{
// if there are incoming bytes available
// from the server, read them and print them:
if (client.available()) {
char c = client.read();
Serial.print(c);
if ( c=='1')
{
buff=1;
}
if ( c=='0')
{
buff=0;
}
}
client.stop();
client.flush();
delay(100);
}
else
{
client.stop();
delay(1000);
client.connect(server, 80);
}

if ( buff==1)
{
digitalWrite (led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
delay(500);
}
}

Alexander
Offline
Зарегистрирован: 25.04.2010
kosma
Offline
Зарегистрирован: 27.08.2015


В мобильном браузере нету этой панели

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

kosma пишет:
Т.е. в void setup меняем на client.println("GET /txt/out-1.txt HTTP/1.1"); client.println("Host: 192.168.100.10");

нет