НАЗАД

Использование Ethernet Shield (построение статичной Web страницы)

Данная программа показывает основу использования Ethernet Shield для подключения устройств на Arduino к сети Ethernet. Для работы с Ethernet Shield необходима библиотека Ethernet.h.
Обращение к устройству выполняется через адресную строку браузера. В ответ на адресную строку браузера устройство на Arduino возвращает HTML страницу.
В листинге ниже приведен пример кода.

// Определяем необходимые библиотеки
#include "String.h"
#include "Ethernet.h"
// Определяем данные сети
//mac-адрес Ethernet shield
byte mac[] = { 0xCA, 0xAF, 0x78, 0x1C, 0x13, 0x77 };
// IP адрес Ethernet shield
byte ip[] = { 192, 168, 1, 15 };
// Маска подсети Ethernet shield
byte subnet[] = { 255, 255, 255, 0 };
//Определяем порт сервера
EthernetServer server(80);
//Строка для получения данных из адресной строки
String readString = String(30);
void setup()
{
//запускаем Ethernet br/> Ethernet.begin(mac, ip, subnet);
}
void loop()
{
// Создаем клиентское подключение
EthernetClient client = server.available();
if (client)
{
while (client.connected())
{
if (client.available())
{
char c = client.read();
//читать символ за символом HTTP запроса
if (readString.length() < 30)
{
//сохранить символы в строке
readString.concat(c);
}
//если HTTP запрос завершен
if (c == '\n')
{
// Создаем HTML-страницу
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("˂head˃ ");
client.println("˂meta http-equiv='Content-Type' content='text/html; charset=utf-8' /˃ ");
client.println("˂title˃ :: Удаленное управление:: V1.1˂/title˃");
client.println("˂/head˃ ");
client.println("˂body˃");
client.println("˂hr /˃");
client.println("˂h1˃ ::Arduino:: client.println("˂form method=get name=LED˃˂input type=radio name=Level value=1 CHECKED˃Включить˂input type=radio name=Level value=0˃Выключить˂input type=submit value=OK˃˂/form˃");
client.println("˂font size=’5?˃LED-статус: ");
client.println("˂font size=’5?˃Вкл.")
//Линия
client.println("˂hr /˃");
//Вывод текста
client.println("ЭТО ПРИМЕР");
client.println(" РАБОТЫ С ETHERNET SHIELD");
client.println("˂/body˃˂/html˃");
//очищаем строку для следующего считывания
readString="";
//Останавливаем web-client
client.stop();
}
}
}
}
}