Пользует ли кто WiFi-модули ESP8266 ? Поделитесь впечатлениями.

Araris
Offline
Зарегистрирован: 09.11.2012

Нет такой необходимости, отлично работает с логикой 5v.

gppsoft
Offline
Зарегистрирован: 13.10.2014

Araris пишет:

Нет такой необходимости, отлично работает с логикой 5v.

Т.е можно использовать эту шутку без согласовки уровней и подрубать напрямую?

MaksMS
Offline
Зарегистрирован: 11.03.2013

Я уже месяца 2 провожу эксперементы с esp и всякими железками, которые работают от 5 в и все нормально...

mcshel
Offline
Зарегистрирован: 17.10.2014

Я спалил после подключения 5v, внимание на корпус:

gppsoft
Offline
Зарегистрирован: 13.10.2014

mcshel пишет:

Я спалил после подключения 5v, внимание на корпус:

Запитал от +5 или уровнями убил?

mcshel
Offline
Зарегистрирован: 17.10.2014

Прошу прощения, именно запитал от 5v.

Araris
Offline
Зарегистрирован: 09.11.2012

gppsoft пишет:

Т.е можно использовать эту шутку без согласовки уровней и подрубать напрямую?

ДА. Питание - всегда 3,3 Вольта, логические уровни - 3,3 или 5 Вольт.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ingener.solovyev, в даташите ни о какой толерантности к 5 вольтам не говорится, и однозначно написано: -input max 3,6 вольта.  Значит всё, что выше 3,6 вольт -на ваш страх и риск :)

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

А потом, после таблички про 3.6 вольт читаем:

All digital IO pins are protected from over-voltage with a snap-back circuit connected between the pad and ground.
The snap back voltage is typically about 6V, and the holding voltage is 5.8V.
This provides protection from over-voltages and ESD.The output devices are also protected from reversed voltages with diodes.
art100
Offline
Зарегистрирован: 09.03.2014

gppsoft пишет:

Araris пишет:

Нет такой необходимости, отлично работает с логикой 5v.

Т.е можно использовать эту шутку без согласовки уровней и подрубать напрямую?

Вы где-нибудь тут видите какие-нибудь согласования каких-нибудь уровней?

 

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Чет не работает... Может направите?

/*
 *
 *	Make an Access Point
 *
 */
#include <SoftwareSerial.h>
#include <ESP8266_TCP.h>
SoftwareSerial wifiSerial(2, 3); // RX, TX

// ESP8266 Class
ESP8266_TCP wifi;

// Define SSID, Password and Channel that provide for Access Point
#define ssid         "grn105"
#define pass         "engineer"
#define channel      5

// Connect this pin to CH_PD pin on ESP8266
#define PIN_RESET    6	

void setup()
{
  delay(3000);
  
  // We use Serial1 to interface with ESP8266 
  // and use Serial to debugging
  Serial.begin(9600);
  wifiSerial.begin(115200);
  wifi.begin(&wifiSerial, &Serial, PIN_RESET);
  
   //If your board has only 1 serial port
   // or you didn't need to debugging, try this.
   //
   //Serial.begin(115200);
   //wifi.begin(&Serial, PIN_RESET);
   
  
  // Check that ESP8266 is available
  if(wifi.test()) 
  {
	// Open Access Point (WiFi Hotspot) 
    wifi.openAccessPoint(ssid, pass, channel);
  } 
  else 
  {
	// ESP8266 isn't available
    Serial.println("Check module connection and restart to try again..."); 
  }
}

void loop()
{

}

CH_PD подключил к пину 6, как написано в примере.

оборудование Nano и ESP8266 v1

Симптоматика: роутер не видит нового подключения, сериал (9600) основной к ПК не подключается.

Araris
Offline
Зарегистрирован: 09.11.2012

Как-то все запутано, библиотека мне неизвестная...

1. SoftwareSerial не поддерживает скорость 115200.

2. Вы уверены, что ESP8266 настроена на 115200 ?

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Araris пишет:

Как-то все запутано, библиотека мне неизвестная...

1. SoftwareSerial не поддерживает скорость 115200.

2. Вы уверены, что ESP8266 настроена на 115200 ?

 

Хз, это стандартный пример с библиотеки. Может быть вы мне более стабильную библиотеку предложите?

ХМ, а какая скорость должна быть?

Araris
Offline
Зарегистрирован: 09.11.2012

Библиотеками я не пользуюсь.

Скорость может быть от 9600 до 115200, определяется тыком/подбором.

Araris
Offline
Зарегистрирован: 09.11.2012

Неплохо  для начала подключить ESP8266 через переходник USB<->RX/TX (CH_PD перемычкой на +3,3В) и попробовать достучаться на него с консоли последовательного порта на разных скоростях.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Araris пишет:

Неплохо  для начала подключить ESP8266 через переходник USB<->RX/TX (CH_PD перемычкой на +3,3В) и попробовать достучаться на него с консоли последовательного порта на разных скоростях.

Это то ладно, но почему у меня COM порт, при подключении этого модуля к ардуино на пины 2,3, не хочет на компе открываться? Говорит устройство не подключено.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Araris пишет:

Библиотеками я не пользуюсь.

Скорость может быть от 9600 до 115200, определяется тыком/подбором.

А можете дать простой пример подключения (скетч) к существующей точке доступа, с выводом отчета в Serial порт.

Ну и на всякий случай распиновку, что куда подключить. Может я вообще все верх ногами делаю?

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013
ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

mcshel пишет:

Я спалил после подключения 5v, внимание на корпус:

 

Расскажите пожалуйста, как вы в итоге подключились? Пример скетча.

Araris
Offline
Зарегистрирован: 09.11.2012

ingener.solovyev пишет:

У меня подключено так:

https://cloud.mail.ru/public/45180a4b237e/IMG_20150129_163337.jpg

Питаете его от Нано, это неправильно.

Позвольте рекомендовать Вам :

1. Прочитать от начала посты этой темы.

2. Подключить ESP8266 через переходник USB<->RX/TX (CH_PD перемычкой на +3,3В) и попробовать достучаться на него с консоли последовательного порта на разных скоростях.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Araris пишет:

ingener.solovyev пишет:

У меня подключено так:

https://cloud.mail.ru/public/45180a4b237e/IMG_20150129_163337.jpg

Питаете его от Нано, это неправильно.

Позвольте рекомендовать Вам :

1. Прочитать от начала посты этой темы.

2. Подключить ESP8266 через переходник USB<->RX/TX (CH_PD перемычкой на +3,3В) и попробовать достучаться на него с консоли последовательного порта на разных скоростях.


Почему не правильно питать от нано?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

trembo пишет:

Для эстэтов....

"Эстету" еще надо что-то про питание модуля рассказать - сам он ни за что не прочитает... :)

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

ingener.solovyev пишет:

Чет не работает... Может направите?

/*
 *
 *	Make an Access Point

Симптоматика: роутер не видит нового подключения, сериал (9600) основной к ПК не подключается.

 

Этот скетч создает точку доступа на ESP6288, а не подключается к роутеру.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

nikolaki пишет:

ingener.solovyev пишет:

Чет не работает... Может направите?

/*
 *
 *	Make an Access Point

Симптоматика: роутер не видит нового подключения, сериал (9600) основной к ПК не подключается.

 

Этот скетч создает точку доступа на ESP6288, а не подключается к роутеру.


К сожалению точку доступа он так же создает.

NEGr
Offline
Зарегистрирован: 12.05.2014

ingener.solovyev пишет:

А можете дать простой пример подключения (скетч) к существующей точке доступа, с выводом отчета в Serial порт.

Ну и на всякий случай распиновку, что куда подключить. Может я вообще все верх ногами делаю?

#define SSID "xxx"            //им€ сети
#define PASS "vfhbyf11111990" //пароль
#define DST_IP "192.168.0.10" //ip web сервера
const String id="t01";        //id устройства
#define START_CHAR '!'        //начальный символ принимаемого сообщения
#define END_CHAR '$'          //конечный символ принимаесого сообщения
String WiFiMessage="";        //принимаемое сообщение
unsigned int readChar;        //переменная для посимвольного чтения сообщения
boolean readingWiFi;          //флаг чтения сообщения
String ip = "";               //переменна€ дл€ хранени€ ip устройства
char character;
int hardReset = 6;            //пин arduino, на котором весит ch_pd
boolean connected=false;      //флаг соединения WiFi 


void setup()
{
  pinMode(hardReset, OUTPUT);
  Serial.begin(9600);
  Serial.setTimeout(5000);
  Serial1.begin(9600);
  Serial1.setTimeout(5000);
  digitalWrite(hardReset, LOW);
  delay(100);
  digitalWrite(hardReset, HIGH);
  delay(5000);
  for(int i=0;i<5;i++)
  {
    if(connectWiFi())
    {
      connected = true;
      break;
    }
  }
  if (!connected){while(1); }
  delay(2000);
}

void loop()
{
    if (Serial1.available() > 0 && !readingWiFi)
    {
        if (Serial1.read() == START_CHAR)
        {
            WiFiReadData();
        }
    }  
}

void WiFiReadData()
{
    WiFiMessage = "";
    readingWiFi = true;
    iniReading:
    if (Serial1.available() > 0)
    {
        readChar = Serial1.read();
        if (readChar == END_CHAR)
        {
            goto endReading;
        }
        else
        {
            WiFiMessage+=char(readChar);
            goto iniReading;
        }
    }
    goto iniReading;
    endReading:
    readingWiFi = false;
    ///здесь парсинг сообщения и последующие действия
    Serial.println(WiFiMessage);
}

/*функция отправки сообщения web-серверу*/
boolean sendMSG(String modul_id,String value,boolean startMSG)
{   
    String cmd = "AT+CIPSTART=1,\"TCP\",\"";
    cmd += DST_IP;
    cmd += "\",80";
    //Serial.println("Connecting to WebServer");
    Serial1.println(cmd);
    Serial1.flush();
    delay(1000);   
    /*if(Serial1.find("OK"))        
    {
         Serial.print("OK, Connected to WebServer "); 
         Serial.println(DST_IP);
    }
    else
    {
        Serial.print("Can not connect to WebServer "); 
        Serial.println(DST_IP);            
    }*/  
    String msg= "GET /ajax/arduino_read.php?act=";
    if(startMSG)
    {  
        msg+="new_w&id=";
    }
    else
    {
        msg+="s_t_h&id=";      
    }
    msg+= modul_id;
    msg+= "&val=";
    msg+= value;
    msg+= " HTTP/1.1\r\nHost: ";
    msg+= DST_IP;
    msg+=  ":80\r\n\r\n";
    Serial1.print("AT+CIPSEND=1,");
    Serial1.println(msg.length());
    Serial.println("Senting MSG"); 
    if (Serial1.find(">"))
    {
        //Serial.print("MSG text: ");
        //Serial.println(msg);
        Serial1.print(msg);
        Serial1.flush();
    } 
    if(Serial1.find("SEND OK"))
    {
        return true;
    }
    else
    {
        return false;
    }
}

/*функци€ конекта к wifi сети*/
boolean connectWiFi()
{
    ip="";
    Serial1.println("AT+CWMODE=1");
    String cmd="AT+CWJAP=\"";
    cmd+=SSID;
    cmd+="\",\"";
    cmd+=PASS;
    cmd+="\"";
    Serial.print("Connecting to ");
    Serial.println(SSID);
    Serial1.println(cmd);
    delay(1000);
    if(Serial1.find("OK"))
    {
        Serial.println("OK, Connected to WiFi.");
        Serial1.println("AT+CIFSR");
        Serial1.flush();
        delay(1000);
        while(Serial1.available()) 
        {
            character = Serial1.read();
            if(character=='.' || character>='0' && character<='9')
                ip.concat(character);
        }
        if(ip != "")
        {
            Serial.print("IP Address of ESP8266: ");
            Serial.println(ip);
        }
        ///включаем режим приема/передачи
        Serial1.println("AT+CIPMODE=0");
        Serial1.println("AT+CIPMUX=1");
        Serial1.flush();
        delay(1000);        
        Serial.println("Starting TCP Server");
        Serial1.println("AT+CIPSERVER=1,80"); 
        Serial1.flush();
        delay(1000);
        if (Serial1.find("OK")){Serial.println("OK, Strart TCP Server");}else{Serial.println("Can not start TCP Server");}       
        Serial1.println("AT+CIPSTO=120");  
        Serial1.flush();
        delay(1000);  
        //отправл€ем информацию об устройстве при его старте
        String msg=  "temp_";
        msg+=  ip;        
        if(sendMSG(id,msg,true))
        {
            Serial.println("Startup info was send");
            return true;
        }
        else
        {
            Serial.println("Startup info was not send");
            return false;   
        }
    }
    else
    {
        Serial.println("Can not connect to the WiFi.");
        return false;
    }
}


String floatToString(float value, byte precision)
{
  int intVal = int(value);
  unsigned int frac;
  if(intVal >= 0)
  {
    frac = (value - intVal) * precision;
  }
  else 
  {
    frac = (intVal - value) * precision;
  }
  return String(intVal) + "." + String(frac);
}

Попробуй это скетч

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Говорит Serial1 не существует.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
sketch_jan30b.ino: In function 'void setup()':
sketch_jan30b:21: error: 'Serial1' was not declared in this scope
sketch_jan30b.ino: In function 'void loop()':
sketch_jan30b:41: error: 'Serial1' was not declared in this scope
sketch_jan30b.ino: In function 'void WiFiReadData()':
sketch_jan30b:55: error: 'Serial1' was not declared in this scope
sketch_jan30b.ino: In function 'boolean sendMSG(String, String, boolean)':
sketch_jan30b:82: error: 'Serial1' was not declared in this scope
sketch_jan30b.ino: In function 'boolean connectWiFi()':
sketch_jan30b:134: error: 'Serial1' was not declared in this scope

 

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

ingener.solovyev пишет:

Говорит Serial1 не существует.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"

 

 

У вас плата УНО .На ней всего один Serial .Скетч для ΜΕΓΑ

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

nikolaki пишет:

ingener.solovyev пишет:

Говорит Serial1 не существует.

  This report would have more information with
  "Show verbose output during compilation"
  enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"

 

 

У вас плата УНО .На ней всего один Serial .Скетч для ΜΕΓΑ

 

Ок. А есть заведомо рабочий пример для UNO или Nano?

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Araris вам уже описал последовательность действий  в посту №370 выше. Давал ссылку на этот сайт в посту №50 в начале темы.Попробуйте , не пренебрегайте.

Достучитесь до модуля из консоли а потом  пробуйте библиотеки и т.д.

Araris
Offline
Зарегистрирован: 09.11.2012

Таки да. ))

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

nikolaki пишет:

Araris вам уже описал последовательность действий  в посту №370 выше. Давал ссылку на этот сайт в посту №50 в начале темы.Попробуйте , не пренебрегайте.

Достучитесь до модуля из консоли а потом  пробуйте библиотеки и т.д.

Видимо что то делаю не так.

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

Вроде все по инструкции, а ни ответа не привета.

gppsoft
Offline
Зарегистрирован: 13.10.2014

Ребята. Так как же его подключить для настройки? Подключил исходя из этой инструкции. Но ничего не выходит, как только я соединяю питание с CH_PD сразу отваливается COM порт. Использую Arduino Uno c вынутым МК. Питаю модуль от  него же.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Питание нормальное 3.3в подайте..

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

MaksMS пишет:

Питание нормальное 3.3в подайте..

питание 3.3v

gppsoft
Offline
Зарегистрирован: 13.10.2014

Заработало на 9600

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Вобщем выяснил что у меня не так. Стабилизатор на 50mA. Заказал стабилизаторов на 1А, плюс платку на 5/3.3v для ардуинки, как в стать по ссылке. Жду, там попробую и отпишусь.

Axeront
Offline
Зарегистрирован: 03.02.2015

Привет all!

Заливаю через mega2560 прошивки от AT20SDK93-2014-12-02 до   AT21SDK95-01-24, пользуюсь XTCOM_UTIL.

Результат на экране один и тот же : ?~  

пины ESP8266 3шт в (+) 3.3V , 1 в землю(на моментпрошивки) все от ардуины. 

Прошивка 09.2.2 FirmWare работает работает нормально .

Подскаижи ALL , что не так?

 

Jon2013
Offline
Зарегистрирован: 18.12.2013

После прошивки 20 или 21 версии скорость всегда устанавливается 115200. Причем у 20 версии скорость не поменять, а у 21 только программно.

Axeront
Offline
Зарегистрирован: 03.02.2015

Спасибо!

После загрузки версии пробывал менять скорость программно ,  не работает , скорость порта тоже менял

Подозреваю , что порт на скорости 115200 не работает ?

Что еще может быть?

Jon2013
Offline
Зарегистрирован: 18.12.2013

Так все таки что происходит? Новая прошивка загружается? А что не работает тогда? Команда самоя простая AT+RST, проходит? Ответ ОК?

 

Axeront
Offline
Зарегистрирован: 03.02.2015

>AT

ОТВЕТ  y?

>AT+RST

ОТВЕТ 

y?+Z*]H?

После смены скорости такая же ситуапуия и срабочей 9.22

хз

Jon2013
Offline
Зарегистрирован: 18.12.2013

Очень похоже, что не правильно выставлена скорость работы с модулем. Скрость точно 115200?

Питание через отдельный блок строго 3.3в, ток не менее 100мА ? Кроме того по питанию очень нужен кондер на 100мкф. Я надеюсь БП это не дешевая зарядка от китайских братьев.

Переходник UART-USB  Не глючит? Короткий качественный кабель  USB - это тоже важно. Скорость приличная, это вам не стандартная 9600. 

Axeront
Offline
Зарегистрирован: 03.02.2015

хм, питанияе arduino через usb! А ESP8266 от ардуино.

Кабель короткий.

Ну прошивка 20..9.3 ОТ 15.12.2014 работает, блин! )) кстати как бы ее прочитать из модуля(чем?

А когда закачиваю 21...9.5 - кирдык!

У меня есть втророй модуль esp8266 (в комплекте 2 покупал), его я не трогал, там стоит 20...9.3,

он и коннектится быстро, но работает на 9600 ..  ESP  подключена на 18 19 пин(RX,TX)

Порт ВЫСТАВЛЯЮ НА 115200 вообще ничего не принимает и передает . Терминал молчит

 

Jon2013
Offline
Зарегистрирован: 18.12.2013

После закачки пришивки надо все проверить через конфигуратор, а уж потом подключать Ардуину.

В конфиге можно и версию увидеть и настройками отдуши поиграться.

Axeront
Offline
Зарегистрирован: 03.02.2015

Я закачиваюпрошивку через ардуино !!!!

КОНФИГУРАТОР?!  esp8266config???

Jon2013
Offline
Зарегистрирован: 18.12.2013

он самый.  А какя разница через что закачиваешь, для прошивки и конфигуратора нужен только конвертор USB-UART.  Я так понимаю, для закачки используешь саму плату от Ардуины с выдранным от туда микроконтроллером. Ну так и конфигуратор точно также можно подключить как и прошивальщик, через тот же виртуальный ком-порт.  

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Jon2013 пишет:

Переходник UART-USB  Не глючит? Короткий качественный кабель  USB - это тоже важно. Скорость приличная, это вам не стандартная 9600. 

Ещё не встречал Ардуины которая бы не работала на 500000 c  Megunolink или 921600 c Realterm - с нулями я не ошибся.

Axeront
Offline
Зарегистрирован: 03.02.2015

Получается порт на 115200 нек работает

Jon2013
Offline
Зарегистрирован: 18.12.2013

Питать от Ардуины ESP гиблое дело. Слабоват там источник на 3.3в.