ESP8266 (ESP-01) + Arduino nano + blynk

Привет. Нужна помощь. Я хочу подключить к плате Arduino NANO плату ESP8266 (ESP-01), и соединить эту конструкцию с сервером Blynk (желательно с локальным (он у меня есть)).

Вот мой код:

#define BLYNK_PRINT Serial

#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>

char auth[] = "gdfdfbdfbfbbbdbdbfbb123"; //lokal token

char ssid[] = "wifiname";
char pass[] = "password12345678";

#include <SoftwareSerial.h>
SoftwareSerial EspSerial(2, 3); // RX, TX

#define ESP8266_BAUD 9600

ESP8266 wifi(&EspSerial);

BlynkTimer timer;
WidgetLCD lcd(V1);

#define ledPin 13
#define photo A7
#define magswitch 8
int photovalue;
byte magvalue;
byte button;
int timerNo;

void photosensor()
{
  photovalue = analogRead(photo);
  photovalue = map(photovalue,0,1023,0,100);
  photovalue = constrain(photovalue,0,100);
  Blynk.virtualWrite (V0, photovalue);
}

void jumpersensor()
{
  magvalue = digitalRead(magswitch);
  Blynk.virtualWrite (V3, magvalue);
}

BLYNK_WRITE(V2)
{
 if(param.asInt()==1)
 {
  lcd.clear();
  lcd.print(2,0,"Security ON"); 
  timer.enable(timerNo); 
 }
 else
 {
  lcd.clear();
  lcd.print(2,0,"Security OFF"); 
  timer.disable(timerNo);
 }
}

void setup()
{
  Serial.begin(9600);
  delay(10);
  // Set ESP8266 baud rate
  EspSerial.begin(ESP8266_BAUD);
  delay(10);
  Blynk.begin(auth, wifi, ssid, pass);
  
  timer.setInterval(1000L, photosensor); 
  timerNo = timer.setInterval(1000L, jumpersensor); 
  timer.disable(timerNo);
  
  pinMode(magswitch,INPUT);
  pinMode(ledPin,OUTPUT);
  pinMode(photo,INPUT);
}
  
void loop()
{
  Blynk.run();
  timer.run();
}

Тут идет считывание фоторезистора и геркона, отправка параметров на смартфон в приложение Blynk.
С USB передачей (устройство было подключено к пк и был запущен файл …\arduino-1.8.5\libraries\Blynk\scripts\blynk-ser - c измененными параметрами для локального сервера.) всё работает как часы.

Подключал ESP8266 (ESP-01) по картинке

Вот сама схема в реальности:

••• синий светодиод загорается на секунду после включение.
Питания хватает, ибо я подключал даже компьютерный блок питания к плате питания, всё тоже самое.

Вот что пишет Монитор порта:

Я смотрел другие темы, но увы ничего не нашел. Буду благодарен за помощь.

==============================ENG - google translate===========================

Hey. Help is needed. I want to connect the ESP8266 (ESP-01) board to the Arduino NANO board, and connect this design to the Blynk server (preferably with a local one (I have it)).

The code above.

There is a reading of the photoresistor and reed switch, sending parameters to the smartphone in the application Blynk.
With USB transfer (the device was connected to the PC and the file was started … \ arduino-1.8.5 \ libraries \ Blynk \ scripts \ blynk-ser - with the changed parameters for the local server.) Everything works like clock.

••• The blue LED lights up for a second after turning on.
Power is enough, because I have even connected a computer power supply to the power board, all the same.

I looked at other topics, but I did not find anything. I will be grateful for the help.

And ESP responds to this baudrate, when connected directly to computer serial port?

Вечер добрый,
Скорость порта есп не правильная, поставь 115200 и надо бы проверить работает ли она, команда AT должна ответить ОК.
На пины питания лучше напрямую подпаять конденсатор, танталовый например иначе может глючить есп

Up to 33600 bps will work with soft serial.

Да, поменял. Картина изменилась. Конденсатора нет, завтра поставлю. Сейчас буду узнавать как АТ команду получить.

Вот что теперь высвечивается.

это хорошо но софтварный сериал глючит на таких скоростях, надо через АТ команды уменьшить скорость и работать например на тех же 9600, через ттл конвертор установить, если есть конечно

1 Like

Соединился. Первый раз была ошибка.

присваивает IP адрес.
Connected to WiFi

Но дальше пишет Invalid auth token или Login timeout, это видео из за скорости.
ттл конвертера нет, наверное придется приобрести.

Плата пока не определяется в приложении, горит красненькая точка возле иконки “плата”.

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

1 Like

Хорошо. Сейчас буду изучать эту тему (АТ команды), Токен проверил. На облачном сервере токен определяется, но красная точка не пропадает, в приложении пишется, что плата на связи, и потом сразу же плата не на связи. Через время по новой.
Спасибо большое за помощь. Буду разбираться.

Отличная работа. Всё заработало.
Небольшой ход действий после советов.

  1. Обновил SDK ESP
    • инструкция 1 (смотреть только на картинки) - http://support.thingplus.net/en/esp8266.html
    • инструкция 2 (смотреть на самый последний пост - жирные буквы) - https://bbs.espressif.com/viewtopic.php?t=2275
    • сам код обновления (я установил v2.2.1)- https://github.com/espressif/ESP8266_NONOS_SDK/releases
  2. Сменил скорость передачи ESP через Arduino IDE и плату Arduino NANO
    •картинка (кнопку не нужно ставить, лучше использовать перемычку, замыкать её нужно только при прошивке платы, для общения АТ командами она не нужна).

    • после того как подключили плату к ПК, открываем монитор порта и отправляем АТ. Скорость 115200 и NL & CR
    • отправляем команду AT+UART_DEF=9600,8,1,0,0 и в ответ должны получить ОК
    • можно еще сканировать эфир - команда AT+CWMODE_DEF=1 и за тем AT+CWLAP - в мониторе порта появится список активных WIFI точек.
  3. Была проблема с токеном. На облачном сервере всё ок, а локальный не хотел принимать токен.
    Нужно изменить одну строчку
    Было - Blynk.begin(auth, wifi, ssid, pass);
    Стало - Blynk.begin (auth, wifi, "wifiname", "password", "iplocalserver", port);
    Пример - Blynk.begin (auth, wifi, "FreeWifi", "0123456789", "000.000.000.000", 8080);
  4. После всех таких манипуляций, всё заработало. Всем удачных проектов. Спасибо за помощь.
2 Likes

а что это за библиотеки??
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
???
пробую повторить подключение
и не выходит------