Попытка связаться с ESP8266

Добрый день, ребята, я пытаюсь заставить ESP8266 работать с Arduino Uno.
Вот проводка.


wiringPicture

Когда я перехожу к последовательному монитору (115200 бод) и набираю: AT, ESP8266 не отвечает.

Я что-то упускаю?

У меня тоже есть серводвигатель подключен, работает нормально.

include "Arduino.h"
include "ESP8266.h"
include "dweet.h"
include "Servo.h"

define ESP8266_PIN_RX 10
define ESP8266_PIN_TX 11
define SERVO9G_PIN_SIG 2

const int servo9gRestPosition   = 20;
const int servo9gTargetPosition = 150;
const char *SSID     = "Wireless Network";
const char *PASSWORD = "wireless_password";

ESP8266 wifi(ESP8266_PIN_RX,ESP8266_PIN_TX);
Servo servo9g;

const int timeout = 10000;
char menuOption = 0;
long time0;

void setup() 
{
   Serial.begin(9600);
   while (!Serial); //ожидаем подключения.
   Serial.println("start");

   wifi.init(SSID, PASSWORD);
   servo9g.attach(SERVO9G_PIN_SIG);
   servo9g.write(servo9gRestPosition);
   delay(100);
   servo9g.detach();

}

void loop() 
{ 
   servo9g.attach(SERVO9G_PIN_SIG);       
   servo9g.write(servo9gTargetPosition);  
   delay(500);                            
   servo9g.write(servo9gRestPosition);    
   delay(500);                              
   servo9g.detach(); 
}

Я использую библиотеку ESP8266.
При попытке подключения просто пишет Инициализация устройства...

, 👍2

Обсуждение

«*115200 бод*» и «Serial.begin(9600);». Что-то не совпадает. Также питание двигателя от Arduino никогда не является хорошей идеей., @gre_gor

Добрый день, приятель, мне удалось прошить прошивку, которая, я надеюсь, является последней, я выполнил команду AT, и она сказала «ОК», однако, когда я выполнил команду, которая позволяет вам видеть беспроводные сети, она говорит об ошибке. И как вы думаете, как я могу подключить двигатель? Я читал, что двигатель 5v, так что я думал, что это будет нормально?, @user1234433222

@ user1234433222 это еще один вопрос, @tony gil


1 ответ


1

Если у вас нет каких-либо проектных ограничений, которые делают обязательным использование «голого» ESP8266, почему бы не использовать NodeMCU для связи с Arduino в режиме ведущий/ведомый через I2C?

#include <Wire.h>  
#define I2CAddressESPWifi 8

в setup()

Wire.begin(D1,D2); // SCL D1 SDA D2

затем вызовите из любого места внутри вашего loop() вызов этой функции

char readSlave(int x) { // отправить текущее время
  String xY = String(x);
  char c;
  int charArrayLength = xY.length()+1;
  char bufferChar[charArrayLength];
  Wire.beginTransmission(8);
  xY.toCharArray(bufferChar, charArrayLength);
  Wire.write(bufferChar);
  Wire.endTransmission();
  delay(10);
  Serial.print("wire sent: [");
  Serial.print(x);
  delay(50);//Подождите, пока Slave вычислит ответ.
  int counter = 0;
  char buffMe[32];
  int bytesIn = Wire.requestFrom(8,32);
  while (Wire.available()) {
    delay(2);
    buffMe[counter] = Wire.read();
    /*
    c = Wire.read();
    Serial.print(c);
    */
    counter++;
  }
  delay(10);
  Wire.endTransmission(); 
  delay(500);
  Serial.print("] bytesIn: [");
  Serial.print(bytesIn);
  Serial.print("] buffMe: [");
  Serial.print(buffMe);
  Serial.print("]");
  return buffMe;
}

и ваша Arduino будет ждать (настройка)

Serial.begin(9600);
// ведомое устройство прослушивает вызов от ведущего узла NodeMCU
Wire.begin(I2CAddressESPWifi);  // предопределено как `8` или любой другой адрес, который вы выберете
Wire.onReceive(receiveEvent);
Wire.onRequest(requestEvent);

и в конце вашего кода

void receiveEvent(int howMany) {
  if (howMany) {
    Serial.print("bytes[");
    Serial.print(howMany);
    Serial.print("] Received[");
    char charIn[howMany];
    int counter = 0;
    while (Wire.available()) {
      char c = Wire.read();
      charIn[counter] = c;
      //Серийный.принт(с);
      counter++;
    }
    delay(10);
    //сделать что-то по команде от мастера
  }
}
void requestEvent() {
  char bufferChar[20] = "slave answer string";  // автоматически заканчивающийся нулем лишний символ в конце
  Serial.println(bufferChar);
  Wire.write(bufferChar);
}
,

спасибо, я куплю один и посмотрим, как я пойду :), @user1234433222