#include <WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const char triggerPin = 2; // Пин для отправки сигнала на датчик HC-SR04
const char echoPin = 4; // Пин для получения ответа от датчика HC-SR04
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* serverAddress = "192.168.1.100"; // IP адрес вашего сервера
const int serverPort = 80; // Порт для HTTP запросов
LiquidCrystal_I2C lcd(0x27, 20, 4); // Инициализация экрана LCD 20x4 через I2C
WiFiClient client;
void setup() {
Serial.begin(115200);
lcd.init(); // Инициализация экрана LCD
lcd.backlight(); // Включение подсветки экрана LCD
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Подключение к WiFi...");
}
Serial.println("Подключено к WiFi");
}
void loop() {
unsigned short int duration, distance;
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // Расчет расстояния в сантиметрах
Serial.print("Расстояние: ");
Serial.print(distance);
Serial.println(" см");
lcd.setCursor(0, 0);
lcd.print("Расстояние: ");
lcd.print(distance);
lcd.print(" см");
if (client.connect(serverAddress, serverPort)) {
client.print("GET /update?distance=");
client.print(distance);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(serverAddress);
client.println("Connection: close");
client.println();
client.stop();
} else {
Serial.println("Ошибка подключения к серверу");
}
delay(1000); // Задержка перед следующим измерением расстояния
}