В данной статье мы рассмотрим, как создать простую систему автоматизации с использованием микроконтроллера ESP32 и языка программирования Python. В качестве примера мы создадим систему управления освещением через Wi-Fi.
Шаг 1: Подготовка оборудования
Для создания системы вам понадобятся:
- Микроконтроллер ESP32
- Светодиод или реле для управления освещением
- Провода и макетная плата
- Компьютер для программирования ESP32 и запуска скриптов на Python
Шаг 2: Настройка среды разработки
Установка Arduino IDE
- Скачайте и установите Arduino IDE с официального сайта.
- Откройте Arduino IDE, перейдите в File > Preferences.
- В поле Additional Board Manager URLs добавьте ссылку:
https://dl.espressif.com/dl/package_esp32_index.json
. - Перейдите в Tools > Board > Boards Manager и установите esp32.
Подключение ESP32
- Подключите ESP32 к компьютеру через USB.
- В Arduino IDE выберите Tools > Board > ESP32 Dev Module.
- Выберите соответствующий порт в 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
- Инициализация Wi-Fi: Подключаем ESP32 к указанной сети Wi-Fi.
- Настройка сервера: Настраиваем веб-сервер, который будет обрабатывать запросы.
- Обработчики запросов: Создаем функции для обработки запросов на включение и выключение светодиода.
- Главный цикл: В главном цикле
loop
постоянно обрабатываем клиентские запросы.
Код на Python
- Импорт библиотек: Импортируем библиотеку
requests
для отправки HTTP-запросов. - Определение функций: Создаем функции для отправки запросов на включение и выключение светодиода.
- Главный цикл: В главном цикле принимаем команды от пользователя и вызываем соответствующие функции.
Мы создали простую систему автоматизации, которая позволяет управлять освещением через Wi-Fi с помощью ESP32 и Python. Эта система может быть расширена для управления различными устройствами и выполнения более сложных задач.
Автор статьи:
Обновлено:
Добавить комментарий