2015-06-09 2 views
0

Я подключен Arduino с ESP8266 сESP8266 и Ардуино Сопряжение

Arduino контактом 2, соединенным с Тм Arduino штифта ЭСПА 3, подключенного к Rx ЭСПА через делитель напряжения Ардуина GND подключен к GND Arduino 3v3 ESP, подключенному к CH_PD ЭСПА

Я питание ESP8266 с помощью регулятора напряжения 1117

Когда я первоначально купил ESp8266 он работает, но теперь она показывает бесконечный поток значений для мусора ...

На платформе Arduino программируется с помощью следующего кода

#include <SoftwareSerial.h> 

SoftwareSerial esp8266(2,3); // make RX Arduino line is pin 2, make TX Arduino line is pin 3. 
          // This means that you need to connect the TX line from the esp to the Arduino's pin 2 
          // and the RX line from the esp to the Arduino's pin 3 
void setup() 
{ 
    Serial.begin(9600); 
    esp8266.begin(9600); // your esp's baud rate might be different 
} 

void loop() 
{ 
    if(esp8266.available()) // check if the esp is sending a message 
    { 
    while(esp8266.available()) 
    { 
     // The esp has data so display its output to the serial window 
     char c = esp8266.read(); // read the next character. 
     Serial.write(c); 
    } 
    } 



    if(Serial.available()) 
    { 
    // the following delay is required because otherwise the arduino will read the first letter of the command but not the rest 
    // In other words without the delay if you use AT+RST, for example, the Arduino will read the letter A send it, then read the rest and send it 
    // but we want to send everything at the same time. 
    delay(1000); 

    String command=""; 

    while(Serial.available()) // read the command character by character 
    { 
     // read one character 
     command+=(char)Serial.read(); 
    } 
    esp8266.println(command); // send the read character to the esp8266 
    } 
} 
+2

Вы уверены, что это 'C'? –

+0

Разве вы не знаете? Язык Arduino - это всего лишь набор функций C/C++, которые можно вызывать из вашего кода ... Посетите: http://www.arduino.cc/en/Main/FAQ для получения дополнительной информации – AngryBird

+3

@AngryBird Вокруг здесь нет языка под названием «C/C++». Arduino больше C++, чем C. – unwind

ответ

1

Ваш esp8266 вероятно работает на 56000 или 115200 бод, а не 9600. Это может привести мусор для чтения.

Если 115200 он не будет работать на обычных цифровых выводах с программным обеспечением.

Если старая плата, то вы можете попытаться изменить к 56000: -

esp8266.begin(56000); // your esp's baud rate might be different 

В противном случае вам нужно будет подключить esp8266 до порта HardwareSerial

Serial.begin(115200); 
1

код, кажется, хорошо, но вы должны проверить, что скорость вашего ESP8266 может быть иной. Оформить заказ следующее:

  1. Проверьте скорость передачи данных ESP8266 один, как только вы его, объявить тот же скорость передачи данных в вашу Arduino.

  2. заказа вашего Arduino модель, некоторые клоны, такие как нано один диск различных напряжений, чем оригинал,

0

Загрузить код и проверить серийный монитор для какого-либо ответа с определенной скоростью передачи данных, если вы не получил никакого ответа на конкретную скорость передачи, а затем изменил скорость передачи до получения ответа. Для нескольких модулей скорость передачи по умолчанию будет 57600. Убедитесь в соответствии с ним.

Вы можете использовать приведенный выше код и изменить скорость передачи в бодах esp8266.begin(56000); изменить скорость передачи в бодах как 9600,56000,112500 и т. Д. И проверить серийный монитор со скоростью 9600 бод.

Serial.begin(9600); 

вы получите ответ на монитор, а также попытаться восстановить модуль Wi-Fi, подключив к 3.3v RST штифтом в течение 1-2 секунд. Надеюсь, это поможет.

+0

При необходимости добавьте пример кода – Maddy

0

В качестве дополнения к другим ответам попробуйте заменить делитель напряжения на логический преобразователь уровня, поскольку esp имеет логику 3.3v и логику arduino 5v.

0

Проверьте логическое значение, так как esp8266 работает со скоростью передачи данных 3.3 В и последовательным портом. В некоторых случаях ESP8266 может иметь внутренние неисправности и производить значения мусора.Что касается ESP8266, то проверка here Это очень помогло мне

Смежные вопросы