В современном мире технологии интернета вещей (IoT) становятся все более востребованными в различных областях, от умного дома до промышленной автоматизации. Одним из ключевых компонентов IoT является модуль Wi-Fi, такой как ESP-01, который обеспечивает беспроводное подключение к интернету. В этом руководстве мы рассмотрим процесс подключения модуля ESP-01 к микроконтроллеру STM32, который является мощным и гибким инструментом для создания различных устройств и систем.
ESP-01 – это компактный модуль Wi-Fi, разработанный компанией Espressif Systems. Он обеспечивает доступ к беспроводной сети Wi-Fi и позволяет выполнять HTTP-запросы, работать в режиме точки доступа и многое другое. Одной из главных особенностей ESP-01 является его низкое энергопотребление и простота использования.
Купить ESP-01 можно в нашем интернет-магазине.
STM32 — это семейство микроконтроллеров, разработанных компанией STMicroelectronics. Они обладают высокой производительностью, богатым набором функций и широким спектром возможностей для создания различных устройств и систем. Микроконтроллеры STM32 отличаются высокой производительностью, большим выбором периферийных устройств и обширной поддержкой программного обеспечения.
Купить STM32 можно в нашем интернет-магазине.
Модуль ESP-01 управляется с помощью AT команд. AT команды позволяют отправлять инструкции модулю для выполнения различных действий, таких как установка соединения, отправка http запросов и другие. Ниже приведен список основных AT команд, которые можно использовать с модулем:
AT | Подтверждение, возвращает ‘OK’ |
AT+RST | Перезапуск модуля |
AT+GMR | Показывает информацию о прошивке |
AT+CWMODE=1, 2, 3 | Режим Wi-Fi: 1-Станция, 2- Точка доступа, 3-Оба |
AT+CWLAP | Список Точек доступа |
AT+CWJAP=”SSID”,”ПАРОЛЬ” | Присоединяется к точке доступа |
AT+CWQAP | Выход из точки доступа |
AT+CIFSR | Получает IP-адрес |
AT+CIPMUX=0, 1 | Устанавливает множественное подключение: 0-Одиночное, 1-Множественное |
AT+CIPSTART | Устанавливает соединение TCP/UDP |
AT+CIPSEND | Отправляет данные |
AT+CIPSTATUS | Получает статус подключения |
AT+CIPSERVER=режим,порт | Устанавливает как Сервер: 0-Закрытый сервер, 1-Открытый порт |
AT+CIPCLOSE | Закрывает соединение TCP или UDP |
Схема подключения
Для подключения модуля ESP-01 к микроконтроллеру STM32 следует использовать следующую схему:
ESP-01 | STM32 |
---|---|
VCC | 3.3V |
GND | GND |
CH_PD | 3.3V |
TX | PA3 (USART2_TX) |
RX | PA2 (USART2_RX) |
ESP8266 использует последовательную связь для взаимодействия с микроконтроллером. Поэтому TX и RX ESP8266 подключены к последовательному порту serial2 (PA2 и PA3) платы STM32.
Библиотеки
Для подключения модуля ESP-01 не требуется установка дополнительных библиотек.
Пример кода
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
// Для удобства назовем последовательный порт, к которому подключен Wi-Fi модуль #define WiFi Serial1 // Параметры WiFi сети (замение на свои данные) String ssid = "НАЗВАНИЕ ВАШЕЙ СЕТИ"; String password = "ВАШ ПАРОЛЬ"; // Веб-страница const char webpage[] = R"( <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <h1>Привет от STM32 и ESP-01!</h1> </body> </html> )"; // Функция для отправки команды на WiFi модуль int send_command(String cmd) { // Выводим команду в монитор порта Serial.print("-> "); Serial.println(cmd); // Отправляем команду на WiFi модуль WiFi.println(cmd); // Ожидаем ответ от модуля unsigned long timeout = millis(); while (!WiFi.available()) { if (millis() - timeout > 10000) { // Таймаут 10 секунд // Ошибка, если таймаут истек Serial.println("! Ошибка: ESP-01 не отвечает."); return -1; } } // Получаем ответ от модуля ESP while (WiFi.available() > 0) { Serial.print(WiFi.read()); } return 0; } int wifi_init() { int err = 0; // Проверяем работоспособность модуля err = send_command("AT"); // Устанавливаем модуль в режим станции err = send_command("AT+CWMODE=1"); // Перезагружаем модуль err = send_command("AT+RST"); // Подключаемся к сети WiFi err = send_command(String("AT+CWJAP=\"" + ssid + "\",\"" + password + "\"")); // Разрешаем множество подключений err = send_command("AT+CIPMUX=1"); // Создаем веб сервер err = send_command("AT+CIPSERVER=1,80"); // Запрашиваем IP адрес err = send_command("AT+CIFSR"); return err; } void setup() { Serial.begin(9600); WiFi.begin(9600); // Подключаемся к WiFi int err = wifi_init(); if (err != 0) { // Если произошла ошибка, то останавливаем программу Serial.println("! Ошибка: Не удалось подключиться к WiFi сети."); while (true) {} } Serial.println(" - Загрузка завершена."); } void loop() { // Если есть новое подключение if (WiFi.available() > 0 && WiFi.find("0,CONNECT")) { // Отправляем на него веб страницу send_command("AT+CIPSEND=0,"); WiFi.println(webpage); // Закрываем соединение send_command("AT+CIPCLOSE=0"); } } |
После загрузки кода, откройте монитор порта в Arduino IDE. Среди других строк вы увидите IP-адрес вашего модуля. Скопируйте его и вставьте в строку поиска вашего браузера. Это приведет вас на веб-страницу, которая была загружена с модуля ESP.
Мы рассмотрели процесс связи Wi-Fi модуля ESP-01 с микроконтроллером STM32 и представили пример кода. Этот подход позволяет создавать различные проекты, требующие беспроводной связи и обмена данными. Совместное использование ESP-01 и STM32 открывает путь к созданию умных устройств, интернета вещей и управления домашней автоматикой.
Надеемся, что данная статья поможет вам освоить соединение ESP-01 и STM32 и вдохновит на создание уникальных проектов!