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

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

KVadik пишет:

Я сперва подключаю к компу через USB<->UART переходник, заливаю нужную мне прошивку, проверяю, а потом уже к контроллеру подключаю.

Переходник на работе остался. Завтра попробую. Я правильно понимаю что Вы подключаете RX-TX, TX-RX и земли. Питание 3,3 берем внешнее (земли опять же связываем), перемычка VCC-CH_PD и всё можно цеплять к компьютеру?

KVadik
KVadik аватар
Offline
Зарегистрирован: 15.06.2014

Penni пишет:

Переходник на работе остался. Завтра попробую. Я правильно понимаю что Вы подключаете RX-TX, TX-RX и земли. Питание 3,3 берем внешнее (земли опять же связываем), перемычка VCC-CH_PD и всё можно цеплять к компьютеру?

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

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

KVadik пишет:

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

Как праз так сейчас пробую, но пока тоже безрезультатно, так же синий светодиод вспыхивает и всё. Залил скетч blink

Я в описании нашел, что синий светодиод на ESP это индикация TX, т.е. он вспыхивает когда ESP выдает данные в сериал. Раз я вижу, что он вспыхивает после моей команды, вообще после любых данных, значит мне пытаются что-то ответить? Или всё же он RX обозначает. Мигают они практически синхронно с TX на ардуино.

MikSer
Offline
Зарегистрирован: 27.01.2012

У меня сперва тоже ничего не получилось, как сказали выше USB <-> UART Вам в руки и по шагам. Сперва услышать эхо ответ AT -> OK, потом AT+RST -> и т.д. по шагам. У меня например на других скоростях по SoftSerial все глохло на AT+RST, поставил прошивку http://esp8266.ru/esp8266-atv20-sdk094/ и на 115200 стало все четко работать но на хардсериале, как только меняю скорость порта (AT+IPR=9600) и переставляю на софтсериал на (AT+RST) снова зависание. Так же изменил в файле HardwareSerial.cpp размер буфера #define SERIAL_BUFFER_SIZE на 256 байт.

Кстати кто замерял скорость отправки байта по UDP? У меня вышло 115 - 114 мсек. А сбор данных с сенсора 5 мсек. Как бы увеличить скорость передачи? Думаю нужно будет отказаться от AT комманд? Или может есть изыскания по скорострельности прошивок?

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

MikSer пишет:

Кстати кто замерял скорость отправки байта по UDP? У меня вышло 115 - 114 мсек.?

У меня пакет из 32-байтов по UDP отправляется за 50-100 мсек., точнее не мерял.

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Так и не получилось победить. Подключал через USB-RS232 PL2303, внешнее питание 3,3. Если пускать по стандартной схеме то на любой скорости выдаёт 00 (Hex) при включении. Если притянуть GPIO0 к земле то выдаёт некую последовательность, но на любой скорости она невнятная. Подцепил осциллограф и по стартовым битам определил скорость 76800. На этой скорости при передёргивании питания в терминал выдаётся последовательность вида C0 3A C3 55 C4 E4 55 55 55 .... 55 C0. Повторяемость только на этой скорости, на других последовательность всё время произвольная. Вот не пойму что за ерунда, модули палёные или я что-то не понимаю. Ни на какие команды не реагирует.

Должны еще два модуля ESP-12 подкинуть подскажите CH_DP GPIO0 GPIO15 подтягивать через резисторы или в этих модулях напрямую можно? Если "с завода" прошьют например NodeMCU мне ж терминал на АТ ничего не овтетит? Надо будет набирать что-то вроде node.chipid()?

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

бывает надо RST к + подтянуть обязательно, но у меня и так работает.. Чип селект на +..

buka
buka аватар
Offline
Зарегистрирован: 07.06.2012

Все правильно. GPIO0 на земле и модуль предлагает Вам залить прошивку. Что там китайцы залили фиг его знает. Лейте либо AT либо Node.

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

CH_DP и RST притянуты к +. При притягивании GPIO0 хоть в терминал и сыпется что-то, но ни один прошивальщик не видет плату, залить не могу. В том же XTCOM нельяз 76800 выставить. В общем непонятно.

Спасибо всем за помощь, ещё немного потрепыхаюсь, да буду ждать ESP-12 надеюсь там всё будет как в статьях, подключил и всё заработало :)

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

Ещё питание проверте, електролит поможет, если питалово плохое..

buka
buka аватар
Offline
Зарегистрирован: 07.06.2012

https://github.com/nodemcu/nodemcu-flasher этим пробовали?

buka
buka аватар
Offline
Зарегистрирован: 07.06.2012

COM port правильно выбираете? Скорость не надо выбирать он автоматом цепляет.

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Питание беру с БП компьютера. Конденсатор пробовал правда небольшой на 220 микрофарад.

Именно этот прошивальщик не пробовал, завтра на работе попробую, модули домой не взял. Спасибо!

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

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

У меня тоже самое с ESP-01, глючит и все. Причем странно как-то, может работать не долго, потом опять глюки. Пробовал разные прошивки и отдельное питание не помогает. Сейчас так же жду ESP-12, самому интересно проверить)

buka
buka аватар
Offline
Зарегистрирован: 07.06.2012

Смотря какие глюки. Там SDK  с ошибками. Ну а прошивки на этом SDK  собраны. Пока SDK  не починят или не допилят, как эти ошибки обходить, нормальной работы не будет.

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

Глюки типа не работает пока питание не подергаешь) Да и вообще постоянные зависания, я даже пробовал nodemcu прошивку, у меня еле-еле пример с веб-сервером заработал. Около 30-40 секунд страничка в бразуере открывалась. Это у всех так или мне китайцы глючную плату подсунули?

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

Нормально на есп работает веб морда -у меня на прошивке,написанной на Си все отлично, тормоза тоже могут быть из-за плохого питания так же и из-за кривого nodemcu

buka
buka аватар
Offline
Зарегистрирован: 07.06.2012

Тормоза могут быть, если подключаешь модуль к роутеру. Подключайся напрямую к модулю и тормозов не будет, скорее всего)  

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

Вот еще один вариант платы для монтировнания ESP-07,12 и т.д. появился на aliexpress.

Заказал себе на пробу.

http://ru.aliexpress.com/item/-/32273534748.html

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

Всем добрый день.

Нет так давно, помнится где-то на 3 странице, я поднимал вопрос про подключение модуля ESP 07 версии. в итоге был написан работающий скетч:

#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.concat(readChar);
            goto iniReading;
        }
    }
    goto iniReading;
    endReading:
    readingWiFi = false;
    ///здесь парсинг сообщения и последующие действия
    Serial.println(WiFiMessage);
    if(WiFiMessage=="116101115116")
    {
       sendMSG(id,"answer of test",false); 
    }
}


/*функция отправки сообщения 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);
}

Имелось два таких модуля и оба они удачно были использованы.

На волне этого успеха хаказал такие же модули у тогоже продавца.

Но вот только они не реагируют как должно.

При подключении их с arduino в списках wifi сетей появляются новые сети.

Но при заливке скетча, который кстати говорит что подключение к прописанной сети осуществлено, в таблице DHCP на роутере не появляется, и сеть которая видна в списке wifi сетей не исчезает.

Т.е. получается что модуль не по факту не переходит в нужный режим?!

В чем может быть дело: другая версия прошивки на модуле? Или может скорость другую необходимо выбирать? Может кто-нибудь сталкивался с подобным. 

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

NEGr пишет:

Нет так давно, помнится где-то на 3 странице, я поднимал вопрос про подключение модуля ESP 07 версии. в итоге был написан работающий скетч:

const String id="t01"; //id устройства

int hardReset = 6; //пин arduino, на котором висит ch_pd

Но при заливке скетча, который кстати говорит что подключение к прописанной сети осуществлено, в таблице DHCP на роутере не появляется, и сеть которая видна в списке wifi сетей не исчезает.

Я бы проверил - не изменился ли ID устройства, и еще не увидел - каким местом садится GPIO0 на землю для заливки прошивки в скетче. CH_PD - это просто включение модуля.

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

Скорость не та....  Подключитесь через адаптер компорта этой программой, найдите правильную скорость, а дальше сами разберётесь http://homes-smart.ru/upload/ESP8266/ESP8266_Config.rar

И почитайте-позаливайте http://homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi/sverkhde...

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Вобщем у всех эти модули глючат из-за глючности SDK. Не ждите от них стабильной работы как от Arduino - кода там кривого на порядок больше, пока его добрые люди полностью не перепишут. Радуйтесь что оно вообще иногда работает.

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

NeiroN пишет:

Вобщем у всех эти модули глючат из-за глючности SDK.

Да при чем тут SDK, если оно "из-коробки" не рабочее? Надо допаять одно, другое, третье... Кто-то говорит "можно сажать выводы прямо на землю и питание", кто-то говорит "надо через резистор", а у третьих "все и так работает с висящими в воздухе выводами"... Схемотехнику надо бы сначала как-то причесать. Скорость 78600 - это вообще песня: я понимаю - индусы-ораклисты, они по-жизни такие укуренные, но тут-то кто и для чего такую скорость забубенил?

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

Ну если научится правельно готовить прошивку, то вполне все рабочее, не смотря на глюки SDK. Чем больше я вникаю в SDK, тем меньше глюков в моей прошивке получается :) Сейчас это вполне полноценная прошивка с кучей возможностей.

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

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

MaksMS пишет:

Ну если научится правельно готовить прошивку, то вполне все рабочее,

Так до прошивки, хорошей или плохой, дело не доходит! Вчера даже ман к миникому начал читать и все равно не нашел - как там выставить нужную скорость порта, чтобы получить хоть какой-то отклик. esptool.py - тоже как-то странно работает, т.е. коннекта к плате не получается...

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

trembo пишет:

Скорость не та....  Подключитесь через адаптер компорта этой программой, найдите правильную скорость, а дальше сами разберётесь http://homes-smart.ru/upload/ESP8266/ESP8266_Config.rar

И почитайте-позаливайте http://homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi/sverkhdeshevyj-wi-fi-modul-esp8266

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

Однако с отправкой сообщений на web-сервер проблемма. Далее подробнее:

Собрал скетч:

#define SSID "SmartHome"            //имя сети
#define PASS "12345678" //пароль
#define DST_IP "192.168.0.10" //ip web сервера
char character;
String ip = "";
int hardReset = 6;            //пин arduino, на котором весит ch_pd
unsigned int readChar;        //переменная для посимвольного чтения сообщения
String WiFiMessage="";        //принимаемое сообщение
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);
}
void loop()
{
  Serial.println("Send AT+CWMODE=1");
  Serial1.println("AT+CWMODE=1");
  Serial1.flush();
  delay(1000); 
  if (Serial1.find("OK")){Serial.println("answer OK");}else{Serial.println("answer no found OK");}
  Serial.println("send AT+CWJAP");  
  String cmd="AT+CWJAP=\"";
  cmd+=SSID;
  cmd+="\",\"";
  cmd+=PASS;
  cmd+="\"";  
  Serial1.println(cmd);
  Serial1.flush();
  delay(1000); 
  if (Serial1.find("OK")){Serial.println("answer OK");}else{Serial.println("answer no found OK");}
  Serial.println("send AT+CIPMODE=0");
  Serial1.println("AT+CIPMODE=0");
  Serial1.flush();
  delay(1000);
  if (Serial1.find("OK")){Serial.println("answer OK");}else{Serial.println("answer no found OK");}
  Serial.println("send AT+CIPMUX=1");
  Serial1.println("AT+CIPMUX=1");
  Serial1.flush();
  delay(1000);
  if (Serial1.find("OK")){Serial.println("answer OK");}else{Serial.println("answer no found OK");}
  Serial.println("Send AT+CIPSERVER=1,80");  
  Serial1.println("AT+CIPSERVER=1,80");  
  Serial1.flush();
  delay(1000);
  if (Serial1.find("OK")){Serial.println("answer OK");}else{Serial.println("answer no found OK");}
  Serial.println("Send AT+CIPSTO=120");    
  Serial1.println("AT+CIPSTO=120");  
  Serial1.flush();
  delay(1000);  
  if (Serial1.find("OK")){Serial.println("answer OK");}else{Serial.println("answer no found OK");}
  Serial.println("Send AT+CIPSTART=1"); 
  cmd = "AT+CIPSTART=1,\"TCP\",\"";
  cmd += DST_IP;
  cmd += "\",80";
  Serial1.println(cmd);
  Serial1.flush();
  delay(4000);   
  if (Serial1.find("OK")){Serial.println("answer OK");}else{Serial.println("answer no found OK");}
  String msg= "GET /ajax/arduino_read.php?act=new_w&id=";
    msg+= "xx01";
    msg+= "&val=";
    msg+= "test";
    msg+= " HTTP/1.1\r\nHost: ";
    msg+= DST_IP;
    msg+=  ":80\r\n\r\n";
    Serial1.print("AT+CIPSEND=1,");
    Serial1.println(msg.length());
    if (Serial1.find(">"))
    {
        Serial.println("Send MSG");
        Serial1.print(msg);
        Serial1.flush();
    }
  delay(4000); 
  
  
    while(Serial1.available()) 
    {
        character=Serial1.read();
        WiFiMessage.concat(character);
    }  
     Serial.println(WiFiMessage);

delay(1000000);
  
}

запускаю его по очереди на устройствах с wifi модулями из первой и второй, купленной мной партий.

результат отработки на обоих одинаковый:

При просмотре логов на web servere видим следующую картину:

получается второй не понимает на какой хост ему стучаться.

Прошика на модулях из воторой пратии явно поменялась, но версию ее я посмотреть не могу- выводит крякозябры(впрочем как и на модулях из первой партии). Прошивку явно причесали: изменились многие ответы на AT команды. Как пример AT+CIFSR теперь выводит помимо IP еще и MAC адрес устройства.

Может у кого есть мысли на этот счет. Возможно как-то поменялись AT  команды?

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

Я вообще-то прошил от MaksMS , http://homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi/62-bespr...

там компорт после прошивки исчезает, от слова совсем .....

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

trembo пишет:

Я вообще-то прошил от MaksMS , http://homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi/62-besprovodnoj-datchik-na-baze-esp8266-dlya-servisa-narodmon-ru

там компорт после прошивки исчезает, от слова совсем .....

Я говорю про исходную китайскую прошивку. Чтобы мне перепрошить нужно еще переходник доставать)

Да и на многих устройствах все равно потребуется сторонний контролер(

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

NEGr пишет:

Да и на многих устройствах все равно потребуется сторонний контролер(

Зачем ?

 

Да, UART в моей прошивке не используется, зато можно эти gpio использовать в других целях

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

MaksMS пишет:

NEGr пишет:

Да и на многих устройствах все равно потребуется сторонний контролер(

Зачем ?

 

Да, UART в моей прошивке не используется, зато можно эти gpio использовать в других целях

Я сейчас перевожу все свои устройства с NRF24 на wifi. Вот пример одного из этих устройств:

#define movePin 7 ///пин датчика движения
#define ledPin 5 ///управляющий пин мосфета
#define MIN_LIGHT 0
#define MAX_LIGHT 255
#include <SPI.h>
#include "RF24.h"
RF24 radio(2, 3);
int pwmLevel=0; ///значение яркости света для автоматики
int pwmLevelRB=0; ///значение яркости света для радиоканала и кнопки
int Svalue = 0;///значение яркости для будильника
String effect_flag="0";//значение эффекта
static unsigned long time_fade;
int i=1;
bool flag = 0;

bool flag_radio = 0;
const uint64_t pipes[2] = {0xF0F0F0F000LL, 0xF0F0F0F0FFLL};
const String id="lh02";
///функция отправки при включении устройства инфу о себе
void start()
{
  char msgs[32]="";
  String msg="";
  msg = "act=new_w&id="+id+"&val=ligth";
  msg.toCharArray(msgs,32);
  radio.stopListening();
  radio.write(msgs, 32); //и отправляем их в Arduino №2
  radio.startListening();
  delay(100);
}

void setup() 
{
    Serial.begin(9600);
    radio.begin();  
    radio.setAutoAck(false);
    radio.setDataRate(RF24_250KBPS); // Скорость передачи
    radio.setChannel(100); // Номер канала от 0 до 127
    radio.setRetries(15,15); // Кол-во попыток и время между попытками
    radio.openWritingPipe(pipes[0]);  // Открываем канал передачи
    radio.openReadingPipe(1, pipes[1]); // Открываем один из 6-ти каналов приема
    radio.startListening(); // Начинаем слушать эфир  
    pinMode(ledPin, OUTPUT);  
    digitalWrite(movePin, LOW);
    delay(1000);
    start();      
}

void loop()
{
    if(radio.available())
    {
        char data[32] = "";
        radio.read(&data, 32); //принимает пакет с Arduino №1 
        String in_id=  "";
        String command= "";
        String val=    "";
        int pos=0;
        for(int i=0;i<sizeof(data);i++)
        {  
            if(data[i]!='_')
            {
                in_id=in_id+data[i];
                pos++;
            }    
            else
            {
                break;
            }
        }
        if(in_id==id)
        {
			for(int i=pos+1;i<=sizeof(data);i++)
			{
				if(data[i]!='_')
				{
					command=command+data[i];
					pos++;
				}
				else
				{
					break;
				}
			}   
			for(int i=pos+2;i<=sizeof(data);i++)
			{
				if(data[i]!=NULL)
				{
					val=val+data[i];
				}
				else
				{
					break;
				}
			}         
            if(command=="ligth")
            {
                if(val.toInt()>0){flag_radio=1;}else{flag_radio=0;}
                pwmLevelRB=val.toInt();
            } 
            if(command=="eff")
            {
                effect_flag=val;
                flag_radio=1;
            }                
            if(command=="ping")
            {
                char msgs[32]="";
                String msg="";
                msg = "act=ping&id="+id+"&val=ans";
                msg.toCharArray(msgs,32);
                radio.stopListening();
                radio.write(msgs, 32); //и отправляем их в Arduino №2
                radio.startListening();             
            }  			
        } 
    }

	if(flag_radio==0)
	{  
		if(millis()>time_fade)
		{ 			
			if(digitalRead(movePin)) 
			{ 
				pwmLevel++;
				pwmLevel = constrain(pwmLevel, MIN_LIGHT, MAX_LIGHT);
				analogWrite(ledPin, pwmLevel); 
				time_fade=millis()+30;
				flag=1;
			}
			else 
			{ 
				pwmLevel--;
				pwmLevel = constrain(pwmLevel, MIN_LIGHT, MAX_LIGHT);
				analogWrite(ledPin, pwmLevel); 
				time_fade=millis()+30;
				flag=0;
			} 
			if(pwmLevel==255 && flag==1)
			{
				analogWrite(ledPin, 255); 
			}
			if(pwmLevel==0 && flag==0)
			{
				analogWrite(ledPin, 0); 
			}
	   }   
   }  
   else
   {
		if(effect_flag!="0")
		{
			if(effect_flag=="eff_a"){SunRise();}
		}   
		else
		{
			analogWrite(ledPin, pwmLevelRB);
		}
   } 
}

void SunRise()
{
    if(millis()>time_fade)
    {
        if(Svalue<256)
        {     
            Svalue=Svalue;
        }
        else
        {
            pwmLevelRB=255;
            effect_flag="0";
            Svalue=0;
        }
        analogWrite(ledPin, Svalue); 
        Svalue++;
        time_fade=millis()+100;
    }
}

Его тоже получится осуществить на вашей прошивке?

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

NEGr пишет:

получается второй не понимает на какой хост ему стучаться.

Не "на какой хост стучаться" - ведь на сервер запрос все-таки приходит, а в блоке http-переменных, отправляемых на сервер, пустая (или кривая) переменная Host.

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

Что-то очень запутано все...Сути не понял.

Реализовать конечно можно многое.в том числе и это,

PWM в данный момент у меня в прошивка не поддерживает, но его дописать можно. Обмена между другими esp так же нет.

У меня прошивка для более универсальных задач. А тут больше индивидуальное решение. Хотя может когда нибудь бОльшая гибкость настроек прошивки и не такое сможет реализовать..

Кстати, в планах сделать хаб для nrf24 устройств на базе esp..

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

Andrey_Y_Ostanovsky пишет:

NEGr пишет:

получается второй не понимает на какой хост ему стучаться.

Не "на какой хост стучаться" - ведь на сервер запрос все-таки приходит, а в блоке http-переменных, отправляемых на сервер, пустая (или кривая) переменная Host.

Но в таком случае почему этот код без проблем(во всех попытках) выполняется на устройствах с wifi модулями из первой партии?

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

MaksMS пишет:

Что-то очень запутано все...Сути не понял.

Реализовать конечно можно многое.в том числе и это,

PWM в данный момент у меня в прошивка не поддерживает, но его дописать можно. Обмена между другими esp так же нет.

У меня прошивка для более универсальных задач. А тут больше индивидуальное решение. Хотя может когда нибудь бОльшая гибкость настроек прошивки и не такое сможет реализовать..

Кстати, в планах сделать хаб для nrf24 устройств на базе esp..

В том то и дело что большенство устройств индивидуальны. Для температурных датчиков и управления релюшками я с большой вероятностью воспользуюсь вашей прошивкой. Но сейчас вопрос именно о других устройствах)

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

NEGr пишет:

Я говорю про исходную китайскую прошивку. Чтобы мне перепрошить нужно еще переходник доставать)

С Ардуины  процессор выдерните, проводки на Rx Tx - вот вам и переходник

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

trembo пишет:

NEGr пишет:

Я говорю про исходную китайскую прошивку. Чтобы мне перепрошить нужно еще переходник доставать)

С Ардуины  процессор выдерните, проводки на Rx Tx - вот вам и переходник

А можно поподробнее. А то много где пишут что можно прошить через arduino,но нигде не говорится как. У меня в наличии только arduino pro micro.

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

NEGr пишет:

Но в таком случае почему этот код без проблем(во всех попытках) выполняется на устройствах с wifi модулями из первой партии?

Рискну предположить, что либо участок памяти затирается другими программами, либо переменная содержит дополнительный мусор добавленный к имени хоста. Тут уже нужно смотреть вывод "tcpdump -s 1500 ..." и разбираться тем, кто софт пишет.

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

Andrey_Y_Ostanovsky пишет:

NEGr пишет:

Но в таком случае почему этот код без проблем(во всех попытках) выполняется на устройствах с wifi модулями из первой партии?

Рискну предположить, что либо участок памяти затирается другими программами, либо переменная содержит дополнительный мусор добавленный к имени хоста. Тут уже нужно смотреть вывод "tcpdump -s 1500 ..." и разбираться тем, кто софт пишет.

Получается разбираться надо с самим собой)

Попробую купить usb-uart переходник и прошить модули на предыдущую версию китайской прошивки.

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

Я уже писал про тот, через который прошиваю и запитываю. 

Первое, и самое главное- не FTDI.   Удобен тем, что на 3.3 и 5  Вольт переключатель , а не перемычку паять

http://arduino.ru/forum/apparatnye-voprosy/polzuet-li-kto-wifi-moduli-esp8266-podelites-vpechatleniyami?page=4#comment-93338

LincikG
Offline
Зарегистрирован: 15.01.2013

Привет MaksMS

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

Спосибо!!!

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

art100  прекращай пить сливовую наливку

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

art100 - стиль постов свеж, уникален и бесподобен ! "И неважно, о чем он пишет, важно КАК он пишет" [перефраз из КВН].

Sirocco
Offline
Зарегистрирован: 28.09.2013

Кто-нить подключал к ESP дисплей Nokia5110? 

vvadim
Offline
Зарегистрирован: 23.05.2012

Araris пишет:

art100 - стиль постов свеж, уникален и бесподобен ! "И неважно, о чем он пишет, важно КАК он пишет" [перефраз из КВН].

и ты тоже заценил....

art100
Offline
Зарегистрирован: 09.03.2014

vvadim пишет:

Araris пишет:

art100 - стиль постов свеж, уникален и бесподобен ! "И неважно, о чем он пишет, важно КАК он пишет" [перефраз из КВН].

и ты тоже заценил....

Что тоже термиты с выражовываниями понравились :) Подтер не в тему пост. Я наверно заброшу свои вафельки. Думаю витую пару везде восстановлю. Вчера в одну комнату восстановил. Жене телевизор из компьютера сделал. Дал в online выбор всего возможного IPTV. А ей лень мышкой водить выбирать. :(

фоточка в тему

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

NEGr пишет:

Andrey_Y_Ostanovsky пишет:

NEGr пишет:

Но в таком случае почему этот код без проблем(во всех попытках) выполняется на устройствах с wifi модулями из первой партии?

Рискну предположить, что либо участок памяти затирается другими программами, либо переменная содержит дополнительный мусор добавленный к имени хоста. Тут уже нужно смотреть вывод "tcpdump -s 1500 ..." и разбираться тем, кто софт пишет.

Получается разбираться надо с самим собой)

Попробую купить usb-uart переходник и прошить модули на предыдущую версию китайской прошивки.

Купил в итоге программатор.

Прошил модули на старую прошивку и вуаля- все заработало.

Попробую еще обновится на самую последнию и посмотреть как там будет работать.

Да в итоге рабочая прошивка оказалась - 0018000902

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

NEGr пишет:

Купил в итоге программатор. Прошил модули на старую прошивку и вуаля- все заработало.

А как Вы ее программатором шьете? Через какой софт?

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

Andrey_Y_Ostanovsky пишет:

NEGr пишет:

Купил в итоге программатор. Прошил модули на старую прошивку и вуаля- все заработало.

А как Вы ее программатором шьете? Через какой софт?

http://esp8266.ru/downloads/esp8266-utils/#wpfb-cat-3

я это прогой- ESP8266 Flasher

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

День добрый, в интернете много примеров, но во всех примерах RX TX подключаются на прямую к ардуино, в этой же теме встречал описание о необходимости понижения логики с 5v до 3.3v

На сколько это необходимо? Если необходимо, то как правильно подключить (пример со схемой если не сложно)?