Попытка связаться с ESP8266
Добрый день, ребята, я пытаюсь заставить ESP8266 работать с Arduino Uno.
Вот проводка.
Когда я перехожу к последовательному монитору (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.
При попытке подключения просто пишет Инициализация устройства...
@user1234433222, 👍2
Обсуждение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
- Вопрос для новичка: когда что-то происходит, устанавливать сервопривод на определенные градусы.
- 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-команд
«*115200 бод*» и «Serial.begin(9600);». Что-то не совпадает. Также питание двигателя от Arduino никогда не является хорошей идеей., @gre_gor
Добрый день, приятель, мне удалось прошить прошивку, которая, я надеюсь, является последней, я выполнил команду AT, и она сказала «ОК», однако, когда я выполнил команду, которая позволяет вам видеть беспроводные сети, она говорит об ошибке. И как вы думаете, как я могу подключить двигатель? Я читал, что двигатель 5v, так что я думал, что это будет нормально?, @user1234433222
@ user1234433222 это еще один вопрос, @tony gil