В скетче мы подключаемся к Wi-Fi сети посредством модуля ESP8266, плата Arduino отправляет HTTP запрос "GET /" веб-серверу и выводит текст полученной страницы в UART.
#include <SoftwareSerial.h> SoftwareSerial wifiSerial(2, 3); // RX, TX void setup() { wifiSerial.begin(9600); wifiSerial.setTimeout(5000); Serial.begin(9600); wifiCmd("AT+RST", 1000, "Ready"); //сообщение о готовности boolean connected = false;//подключение к сети for(int i=0; i<5; i++) { if(connectWiFi()) { connected = true; break; } } while (!connected); delay(5000); //устанавливаем режим соединения SINGLE wifiCmd("AT+CIPMUX=0", 1000, "OK"); } void loop() { wifiRqst(); while(1) { wifiSerial.listen(); if(wifiSerial.available()){ Serial.print((char)wifiSerial.read()); } if(Serial.available()){ wifiSerial.print((char)Serial.read()); } } } boolean connectWiFi() { wifiCmd("AT+CWMODE=1",1000,"OK"); wifiCmd("AT+CWJAP=\"Network\",\"Password\"",2000,"OK"); return true; } boolean wifiCmd(char cmd[], int timeout, char answer[]) { Serial.print(cmd); Serial.println(); wifiSerial.print(cmd); wifiSerial.println(); delay(timeout); if(wifiSerial.find(answer)) { Serial.println(answer); return true; } else { Serial.print("errCmd:|"); Serial.print(answer); Serial.println("|"); return false; } } boolean wifiRqst() { wifiCmd("AT+CIPSTART=\"TCP\",\"192.168.0.115\",80",1000,"OK"); if(wifiSerial.find("Error")) return false; char cmd[] = "GET / HTTP/1.0\r\n\r\n"; Serial.print("AT+CIPSEND="); Serial.println(sizeof(cmd)); wifiSerial.print("AT+CIPSEND="); wifiSerial.println(sizeof(cmd)); delay(1000); if(wifiSerial.find(">")) { Serial.print(">"); } else { wifiSerial.println("AT+CIPCLOSE"); delay(1000); return false; } wifiSerial.println(cmd); delay(2000); //wifiSerial.find("+IPD"); while (wifiSerial.available()) { /*char c = wifiSerial.read(); Serial.write(c);*/ Serial.write(wifiSerial.read()); } return true; }