У меня есть код, печатающий нужные мне данные, но я не знаю, как подключить данные к IP-веб-серверу ESP8266.
#include "DHT.h"
#include "NewPing.h"
#include <SoftwareSerial.h>
#define DEBUG true
SoftwareSerial esp8266(11,10);
#define DHTPIN 2 // Подключение выходного контакта DHT-11
#define DHTTYPE DHT11 // Тип DHT — DHT 11 (AM2302)
#define TRIGGER_PIN 4
#define ECHO_PIN 3
#define MAX_DISTANCE 400
NewPing sonar(TRIGGER_PIN,ECHO_PIN,MAX_DISTANCE);
float hum;
float temp;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin (9600);
dht.begin();
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
sendData("AT+RST\r\n",2000,DEBUG);
sendData("AT+CWMODE=2\r\n",1000,DEBUG);
sendData("AT+CIFSR\r\n",1000,DEBUG);
sendData("AT+CIPMUX=1\r\n",1000,DEBUG);
sendData("AT+CIPSERVER=1,80\r\n",1000,DEBUG);
}
void loop()
{
delay(2000); // Задержка, чтобы датчик DHT-11 мог стабилизироваться
hum = dht.readHumidity(); // Получаем значение влажности
temp= dht.readTemperature(); // Получаем значение температуры
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
long duration,distance;
duration= pulseIn(ECHO_PIN,HIGH);
distance = duration/58.2;
Serial.print("Humid: ");
Serial.print(hum);
Serial.print(" %, Temp: ");
Serial.print(temp);
Serial.print(" C, ");
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(50);
if(esp8266.available())
is sending a message
{
if(esp8266.find("+IPD,"))
{
delay(1000);
int connectionId = esp8266.read()-48;
/* We are subtracting 48 from the
output because the read() function returns
the ASCII decimal value and the
first decimal number which is 0 starts at 48*/
String webpage = "<h1>IOT Garbage Monitoring System</h1>";
webpage += "<p><h2>";
if (distance<5)
{
webpage+= " Trash can is Full";
}
else{
webpage+= " Trash can is Empty";
}
webpage += "</h2></p></body>";
String cipSend = "AT+CIPSEND=";
cipSend += connectionId;
cipSend += ",";
cipSend +=webpage.length();
cipSend +="\r\n";
sendData(cipSend,1000,DEBUG);
sendData(webpage,1000,DEBUG);
String closeCommand = "AT+CIPCLOSE=";
closeCommand+=connectionId;
closeCommand+="\r\n";
sendData(closeCommand,3000,DEBUG);
}
}
}
String sendData(String command, const int timeout, boolean debug)
{
String response = "";
esp8266.print(command);
long int time = millis();
while( (time+timeout) > millis())
{
while(esp8266.available())
{
char c = esp8266.read();
response+=c;
}
}
if(debug)
{
Serial.print(response);
}
return response;
}
@Xiaomy, 👍0
Обсуждение1 ответ
Лучший ответ:
▲ 0
esp-01 находится в режиме точки доступа. Чтобы получить доступ к веб-странице по IP-адресу 192.168.4.1, показанному в Serial Monitor, вам необходимо подключиться к сети Wi-Fi, созданной esp-01.
Если щелкнуть значок Wi-Fi в правом нижнем углу Windows, вы увидите список сетей Wi-Fi.
,
@Juraj
Смотрите также:
- Отправка данных из ESP8266 в PHP
- Как отправить HTTP-post данные в Node Express API с Arduino esp822 6?
- Esp8266 не отвечает на запрос от приложения для Android, созданного с помощью MIT App Inventor
- Wifi Регистратор данных без Задержки
- NODEMCU 1.0 HX711 Тензодатчик читает странный текст
- Ошибка при компиляции скетча для Arduino Uno (ld return 1)
- При компиляции я получаю #endif без ошибки #if. Вот код. Пожалуйста помоги!
- Существуют ли какие-либо модули Wi-Fi для Arduino или Uno, которые можно подключить к внешней антенне Wi-Fi?
Комментарии не предназначены для расширенного обсуждения; этот разговор [перенесен в чат](https://chat.stackexchange.com/rooms/85740/discussion-on-question-by-xiaomy-i-have-the-code-printing-the-data-i- нужно, но делай)., @Majenko