Доброго времени суток! Есть скетч(1) Esp8266 который принимает данные от ардуино и передает их в браузер. Требуется передать это значение val в серийный порт по wi-fi. Я так понял, что с esp на пк значения будут передаваться по udp, а уже потом в серийный порт, но когда я пытаюсь использовать класс WiFiUDP компилятор выдает ошибку для платы Esp8266
(1)
(2)
Собственно вопрос: как организовать передачу значения val по wi-fi?
(1)
Код:
#include <SoftwareSerial.h>
SoftwareSerial programSerial(10, 11);
int incomingByte = 0, incomingByte1 = 0;
char str[10];
char instr[10];
void setup()
{
programSerial.begin(57600);
Serial.begin(57600);
}
void loop()
{
int i = 0;
incomingByte = analogRead(0);
itoa(incomingByte, str, 10);//преобразуем incomingByte в символьный массив для передачи
programSerial.write(str, sizeof str);
while(programSerial.available()==0)
{delay(1);}
if(programSerial.available()>0)
{
while(programSerial.available()>0 && i<10)
{
delay(1);
incomingByte1=programSerial.read();
instr[i]=incomingByte1;
i++;
}
}
if(i!=0)
{
int val=atoi(instr);//преобразуем полученный из порта массив в число
Serial.println(val);
}
}
(2)
Код:
#include <SPI.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiServer.h>
#include <WiFiUdp.h>
#include <string.h>
int incomingByte = 0;
char str[10];
char outstr[10];
const char* ssid = "ithome-nn.ru";
const char* password = "9519178980";
WiFiServer server(80);
WiFiUdp Udp;
void setup()
{
Serial.begin(57600);
delay(10);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{delay(500);}
server.begin();
Udp.begin(5555);
}
void loop()
{
WiFiClient client = server.available();
int i=0;
while(Serial.available()==0)//ждем данных из порта
{delay(1);}
if(Serial.available()>0)
{
delay(1);
while(Serial.available()>0 && i<10)
{
delay(1);
incomingByte=Serial.read();
str[i]=incomingByte;
i++;
}
}
if(i!=0)
{
int val=atoi(str);//преобразуем символьный массив str в число val
itoa(val, outstr, 10);//преобразуем число val в символьный массив для отправки
Serial.write(outstr, sizeof outstr);
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n<head>\r\n<meta http-equiv='Refresh' content='0.01' />\r\n";
s += val;
s += "</html>\n";
Upd.beginPacket(Udp.remoteIP(), Udp.remotePort());
Udp.write(outstr, sizeof outstr);
Udp.endPacket();
client.print(s);
delay(1);
}
}