ЦЕЛЬ
Из Arduino UNO отправьте AT-команды на ESP8266 через порт SoftwareSerial и получите результаты.
ТЕКУЩИЙ СТАТУС
Я либо отправляю AT-команды и ничего не получаю обратно ( схема соединений 1 ), либо отправляю AT-команды и получаю обратно мусор ( схема соединений 2 ).
Используя Arduino в качестве прохода (как объяснено в руководстве, указанном в разделе ресурсов), я могу отправлять AT-команды. Я обнаружил, что могу общаться с ESP8266 со скоростью 115200 бод.
Это результаты бега AT+GMR
:
AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
СХЕМА ПОДКЛЮЧЕНИЯ 1
!! У меня есть зеленый провод, прикрепленный к контакту 3 на Arduino Uno, и желтый провод, прикрепленный к контакту 2; не 1, а 0, как на картинке!
СХЕМА ПОДКЛЮЧЕНИЯ 2
Та же проводка, что и выше, но у меня RX и TX поменялись местами. Зеленый провод подключен к контакту 2, а желтый провод подключен к контакту 3.
КОД
Это работает на Arduino Uno
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2, 3);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Started");
// set the data rate for the SoftwareSerial port
esp8266.begin(115200);
esp8266.write("AT\r\n");
}
void loop() {
if (esp8266.available()) {
Serial.write(esp8266.read());
}
if (Serial.available()) {
esp8266.write(Serial.read());
}
}
РЕЗУЛЬТАТЫ ОТ ЭКОНОМИКИ
Схема подключения 1
Started
Схема подключения 2
Started
�����
Я проверил ESP8266 с помощью инструкций, перечисленных в руководстве в разделе « Ресурсы, которые я использовал » ниже. ESP8266 прекрасно работает при отправке инструкций через Serial Prompt.
Ресурсы, которые я использовал http://rancidbacon.com/files/kiwicon8/ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf
ВОПРОС
Кто-нибудь знает, возможно ли то, что я пытаюсь сделать? И если это так, что я делаю не так?
Ответы:
Абсолютно возможно :)
SoftwareSerial не поддерживает скорость 115200 бод (несмотря на то, что «разрешает» это как настройку). В некоторых отчетах указывается, что 57600 работоспособен, хотя по моему опыту 9600 является лучшим по надежности. Как изменить скорость передачи в ESP8266, будет зависеть от версии прошивки. У меня был успех с
AT+IPR=9600
. Вам нужно выполнить эту команду только один раз (это постоянная настройка). Исходя из вашего описания, я бы предположил, что это наиболее вероятный виновник, который вызывает вывод «мусора», который вы описываете.Пара других заметок:
AT
но при попытке подключиться к сети и т. Д. Это может привести к неожиданной перезагрузке устройства.источник
Ну, вы можете попробовать это:
Начните с загрузки эскиза мерцания в Arduino, затем подключите его к ESP8266 следующим образом: TX-TX и RX-RX.
Теперь откройте Serial Monitor и отправьте AT команду и посмотрите, отвечает ли она. Если это так, то вы можете управлять им, используя Arduino, подключив его к TX-RX и RX-TX.
PS: не забудьте установить конец строки в последовательном мониторе на новую строку или возврат каретки.
Используйте этот код для подключения к ESP8266:
Поскольку аппаратный последовательный интерфейс будет занят при подключении к компьютеру, вам придется использовать другой последовательный интерфейс для связи с вашим ESP8266. В этом случае Software Serial пригодится.
источник
Кто-нибудь знает, возможно ли то, что я пытаюсь сделать? Возможно, я сделал это с 2 ардуино, где один симулировал ESP8266 (ожидание заказа ebay).
И если это так, что я делаю не так?
То, что вы делаете, неправильно на большинстве уровней, но я думаю, что вы разбираетесь в большинстве.
Идея состоит в том, чтобы реализовать этого маленького парня: логический сдвиг уровня, он избавит вас от многих неприятностей позже.
На вашей «СХЕМЕ ПРОВОДКИ 1» вы используете аппаратный последовательный порт arduino для прямой связи с устройством, как если бы оно было подключено через кабель TTL или кабель FTDI.
Это означает, что устройство arduino теоретически считывало бы с аппаратного обеспечения и во время разговора ESP8266, если у вас есть другой кабель Arduino или TTL, попробуйте подключить его к шлюзу 2 и 3 на «главном» arduino, и вы должны получить аналогичное устройство. результат как для вашего примера результат 2. Так как вы бы таким образом прокси через Arduino. Если нет, то это место для отладки.
Кроме того, я мог бы только порекомендовать вам инвестировать в TTL 3,3 В или преобразователь логического уровня. Когда я получил свой кабель все работало из коробки.
источник
У меня тоже было много проблем. В моем случае проблемы практически решаются путем переключения с SoftwareSerial на AltSoftSerial . Казалось, что на Uno стандартная библиотека последовательных программ не работает для меня. После переключения я начал получать результаты обратно в первый раз. (Я также использовал сдвиг уровня и внешний источник питания на 3,3 В)
И под почти решенным я имею в виду - я все еще время от времени получаю тарабарщину на терминале. Так что даже AltSoftSerial не идеальное решение. Я использовал ESP-07 со скоростью передачи данных 115200 бит / с.
источник
Мы обнаружили, что многие проблемы с последовательной интеграцией программного обеспечения ESP - Arduino Uno связаны с несовместимой скоростью передачи данных. Мы создали это краткое руководство (включая библиотеку Github), которое вы можете протестировать и посмотреть, решит ли оно эти проблемы. http://www.instructables.com/id/Simple-ESP8266-Arduino-Uno-Software-Serial-Integra/
источник
Вот несколько советов по использованию модуля ESP8266.
Не используйте серийный номер программного обеспечения, так как он ненадежен, особенно при высоких скоростях передачи.
Всегда подключайте модуль ESP к компьютеру и проверяйте все AT-команды перед взаимодействием с Arduino, чтобы убедиться, что вы работаете в правильном направлении
Сделайте плату адаптера питания для совместимости модуля ESP с источником питания Arduino 5v
Также проверьте эту ссылку для более подробной информации
источник