Ткните плиз носом, где есть тема по использованию Ethernet Shield?
Ткните плиз носом, где есть тема по использованию Ethernet Shield?
я использовал у себя в проекте, пока не поменялась концепция, что именно интересует?
Да всё интересует)))) Я вот тока заполучил его, спасибо магазину http://carmonitor.ru/ru/, вчера заказал из Питера, Сегодня с утра привезли!!!!! Блин везде бы так!!!!!
В общем подключил я его к компьютеру напрямую, залил скеч из примеров Web Server, всё работает, а вот как его через роутер подключить?
Ну хотя бы самое простое, как из браузера диодом помигать?
Вот пример:
PHP код:
#include <Ethernet.h> //Подключаем описание библиотеки ethernet
//Здесь задается MAC адрес и IP адрес устройства.
//В данном примере предполагается, что IP адрес компьютера, с которого
//будем обращаться к устройству будет любым из сети 192.168.1.x,
//и маска 255.255.255.0
//MAC адрес можно задать любой, лишь бы он не пересекался с имеющимися в сети
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 177 };
Server server(80); //Создаем сервер, слушающий 80й порт (80 – это порт HTTP)
void setup()
{
Ethernet.begin(mac, ip); //Инициализируем Ethernet модуль
server.begin(); //Начинаем ожидать соединений на 80 порту
}
void loop()
{
//Если кто-то установил соединение с нашим сервером, следующая строчка
//создаст объект-клиент.
Client client = server.available();
if (client) { //если client не нулевой (т.е. соединение есть)
//...значит кто-то подключился. Согласно протокола HTTP клиент
//шлет довольно сложный запрос, но мы не будет его разбирать -
//нам достаточно дождаться окончания запроса.
//Запрос заканчивается пустой строкой, поэтому мы просто дождемся
//получения символа '\n', перед которым тоже были получены '\n' и '\r'.
//current_line_is_blank - это переменная-флаг. Она равна true, если
//вновь полученная от клиента строка пустая, т.е. в полученных данных
//не встретилось символов отличных от '\n' и '\r'.
//Будем выставлять переменную current_line_is_blank в false при
//получении любого отличного от '\n' и '\r' символа
boolean current_line_is_blank = true;
while (client.connected()) { //пока клиент подключен
if (client.available()) { //если от него пришел символ
char c = client.read(); //читаем этот символ
//Если получен перевод строки ('\n') и current_line_is_blank == true,
//значит мы получили пустую строку, т.е. запрос клиента окончен –
//можно слать ответ
if (c == '\n' && current_line_is_blank) {
//шлем стандартный HTTP заголовок
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(); //он тоже заканчивается пустой строкой!
//выдаем поочередно значения 6 аналоговых входов
for (int i = 0; i < 6; i++) {
client.print("analog input ");
client.print(i);
client.print(" is ");
client.print(analogRead(i));
client.println("<br>"); //HTML тэг <br> - перевод строки
}
break; //работа окончена – можно выходить из цикла while
}
if (c == '\n') { //если получен перевод строки, значит началась новая
//строка. Выставим флаг current_line_is_blank = true
current_line_is_blank = true;
} else if (c != '\r') { //если получен любой другой символ, отличный
//от возврата каретки ('\r'), значит получаемая строка непустая
current_line_is_blank = false;
}
}
}
//небольшая пауза, чтобы данные успели уйти
delay(1);
//разрываем соединение с клиентом
client.stop();
}
}
Последний раз редактировалось Chip; 28.11.2012 в 12:31.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)