Arduino к ESP8266 через последовательную связь
Это руководство объясняет, как установить последовательную связь между Arduino и модулем ESP8266 WiFi без необходимости FTDI-адаптера.
Подключение
Схема подключения:
Arduino пин 3 -> делитель напряжения -> ESP8266 RX
Arduino пин 2 -> ESP8266 TX
Arduino GND -> ESP8266 GND
ESP8266 CH_PD подтянут к +3.3V через резистор 10 кОм
+3.3V к ESP8266 VCC
Важные замечания:
Используйте делитель напряжения только для 5V Arduino (резисторы 1 кОм и 2 кОм)
3.3V Arduino подключаются напрямую без делителя напряжения
ESP8266 требует отдельный источник питания 3.3V (не от Arduino)
Модуль может потреблять до 300 мА, что превышает возможности Arduino
Скетч Arduino
#include <SoftwareSerial.h>
SoftwareSerial ESPserial(2, 3); // RX | TX
void setup()
{
Serial.begin(9600);
ESPserial.begin(9600);
Serial.println("");
Serial.println("Remember to to set Both NL & CR in the serial monitor.");
Serial.println("Ready");
Serial.println("");
}
void loop()
{
if ( ESPserial.available() ) { Serial.write( ESPserial.read() ); }
if ( Serial.available() ) { ESPserial.write( Serial.read() ); }
}
Важные настройки
Скорость передачи (Baud Rate):
Ранние модули ESP8266 поставлялись с разными скоростями по умолчанию (9600, 57600 или 115200). Пользователям необходимо тестировать разные скорости, включая модуль и наблюдая за загрузочными сообщениями.
Настройки монитора порта:
Установите и NL (New Line), и CR (Carriage Return) при использовании монитора порта Arduino IDE для правильной связи через AT-команды.
Распространённые проблемы и решения
Нечитаемый вывод (мусор): указывает на неправильную скорость передачи
Нет ответов: проверьте значения резисторов делителя напряжения и подключения
Модуль постоянно перезагружается: недостаточное питание; используйте внешний адаптер
Ошибки загрузки: отключите ESP8266 при загрузке кода в Arduino
Ошибки занятости порта: может потребоваться альтернатива FTDI-адаптера