Как брать текст с сервера на Arduino?

Тема в разделе "Arduino & Shields", создана пользователем Никита Мещеряков, 2 мар 2019.

Метки:
  1. Всем привет. Я создал сервер с помощью arduino w5500.
    Код (C++):
    #include <SPI.h>          
    #include <Ethernet.h>      
    boolean newInfo = 0;      

    byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };    


    IPAddress ip(192,168,1,9);  


    EthernetServer server(80);

    void setup()
    {
      pinMode(8, OUTPUT);                                            
      //запускаем сервер с указанными ранее MAC и вашим IP
      Ethernet.begin(mac, ip);
      server.begin();
      Serial.begin(9600);
    }

    void loop()
    {
      //принимаем данные, посылаемые клиентом
      EthernetClient client = server.available();
      if(client){                                    
      boolean currentLineIsBlank = true;              
      while (client.connected()) {                    
        if (client.available()) {                      
          char c = client.read();                      
                                                     
          if(newInfo && c == ' '){                    
            newInfo = 0;                              
          }
         
          if(c == '$'){                                
                                                       
            newInfo = 1;                              
          }
         
       
         
                                                         //Проверяем содержание URL - присутствует $1 или $2
          if(newInfo == 1){                              //если есть новая информация
              Serial.println(c);
              if(c == '1'){                              //и "с" содержит 1
              Serial.println("ON");
              digitalWrite(8, HIGH);                    //то зажигаем светодиод
              }
             
              if(c == '2'){                              //если "с" содержит 2
              Serial.println("OFF");
              digitalWrite(8, LOW);                     //гасим светодиод
              }  
          }
         
          if (c == '\n') {                              //если "с" равен символу новой строки
            currentLineIsBlank = true;                  //то начинаем новую строку
          }
          else if (c != '\r') {                         //иначе, если "с" не равен символу возврата курсора на начало строки
            currentLineIsBlank = false;                 //то получаем символ на текущей строке
          }
       
          if (c == '\n' && currentLineIsBlank) {        //выводим HTML страницу
            client.println("HTTP/1.1 200 OK");          //заголовочная информация
            client.println("Content-Type: text/html");
            client.println("Connection: close");
            client.println("Refresh: 30");              //автоматическое обновление каждые 30 сек
            client.println();
            client.println("<!DOCTYPE HTML>");          //HTML тип документа
            client.println("<html>");                   //открытие тега HTML
            client.print("<title>My web Server</title>");                  //название страницы
            client.print("<H1>My web Server</H1>");                        //заголовк на странице
            client.print("<a href=\"/$1\"><button>On</button></a>");       //кнопка включить
            client.print("<a href=\"/$2\"><button>Off</button></a>");      //кнопка выключить
            client.println("<br />");      
            client.println("</html>");                  //закрываем тег HTML
            break;                                      //выход
          }
       
        }
       
      }
      delay(1);                                          //время на получение новых данных
      client.stop();                                     //закрываем соеднение
    }
    }
     
    Как реализовать поле input и брать из него значения?
     
  2. NikitOS

    NikitOS Public enemy Администратор

    Возвращаете клиенту html-форму, а потом получаете GET / POST запрос от него