как сделать связь Arduino с esp8266
Я пытаюсь установить связь между Arduino и ESP8266, но не могу отправить данные на esp8266. Однако я могу получать данные от esp8266.
Здесь, если мой код Arduino:
#include <SoftwareSerial.h>
SoftwareSerial ESPserial(0, 1); // RX | TX
void setup()
{
Serial.begin(115200); // communication with the host computer
// Start the software serial for communication with the ESP8266
ESPserial.begin(9600);
Serial.println("Enter 1 to turn led high & 2 to turn led low.");
}
// the loop function runs over and over again forever
void loop() {
// listen for communication from the ESP8266 and then write it to the serial monitor
if ( ESPserial.available() ) {
Serial.write( ESPserial.read() );
}
// listen for user input and send it to the ESP8266
if ( Serial.available() ) {
ESPserial.write( Serial.read() );
}
}
Вот код esp8266:
void setup()
{
Serial.begin(9600); // связь с хост-компьютером
// Запуск прогрмаммного последовательного порта для связи с ESP8266
// инициализируем цифровой вывод LED_BUILTIN как выход.
pinMode(LED_BUILTIN, OUTPUT);
}
// функция цикла запускается снова и снова навсегда
void loop() {
Serial.println("ESP -- Hello");
delay(1000);
// прослушивание пользовательского ввода и отправка его на ESP8266
if ( Serial.available() ) {
int ledState = Serial.parseInt();
if (ledState == 1) {
digitalWrite(LED_BUILTIN, HIGH); // включаем светодиод (HIGH - уровень напряжения)
Serial.println("ESP Led On\n");
}
if (ledState == 2) {
digitalWrite(LED_BUILTIN, LOW); // выключаем светодиод, понижая напряжение
Serial.println("ESP Led Off\n");
}
}
}
Как только я загружу оба скетча, я вижу, что терминал «ESP -- Hello» продолжает печатать с esp8266, но когда я ввожу 1 или 2, он не отправляется на esp8266, из-за чего я никогда не вижу «ESP». off", так что поправьте меня, ребята, какую ошибку я делаю.
@user889030, 👍0
Обсуждение1 ответ
Лучший ответ:
использование SoftSerial на аппаратном последовательном порту не работает на Arduino должным образом, так как иногда данные поступают, а иногда нет с добавлением мусора, поэтому использование цифровых контактов, других 2, & 3, кроме аппаратного серийного номера, решили проблему.
Возможно, вам следует уточнить, что использование SoftSerial на аппаратном последовательном порте не работает, выберите любые другие цифровые контакты, кроме аппаратных последовательных контактов., @MatsK
@MatsK спасибо, я обновил ответ, @user889030
- AT-команда не отвечает на последовательный монитор
- Отправка данных Arduino в MySQL с помощью phpMyAdmin и XAMPP на Windows10
- Arduino выводит значения мусора на serial monitor с ESP8266
- ошибка: espcomm_upload_mem failed при загрузке скетча
- фатальная ошибка ESP8266WiFi.h: Такого файла или каталога нет
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Получить данные с сайта с помощью ESP8266 с помощью AT-команд
- Захват изображений с OV7670 (без FIFO) с использованием Arduino Uno?
Никогда не используйте SoftwareSerial на контактах 0 и 1! И никогда не используйте контакты 0 и 1 *ни для чего*, если вы используете
Serial
для связи Arduino с ПК., @Majenko@Majenko хорошо, спасибо, тогда как я могу решить проблему этой связи на UNO, у меня есть только эти RX и TX, соединяющие их контакты 0,1, так что я должен попробовать тот же код на mega2560, @user889030
вы можете использовать SoftwareSerial на любой паре контактов. именно поэтому он называется «программным» серийным, @Juraj