Простая система автоматизации на ESP32

Простая система автоматизации на ESP32

В данной статье мы рассмотрим, как создать простую систему автоматизации с использованием микроконтроллера ESP32 и языка программирования Python. В качестве примера мы создадим систему управления освещением через Wi-Fi.

Шаг 1: Подготовка оборудования

Для создания системы вам понадобятся:

  • Микроконтроллер ESP32
  • Светодиод или реле для управления освещением
  • Провода и макетная плата
  • Компьютер для программирования ESP32 и запуска скриптов на Python

Шаг 2: Настройка среды разработки

Установка Arduino IDE

  1. Скачайте и установите Arduino IDE с официального сайта.
  2. Откройте Arduino IDE, перейдите в File > Preferences.
  3. В поле Additional Board Manager URLs добавьте ссылку: https://dl.espressif.com/dl/package_esp32_index.json.
  4. Перейдите в Tools > Board > Boards Manager и установите esp32.

Подключение ESP32

  1. Подключите ESP32 к компьютеру через USB.
  2. В Arduino IDE выберите Tools > Board > ESP32 Dev Module.
  3. Выберите соответствующий порт в Tools > Port.

Шаг 3: Программирование ESP32

Создадим скетч для ESP32, который будет управлять светодиодом по команде, полученной по Wi-Fi.

#include <WiFi.h>
#include <WebServer.h>

const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";

WebServer server(80);

const int ledPin = 2; // Встроенный светодиод на ESP32

void handleRoot() {
  server.send(200, "text/plain", "Use /on to turn ON LED and /off to turn OFF LED");
}

void handleLedOn() {
  digitalWrite(ledPin, HIGH);
  server.send(200, "text/plain", "LED is ON");
}

void handleLedOff() {
  digitalWrite(ledPin, LOW);
  server.send(200, "text/plain", "LED is OFF");
}

void setup() {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);

  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }

  Serial.println("Connected to WiFi");

  server.on("/", handleRoot);
  server.on("/on", handleLedOn);
  server.on("/off", handleLedOff);

  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
}

Загрузите этот скетч в ESP32 и откройте Serial Monitor для проверки подключения к Wi-Fi.

Шаг 4: Создание скрипта на Python

Теперь создадим скрипт на Python, который будет отправлять команды ESP32 через Wi-Fi.

Установка необходимых библиотек

Убедитесь, что у вас установлен Python и библиотека requests. Если нет, установите её с помощью команды:

pip install requests

Скрипт на Python

import requests

ESP32_IP = 'http://your_esp32_ip'

def turn_on_led():
    response = requests.get(f"{ESP32_IP}/on")
    if response.status_code == 200:
        print("LED turned ON")
    else:
        print("Failed to turn ON LED")

def turn_off_led():
    response = requests.get(f"{ESP32_IP}/off")
    if response.status_code == 200:
        print("LED turned OFF")
    else:
        print("Failed to turn OFF LED")

if __name__ == "__main__":
    while True:
        command = input("Enter command (on/off/exit): ").strip().lower()
        if command == "on":
            turn_on_led()
        elif command == "off":
            turn_off_led()
        elif command == "exit":
            break
        else:
            print("Invalid command")

Объяснение работы кода

Код для ESP32

  1. Инициализация Wi-Fi: Подключаем ESP32 к указанной сети Wi-Fi.
  2. Настройка сервера: Настраиваем веб-сервер, который будет обрабатывать запросы.
  3. Обработчики запросов: Создаем функции для обработки запросов на включение и выключение светодиода.
  4. Главный цикл: В главном цикле loop постоянно обрабатываем клиентские запросы.

Код на Python

  1. Импорт библиотек: Импортируем библиотеку requests для отправки HTTP-запросов.
  2. Определение функций: Создаем функции для отправки запросов на включение и выключение светодиода.
  3. Главный цикл: В главном цикле принимаем команды от пользователя и вызываем соответствующие функции.

Мы создали простую систему автоматизации, которая позволяет управлять освещением через Wi-Fi с помощью ESP32 и Python. Эта система может быть расширена для управления различными устройствами и выполнения более сложных задач.


Карпов Ярослав

Автор статьи:

Обновлено:

01.06.2024


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *