Как отправить данные датчика с одного Arduino на другой Arduino, который является веб-сервером, чтобы опубликовать его?
Я ищу уже более 2 часов и никак не могу понять. Я очень смущен тем, как это сделать. Решение, которое я нашел, заключалось в использовании HTTP POST. Но я просто не могу заставить его работать. Честно говоря, я предполагаю, что это должно быть очень просто. Я использую переменную
sensorValue = analogRead(0);
А затем хочу отправить эту переменную на свой веб-сервер с IP-адресом 172.20.10.5
Затем я хочу сохранить эту переменную в массив на своем веб-сервере. Прошу прощения за этот запрос. Я, конечно, просмотрел не менее 20 разных сайтов и вопросов и не могу найти решение.
#include <SPI.h>
#include <Ethernet.h>
#include "ESP8266WiFi.h"
IPAddress server(172,20,10,5);
if(client.connect(server, 80)) {
client.println("POST /Raum1 HTTP/1.1");
client.println("Host: 172.20.10.5");
client.println("User-Agent: Arduino/1.0");
client.println("Connection: close");
client.print("Content-Length: ");
client.println(sensorValue.length());
client.println();
client.println(sensorValue);
}
void setup(){
Serial.begin(9600); // устанавливаем последовательный порт на 9600
WiFi.begin("iPad von Tobias", "12345678"); //Подключаемся к сети Wi-Fi
while (WiFi.status() != WL_CONNECTED) { // Ждем соединения
delay(500);
Serial.println("Waiting to connect…");
}
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); // Печатаем локальный IP
}
//сервер байтов[] = {172, 20, 10, 5}; //IP
void loop(){
sensorValue = analogRead(0); // прочитать аналоговый входной контакт 0
Serial.print("AirQuality=");
Serial.print(sensorValue, DEC); // печатает прочитанное значение
Serial.println(" PPM");
delay(1000);
Это мой текущий код на ESP8266, на котором датчик включен. Ошибка, которую я получаю больше всего: «клиент» не был определен в этом контексте. У меня был HTTP POST в цикле, вне цикла, в настройке, он просто не работает. Я пробовал разные методы, чтобы написать IP-адрес, который тоже не помог. Я также не знаю, как сохранить эти данные на веб-сервере. Они подключены через WIFI. Может быть, способ http совершенно неверен? Я ничего не могу найти для этого.
Скорее всего, это выглядело бы так, но это тоже не работает.
#include <SPI.h>
#include <Ethernet.h>
#include "ESP8266WiFi.h"
int sensorValue;
void setup(){
Serial.begin(9600); // устанавливаем последовательный порт на 9600#
WiFi.begin("iPad von Tobias", "12345678"); //Подключаемся к сети Wi-Fi
while (WiFi.status() != WL_CONNECTED) { // Ждем соединения
delay(500);
Serial.println("Waiting to connect…");
}
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); // Печатаем локальный IP
}
IPAddress server(172,20,10,5);
client.connect(server, 80)
void loop(){sensorValue = analogRead(0); // прочитать аналоговый входной контакт 0
Serial.print("AirQuality=");
Serial.print(sensorValue, DEC); // печатает прочитанное значение
Serial.println(" PPM");
delay(1000);
client.println("POST /Api/AddParking/3 HTTP/1.1");
client.println("Host: 172.20.10.5");
client.println("User-Agent: Arduino/1.0");
client.println("Connection: close");
client.print("Content-Length: ");
client.println(sensorValue.length());
client.println();
client.println(sensorValue);
}
Спасибо за вашу помощь, мне не нужно прямое решение, если вы можете указать мне литературу, которая поможет мне решить эту проблему.
@MrAeRoZz, 👍-1
Обсуждение1 ответ
Лучший ответ:
Если обнаружено, что вы также можете использовать UDP, чтобы делать то, что я хочу.
- ESP8266 отправляет веб-страницу клиенту, но html-коды отображаются в браузере вместо веб-страницы
- Как отправить HTTP-post данные в Node Express API с Arduino esp822 6?
- Проблема с HTML-кодом в ESP8266 WebServer
- Защита соединений ESP8266
- У меня есть код, печатающий нужные мне данные, но я не знаю, как подключить данные к IP-веб-серверу ESP8266.
- Несколько клиентских серверов через Wi-Fi
- Как получить параметры запроса от ESPAsyncWebServer?
- контент» не захватывается
используйте запрос GET для публикации одного значения, @Juraj
И как мне это сделать? @Юрай, @MrAeRoZz
попробуйте адаптировать этот пример https://github.com/arduino-libraries/WiFi/blob/master/examples/WiFiWebClient/WiFiWebClient.ino, @Juraj
В первом блоке кода у вас есть оператор if, который не находится внутри функции. Это сразу после
IPAddress server(...
. Это недопустимый синтаксис. Если операторы должны быть внутри функции, и это вполне может быть источником ошибки о том, что клиент не определен. Кроме того, вы никогда не объявляете клиента, вы можете начать с примеров и попробуй их приспособить..., @GMc