Вопрос. Светодиод и Ethernet Shield

Тема в разделе "Arduino & Shields", создана пользователем Andy, 19 июн 2012.

  1. Andy

    Andy Нуб

    Люди добрые помогите:) Как мне бы зажечь светодиод используя Ethernet Shield? Что-бы я зашел на страницу, нажал кнопку и он загорелся. Гуглил но ничего не нашел.
     
  2. Иван С

    Иван С Гик

    На офсайте есть описание ethernet библиотеки, на википедии есть статья о http заголовках, хотя за точной инфой лучше погуглить.

    Код (Text):
    #include <SPI.h> //эта библиотека нужна для взаимодействия с шилдом
     
    #include <Ethernet.h>//Подключаем описание библиотеки ethernet
     
    byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x1D, 0xED };//создаём mac адрес (он написан на задней стороне шилда)
    byte ip[] = { 192, 168, 1, 100 };//создаём ip адрес шилда (он должен соответствовать настройкам вашей сети)
    //Оба адреса хранятся в массивах типа byte
     
    EthernetServer server(80);  //Создаем сервер, слушающий 80-й порт (это порт, который обычно слушают HTTP сервера)
     
    void setup()
    {
      Ethernet.begin(mac, ip);  //Инициализируем Ethernet модуль (ip можно не указывать, тогда он присвоится DHCP сервером вашей сети)
      server.begin();//Начинаем ожидать соединений на 80 порту
    }
     
    void loop()
    {
        //Если есть подключение к серверу, создаём на его основе клиента
        if (server.available()) {
            EthernetClient client = server.available();
            //Здесь мы можем байт за байтом прочитать запрос клиента (client.read())
            //посмотреть чего он хочет и что он нам прислал
          //
        //Далее, разобравшись чего хочет клиент мы можем послать ему ответ и сделать то, что он просил
     
              client.println("HTTP/1.1 200 OK");
              client.println("Content-Type: text/html");
              client.println();    //HTTP запросы и ответы оканчиваются пустой строкой!!!
              //После ответа посылаем HTML код
            client.println("<html><head><title>Страничка от сервера на ардуино...</title>");
            client.println("</head><boby><p>...и она работает!!!</p></boby></html>");
            //небольшая пауза, чтобы данные успели уйти, на мой взгляд не очень нужная штука
            delay(1);
            //разрываем соединение с клиентом
            client.stop();
      }
    }

    P.S. Наверно лучше гуглить HTTP - запросы/ответы чем заголовки...
     
  3. Andy

    Andy Нуб

    Спасибо:) Хоть что-то:)
    А разве MAC-адрес не любой может быть?
     
  4. Иван С

    Иван С Гик

    MAC адрес - это индивидуальный адрес каждого сетивого устройства. А вот ip-шник может быть любым, главное чтобы в данный момент времени к сети не было подключено устройство с таким же ip.
     
  5. andbas

    andbas Нуб

    Знаю, что вопрос был задан немного давновато, но я как раз закончил статейку, где проделывается этот нехитрый трюк, мало ли кому-то окажется полезным, а он наткнется на этот форум.
     
  6. Andy

    Andy Нуб

    Спасибо:D