Попробовал подключить ESP модуль к доп питанию и все-равно после отправки ответа на первый запрос модуль зависал. Изначально работал с модулем через библиотеку WiFi. Потом решил загрузить скетч, который делает прямые перенаправления между серийными портами и попробовать пописать ответы на запросы в ручную. Выяснил, что при отправке команды AT+CIPCLOSE модуль возвращает кракозябры и после этого виснет.
В итоге, я вообще написал свои методы для инициализации WiFi и обработки запросов без отправки команды AT+CIPCLOSE. Соединение и так закрывается автоматом, т.к. отправляю в заголовке Connection: close. Модуль теперь работает почти без зависаний. Только, если одновременно два запроса приходит, то может подвиснуть. Но я его периодически пингую командой AT, и, если он не отвечает, то перезазгружаю модуль и заново запускаю веб-сервер.
Модуль сейчас работает на питании от arduino nano.
Используется китайская Arduino UNO. Esp8266 питается от отдельного Uarta.
1)При использовании SoftwareSerial на пинах 2, 3 не отправляются и не приходят данные с esp8266.
ТОчнее, что то приходит - но явно мусор. При этом esp8266 никак не реагирует на команды - синий индикатор не загорается.
2)При использовании SoftwareSerial/HardwareSerial на пинах 0, 1 (Rx, Tx) данные отправляются и приходят. При этом питание arduino идет через USB кабель. При использовании внешнего питания (Usb разъем не задействован) на esp8266 постоянно горит синий индикатор, на команды не реагирует.
ПОясните мне, бесстолковому что не так я делаю?
Неужели нельзя задействовать пины 0, 1 при использовании SoftwareSerial/HardwareSerial при питании от внешнего источника?
Используется китайская Arduino UNO. Esp8266 питается от отдельного Uarta.
1)При использовании SoftwareSerial на пинах 2, 3 не отправляются и не приходят данные с esp8266.
ТОчнее, что то приходит - но явно мусор. При этом esp8266 никак не реагирует на команды - синий индикатор не загорается.
2)При использовании SoftwareSerial/HardwareSerial на пинах 0, 1 (Rx, Tx) данные отправляются и приходят. При этом питание arduino идет через USB кабель. При использовании внешнего питания (Usb разъем не задействован) на esp8266 постоянно горит синий индикатор, на команды не реагирует.
На какой скорости Esp8266 обменивается данными с Arduino ?
Вообще не понимаю как люди используют esp без внешнего питания.
Я когда подключил esp к Uart на 3.3v - у меня Uart после подключения к компьютеру работал пару секунд и отвалиывался (исчезал ком порт). После добавление конденсатора на 1000мкФ постабильней стало- но программы наподобие Termiteпозволяли работать с esp пару минут, как правило, но не всегда, после попытки отправить данные или при запросе найденных AP esp переставал отвечать на команды.
Проблема решалась переоткрытием порта. Подумал, что виною всему кривые руки программистов программ наподобие Termite. Однако ж нет. Например я несколько дней искал у себя в коде ошибки, приводящие к перезапуску Arduino, причем перезапуск мог произойти в любой момент, но чаще всего при отправке данных (esp как Server), пока случайно не забыл подключить esp к rx, tx Arduino и не увидел, что перезапуски все равно происходят (питание Arduino и esp по соседним usb портам). Нормального питания под рукой не было и я в порыве отчаяния подключил к esp еще один конденсатор на 1000мкФ ))
Если предположить, что для esp куплю нормальное отдельно питание - вопрос остается открытым с SoftwareSerial/HardwareSerial
Мне на 2-3 пинах тоже не удавалось поднять Software Serial. А вот на 8-9 работает нормально. К нему подключаю терминал для отладки. А к Hardware Serial подключаю ардуино. Оба порта запускаю на скорости 9600.
Пытаюсь освоить "лунное" програмирование. Модуль ESP-01, шит NodeMCU 0.9.5 build 20150213 powered by Lua 5.1.4. В общем пытается работать, светодиодом моргает, HTTP-сервер в режиме AP подымается, Hello шлет всем кто конектится, даже стабильно все. Но есть два вопроса:
1. имя сети с помощю wifi.ap.config не могу задать. Выполняется без ошибок команда
2. Светодиод через 750Ом подключен к GPIO2 и +3,3. Работает, моргает, ОК. То же самое но подключенно к GPIO2 и общему - при включении все время светит синий, плюет в порт какуюту хрень. Эта как жеж так? Кто знает. Питание на модуле 3,7В тока до 500мА.
При запуске конектится к WiFi, но затем пишет "Can not start TCP Server" (строка 095)
Далее отправляет успешно 1-2 сообщения (строка 035 SEND: YES) и все,после этого сообщения не проходят connection timeout (строка 061) SEND: NO (строка 037)
т.е. не срабатывает if(ESPSerial.find(">")) (строка 054) подскажите, что это может быть?
И почему не срабатывает if(ESPSerial.find("OK")) (строка 092)
Спасибо.
Кстати, есть разница между ESPSerial.println(msg);
и ESPSerial.print(msg);
в строке 056 ?
пока писал пост, на мониторе постоянно проскакивали сообщение об не успешной отправке... и тут внезапно 2 сообщения, что прошло успешно.
Получается не стабильность или с delay надо баловаться?
1. Зачем столько ESPSerial.flush(), оно и без них прекрасно отправляет.
2. AT+CIPCLOSE без номера соединения смысла не имеет. (AT+CIPCLOSE=id - close TCP or UDP connection. For multiply connection mode)
3. Зачем там AT+CIPMODE=0 ? Пишут даже, что "if you are in transparent data mode (AT+CIPMODE=0) and you try to use the variant of AT+CIPSEND which uses a length value, it won’t just fail or ignore it, it will actually reboot the module."
Далее отправляет успешно 1-2 сообщения (строка 035 SEND: YES) и все,после этого сообщения не проходят connection timeout (строка 061) SEND: NO (строка 037)
Попробуйте сделать по аналогии с тем, что я описывал в этом посте.
>>>т.е. не срабатывает if(ESPSerial.find(">")) (строка 054)
подскажите, что это может быть?
И почему не срабатывает if(ESPSerial.find("OK")) (строка 092)
Возможно, к тому поменту, когда программа ищет ожидаемые данные в порту, их еще нет.
И, кстати, если я правильно понимаю функцию find - после ее выполнения данные очищаются в порту, то есть, для одного байта с таймаутом на чтение прокатит - то при ожидании строки может не прокатить - например, "O" будет в буффере при первом обращении к
Спасибо, разобрался
В таком варианте работает постабильнее
1. ESPSerial.flush(); оставил только в sendMSG()
2. Убрал лишние АТ команды из connectWiFi()
3. в 1117 стояли электролиты на входе и выходе, добавил еще по 0.1 мкф шунтирующие.
3.1. зашунтировал по питанию 0.1 мкф на самом модуле, но потом убрал ибо не стабильно
Стабильно работает esp-01 от внешнего питания 5V 1A, уровни согласованы через китайский Logic Level Converter. Но засада в том, что надо подавать питание сначала на esp, а потом на ардуино иначе виснет esp'эха. Думаю диод надо поставить на питание, что бы 5V от ардуино не попадало на модуль, видать не хватает тока esp'эшке и виснет...
#define LED_PIN 13
#define mySSID "mySSID" // введите ваш SSID
#define myPASS "myPass" // введите ваш пароль
unsigned long tmr;
String transmit;
void setup() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.begin(9600);
Serial.setTimeout(500);
Serial1.begin(9600);
Serial.setTimeout(500);
// Модуль WiFi =========================================
Serial1.println("AT+RST"); // сброс и проверка, если модуль готов
tmr = millis();
while (tmr + 1000 > millis()) {
;
}
if(Serial1.find("ready")) { // 1. Модуль готов
Serial.println("WiFi - Module is ready");
tmr = millis();
while (tmr + 5000 > millis()) {
;
}
Serial1.println("AT+CWJAP?"); // Проверка подключения к сети WiFi
tmr = millis();
while (tmr + 1000 > millis()) {
;
}
if (Serial1.find("ERROR")) { // 1.1 Не подключен к WiFi
Serial.println("Not connected to WiFi");
// Подключаемся к WiFi
boolean conn = false;
for (int i = 0; i < 5; i++) {
if (connectWiFi()) {
conn = true;
Serial.print("Connected to: ");
Serial.println(mySSID);
break;
}
}
if (!conn){
Serial.print("Coudn't connect to: ");
Serial.println(mySSID);
} else {
tmr = millis();
while (tmr + 5000 > millis()) {
;
}
Serial1.println("AT+CIPMUX?");
tmr = millis();
while (tmr + 1000 > millis()) {
;
}
if (Serial1.find("+CIPMUX:0")) {
Serial.print("Multiple connection disabled");
} else {
Serial.print("Multiple connection was enabled. Disable it...");
Serial1.println("AT+CIPMUX=0");
Serial.print("Multiple connection disabled");
}
}
} else { // 1.2 Подключен к сети
Serial.print("Already connected to: ");
Serial.println(mySSID);
}
} else { // 2. Модуль не готов
Serial.println("Module dosn't respond. Please reset.");
}
}
void loop() {
if (Serial.available()) {
while (Serial.available()) {
char ch = Serial.read();
transmit += ch;
}
sendData(transmit, 2000, true);
transmit = "";
}
}
String sendData(String command, const int timeout, boolean debug) {
String response = "";
Serial1.print(command);
long int time = millis();
while( (time+timeout) > millis()) {
while(Serial1.available()) {
char c = Serial1.read();
response += c;
}
}
if(debug) {
Serial.print(response);
}
return response;
}
boolean connectWiFi()
{
Serial.println("Try connecting to WiFi");
String cmd = "AT+CWJAP=\"";
cmd += mySSID;
cmd += "\",\"";
cmd += myPASS;
cmd += "\"";
Serial1.println(cmd);
tmr = millis();
while (tmr + 2000 > millis()) {
;
}
if(Serial1.find("OK")) {
Serial.println("OK, Connected to WiFi.");
return true;
} else {
Serial.println("Can not connect to the WiFi.");
return false;
}
}
delay(2000); остановит проц впустую, а в вышеприведенную конструкцию можно вставить выполнение какого-то другого кода или процедуры, так планирую сделать поэтому сразу вставил.
Прикупил на али ESP-05 ( Почему - не спрашивайте, так получилось ))
Модуль завелся, правда пришлось делать питание через регулятор, просто через выход ардуины 3.3 вольта очень уж грелся.
Вопрос в следующем:
Как можно реализовать работу через SoftwareSerial с NTP ( серверами точного времени ) ?
Я с UDP да и по большому счету чайник, поэтому не знаю с какой стороны подступиться.
Есть примеры работы с NTP в ардуине через стандартные библиотеки ВайФай и Эзернет шилды, но как это реализовать в нашем случае через SowtwareSerial я не представляю.
UPD соединение с NTP-серваком я открываю, запрос ему посылаю, а вот как обратно UDP-пакет получить и его распарсить пока непонятно.
AT+CIPNTP=<offset from GMT> , to initialize the ntp, and start syncing the time - for example: AT+CIPNTP=2 to intialize it with GMT+2 offset.
AT+CIPNTP? - to get the current time.
, правда перепрошить ESP-05 Вам будет сложнее, чем другие исполнения.
передача (сырых) данных между двумя модулями ESP8266 возможноли это ?
интересует возможен ли режим работы у данных модулей как у модуля NRF24
передающий модуль должен ПОСТОЯННО передавать в эфир данные без всяких приемных устройств,
тобиш тупая передача без всяких клиентов и серверов
может есть прошивки которые позволяют это реализоать?
режим точки доступа с вещанием ssid не предлагать
-----------------------
требуется для работы в режиме генератора вч на 2.4ггц для настройки фидерной системы
сначала думал использовать NRF24 но у них оказалась слишком малая выходная мощьность (возможно только у маих экземпляров ) примерно 20мвт а мне надо не менее 80
AT+CIPNTP=<offset from GMT> , to initialize the ntp, and start syncing the time - for example: AT+CIPNTP=2 to intialize it with GMT+2 offset.
AT+CIPNTP? - to get the current time.
, правда перепрошить ESP-05 Вам будет сложнее, чем другие исполнения.
А ESP-05 вообще шьются ?
Хотя у меня там есть RST, но не знаю насколько это поможет.
Можно написать простейшую отсылалку пакетов UDP в эфир и возможно будет что-то передавать, но есть сомнения....Т.к. wi-fi все же не будет запущен и TCP тут вроде как не работает..
А NRF24 существуют кстати варианты с усилителем.
Прошить модули без выведеного GPIO0 нельзя, но можно попробовать подпаятся к нему..
передающий модуль должен ПОСТОЯННО передавать в эфир данные без всяких приемных устройств,
тобиш тупая передача без всяких клиентов и серверов
может есть прошивки которые позволяют это реализоать?
режим точки доступа с вещанием ssid не предлагать
требуется для работы в режиме генератора вч на 2.4ггц для настройки фидерной системы
"без всяких клиентов и серверов" не бывает...
В качестве непроверенной мысли: 1. Поднять точку доступа; 2. Поднять UDP-клиент на 192.168.4.255; 3. Бродкастить с него UDP-пакеты.
В зависимости от левела это можно попробовать и на АТ-командах с Ардуино, и на NodeMCU+Lua, и прочими разными способами.
Можно написать простейшую отсылалку пакетов UDP в эфир и возможно будет что-то передавать, но есть сомнения....Т.к. wi-fi все же не будет запущен и TCP тут вроде как не работает..
А NRF24 существуют кстати варианты с усилителем.
Прошить модули без выведеного GPIO0 нельзя, но можно попробовать подпаятся к нему..
Ой не, это не про меня. Я и в стандартные дырки с трудом гребенку впаял, а в ту мелкотню которая SMD это для меня как параллельные миры ))
Получается что спустя некоторое время отправки сообщений модуль перестает это делать. Количество удачных посылок каждый раз разное. Время между отправкой менял на 1 минуту, 5 минут - результат один и тотже: перестает отправлять.
При этом сам модуль доступен - он пингуется, telnet ом получается в него войти. Если отправлять команды из сервера, то они отлично принимаются и обрабатываются. Получается стабильный канал связи, но только в одну строну.
Бьюсь уже несколько дней, поэтому и решил написать сюда.
Может у кого есть стабильно рабочий кусок скетча отправки сообщений или какие-нибудь мысли по этому поводу???
Не претендую на какую-либо оригинальность, у меня есть франкенштейно-подобный кусок кода, который шлет на thingspeak.com показания от моего температурного датчика.
Тестил несколько часов, потом ради интереса вместа USB-разьема воткнул крону в качестве питалова, она у меня исправно еще пару часов поработала, но т.к. крона была подубитая она как раз через пару часов и сдохла.
Не претендую на какую-либо оригинальность, у меня есть франкенштейно-подобный кусок кода, который шлет на thingspeak.com показания от моего температурного датчика.
Тестил несколько часов, потом ради интереса вместа USB-разьема воткнул крону в качестве питалова, она у меня исправно еще пару часов поработала, но т.к. крона была подубитая она как раз через пару часов и сдохла.
Версия ESP-05, прошивку сейчас не могу посмотреть, ночью как буду заниматься гляну. Но мне по большому счет пофик на прошивку у меня модуль не шьется без тонкого паяния (
Сдался вам этот сериал порт. Он жрет не померно рессурсов. Пока я у себя его не вырубил, были те же грабли. Без него уже месяц стабильно передает показания на "Народ". И скорость нужна 115200.
Сдался вам этот сериал порт. Он жрет не померно рессурсов. Пока я у себя его не вырубил, были те же грабли. Без него уже месяц стабильно передает показания на "Народ". И скорость нужна 115200.
Сударь имеет ввиду, что послать саму ардуину и заливать программу в сам модуль ?
Данные отправлять по назначению через аппаратный порт и этого достаточно.
Таки мои мозги чайника опять не догоняют.
Имеется ввиду воткнуть TX из ESP в Arduino RX а RX из ESP в Arduino TX, так ?
Да именно так. Только надо учесть что вначале по этим ТХ, RX в Ардуину заливается скетч, а модуль ESP подключаем после заливки. Ну и в самом скетче все команды отправляемые на модуль переписать на Serial.
А SoftSerial закоментировать. А там где печаталось "ОК" - зажечь внутренний светодиод Ардуины (pin13).
P.S. под рукой сейчас нет компилятора, чтобы набросать скетч.
Версия ESP-05, прошивку сейчас не могу посмотреть, ночью как буду заниматься гляну. Но мне по большому счет пофик на прошивку у меня модуль не шьется без тонкого паяния (
Попробовал передачу через ваш скетч, только в строку запроса включил еще название хоста:
Версия ESP-05, прошивку сейчас не могу посмотреть, ночью как буду заниматься гляну. Но мне по большому счет пофик на прошивку у меня модуль не шьется без тонкого паяния (
Попробовал передачу через ваш скетч, только в строку запроса включил еще название хоста:
Проблема использования модуля с ардуиной в том, что вы формируете сообщение в ОЗУ, а его в ардуино на базе 328 м/к всего 2 кб, т.е. Вычитаем буфер UART и другие переменные и получаем очень мало свободного ОЗУ... Небходимо данные читать из флешь, хотя и не всегда это реально..
А мне понравились гребёнки напаянные на StepDown. Класс! И прямо проводки от бредборда втыкать! Сам не догадался, всегда что-то припаивал...
Их же можно ещё и параллелить !!!!!!!!!!!
По теме безпроводностей. Их есть у меня. Шлейфы двухрядные куча от старых COM портов с материнок. Я их все выкидываю выкидавю, а они все не кончаются.
Завелась так
GPIO15 на землю
CH_PD к VCC через резистор
Внешнее питание 3.3В
Скорость 9600
GPIO15 на землю пробовал, а вот CH_PD через резистор (10К?) нет, спасибо за подсказку, попробую...
Попробовал подключить ESP модуль к доп питанию и все-равно после отправки ответа на первый запрос модуль зависал. Изначально работал с модулем через библиотеку WiFi. Потом решил загрузить скетч, который делает прямые перенаправления между серийными портами и попробовать пописать ответы на запросы в ручную. Выяснил, что при отправке команды AT+CIPCLOSE модуль возвращает кракозябры и после этого виснет.
В итоге, я вообще написал свои методы для инициализации WiFi и обработки запросов без отправки команды AT+CIPCLOSE. Соединение и так закрывается автоматом, т.к. отправляю в заголовке Connection: close. Модуль теперь работает почти без зависаний. Только, если одновременно два запроса приходит, то может подвиснуть. Но я его периодически пингую командой AT, и, если он не отвечает, то перезазгружаю модуль и заново запускаю веб-сервер.
Модуль сейчас работает на питании от arduino nano.
Добрый день.
Ситуация такая:
Используется китайская Arduino UNO. Esp8266 питается от отдельного Uarta.
Скорость 9600
Скорость 9600
Тогда все непонятно...
А если SoftwareSerial перевесить на другие пины (8,9 например) ?
И залить что-то вроде
void loop()
{
while ( Serial.available() ) { ESPSerial.write(Serial.read()); }
while ( ESPSerial.available() ) { Serial.write(ESPSerial.read()); }
}
и посмотреть из монитора порта ?
И вот еще из свежего полезного : http://esp8266.ru/esp8266-podkluchenie-obnovlenie-proshivki/
Спасибо, почитаю.
Ну можно поэксперементировать с номерами пинов.
Вроде подключал еще к каким-то двум пинам - результат тот-же был.
Почитал статью.
Вообще не понимаю как люди используют esp без внешнего питания.
Я когда подключил esp к Uart на 3.3v - у меня Uart после подключения к компьютеру работал пару секунд и отвалиывался (исчезал ком порт). После добавление конденсатора на 1000мкФ постабильней стало- но программы наподобие Termiteпозволяли работать с esp пару минут, как правило, но не всегда, после попытки отправить данные или при запросе найденных AP esp переставал отвечать на команды.
Проблема решалась переоткрытием порта. Подумал, что виною всему кривые руки программистов программ наподобие Termite. Однако ж нет. Например я несколько дней искал у себя в коде ошибки, приводящие к перезапуску Arduino, причем перезапуск мог произойти в любой момент, но чаще всего при отправке данных (esp как Server), пока случайно не забыл подключить esp к rx, tx Arduino и не увидел, что перезапуски все равно происходят (питание Arduino и esp по соседним usb портам). Нормального питания под рукой не было и я в порыве отчаяния подключил к esp еще один конденсатор на 1000мкФ ))
Если предположить, что для esp куплю нормальное отдельно питание - вопрос остается открытым с SoftwareSerial/HardwareSerial
Мне на 2-3 пинах тоже не удавалось поднять Software Serial. А вот на 8-9 работает нормально. К нему подключаю терминал для отладки. А к Hardware Serial подключаю ардуино. Оба порта запускаю на скорости 9600.
Пытаюсь освоить "лунное" програмирование. Модуль ESP-01, шит NodeMCU 0.9.5 build 20150213 powered by Lua 5.1.4. В общем пытается работать, светодиодом моргает, HTTP-сервер в режиме AP подымается, Hello шлет всем кто конектится, даже стабильно все. Но есть два вопроса:
1. имя сети с помощю wifi.ap.config не могу задать. Выполняется без ошибок команда
а сеть остается ESP_xxxxxx. Кто осилил это?
2. Светодиод через 750Ом подключен к GPIO2 и +3,3. Работает, моргает, ОК. То же самое но подключенно к GPIO2 и общему - при включении все время светит синий, плюет в порт какуюту хрень. Эта как жеж так? Кто знает. Питание на модуле 3,7В тока до 500мА.
Спасибо, попробую.
Пины 0, 1 работают нормально без подключения usb кабеля - то есть при питании от внешнего источника, не пробовали?
Помогите разобраться
ESP01
питание 3.3 (1117) брал +5в как от Arduino так и от ATX (5A)
Взял пример из этого топика:
При запуске конектится к WiFi, но затем пишет "Can not start TCP Server" (строка 095)
Далее отправляет успешно 1-2 сообщения (строка 035 SEND: YES) и все,после этого сообщения не проходят
connection timeout (строка 061)
SEND: NO (строка 037)
подскажите, что это может быть?
И почему не срабатывает if(ESPSerial.find("OK")) (строка 092)
Спасибо.
Кстати, есть разница между
ESPSerial.println(msg);
и
ESPSerial.print(msg);
в строке 056 ?
пока писал пост, на мониторе постоянно проскакивали сообщение об не успешной отправке... и тут внезапно 2 сообщения, что прошло успешно.
Получается не стабильность или с delay надо баловаться?
Версия прошивки: 0.9.2.4
1. Зачем столько ESPSerial.flush(), оно и без них прекрасно отправляет.
2. AT+CIPCLOSE без номера соединения смысла не имеет. (AT+CIPCLOSE=id - close TCP or UDP connection. For multiply connection mode)
3. Зачем там AT+CIPMODE=0 ? Пишут даже, что "if you are in transparent data mode (AT+CIPMODE=0) and you try to use the variant of AT+CIPSEND which uses a length value, it won’t just fail or ignore it, it will actually reboot the module."
Вот здесь пишут: http://robinsonia.com/wp/?p=360 , кстати, много полезного пишут.
Далее отправляет успешно 1-2 сообщения (строка 035 SEND: YES) и все,после этого сообщения не проходят
connection timeout (строка 061)
SEND: NO (строка 037)
Попробуйте сделать по аналогии с тем, что я описывал в этом посте.
Вот мой скетч, в котором по GET запросу http://[ESP_IP]/?get=temp возвращается температура:
>>>т.е. не срабатывает if(ESPSerial.find(">")) (строка 054)
подскажите, что это может быть?
И почему не срабатывает if(ESPSerial.find("OK")) (строка 092)
Возможно, к тому поменту, когда программа ищет ожидаемые данные в порту, их еще нет.
И, кстати, если я правильно понимаю функцию find - после ее выполнения данные очищаются в порту, то есть, для одного байта с таймаутом на чтение прокатит - то при ожидании строки может не прокатить - например, "O" будет в буффере при первом обращении к
find, а "K" во втором.
Спасибо, разобрался
В таком варианте работает постабильнее
1. ESPSerial.flush(); оставил только в sendMSG()
2. Убрал лишние АТ команды из connectWiFi()
3. в 1117 стояли электролиты на входе и выходе, добавил еще по 0.1 мкф шунтирующие.
3.1. зашунтировал по питанию 0.1 мкф на самом модуле, но потом убрал ибо не стабильно
скетч:
>>>Спасибо, разобрался
>>>В таком варианте работает постабильнее
А Вы не пробовали отправлять в цикле сообщения, например по 10 байт и например раз 100?
У меня после отправки суммарно (по разному) от 30 до 600 байт отваливался esp, но видимо из-зи проблем с питанием
Да, питание требует стабильности
Стабильно работает esp-01 от внешнего питания 5V 1A, уровни согласованы через китайский Logic Level Converter. Но засада в том, что надо подавать питание сначала на esp, а потом на ардуино иначе виснет esp'эха. Думаю диод надо поставить на питание, что бы 5V от ардуино не попадало на модуль, видать не хватает тока esp'эшке и виснет...
Простите, а чем конструкция
tmr = millis();
while (tmr + 2000 > millis()) { ; }
лучше delay(2000); ?
[ Я тоже не люблю delay(), но не до такой степени )) ]
delay(2000); остановит проц впустую, а в вышеприведенную конструкцию можно вставить выполнение какого-то другого кода или процедуры, так планирую сделать поэтому сразу вставил.
в вышеприведенную конструкцию можно вставить выполнение какого-то другого кода
Спасибо, я так и думал.
А обновить модуль, подключенный к ардуине, не меняя схему, как понимаю, нельзя?
Всем добрый день !
Прикупил на али ESP-05 ( Почему - не спрашивайте, так получилось ))
Модуль завелся, правда пришлось делать питание через регулятор, просто через выход ардуины 3.3 вольта очень уж грелся.
Вопрос в следующем:
Как можно реализовать работу через SoftwareSerial с NTP ( серверами точного времени ) ?
Я с UDP да и по большому счету чайник, поэтому не знаю с какой стороны подступиться.
Есть примеры работы с NTP в ардуине через стандартные библиотеки ВайФай и Эзернет шилды, но как это реализовать в нашем случае через SowtwareSerial я не представляю.
UPD соединение с NTP-серваком я открываю, запрос ему посылаю, а вот как обратно UDP-пакет получить и его распарсить пока непонятно.
В свежей АТ-прошивке появилась команда
AT+CIPNTP=<offset from GMT> , to initialize the ntp, and start syncing the time - for example: AT+CIPNTP=2 to intialize it with GMT+2 offset.
AT+CIPNTP? - to get the current time.
, правда перепрошить ESP-05 Вам будет сложнее, чем другие исполнения.
передача (сырых) данных между двумя модулями ESP8266 возможноли это ?
интересует возможен ли режим работы у данных модулей как у модуля NRF24
передающий модуль должен ПОСТОЯННО передавать в эфир данные без всяких приемных устройств,
тобиш тупая передача без всяких клиентов и серверов
может есть прошивки которые позволяют это реализоать?
режим точки доступа с вещанием ssid не предлагать
-----------------------
требуется для работы в режиме генератора вч на 2.4ггц для настройки фидерной системы
сначала думал использовать NRF24 но у них оказалась слишком малая выходная мощьность (возможно только у маих экземпляров ) примерно 20мвт а мне надо не менее 80
В свежей АТ-прошивке появилась команда
AT+CIPNTP=<offset from GMT> , to initialize the ntp, and start syncing the time - for example: AT+CIPNTP=2 to intialize it with GMT+2 offset.
AT+CIPNTP? - to get the current time.
, правда перепрошить ESP-05 Вам будет сложнее, чем другие исполнения.
А ESP-05 вообще шьются ?
Хотя у меня там есть RST, но не знаю насколько это поможет.
Можно написать простейшую отсылалку пакетов UDP в эфир и возможно будет что-то передавать, но есть сомнения....Т.к. wi-fi все же не будет запущен и TCP тут вроде как не работает..
А NRF24 существуют кстати варианты с усилителем.
Прошить модули без выведеного GPIO0 нельзя, но можно попробовать подпаятся к нему..
передающий модуль должен ПОСТОЯННО передавать в эфир данные без всяких приемных устройств,
тобиш тупая передача без всяких клиентов и серверов
может есть прошивки которые позволяют это реализоать?
режим точки доступа с вещанием ssid не предлагать
требуется для работы в режиме генератора вч на 2.4ггц для настройки фидерной системы
"без всяких клиентов и серверов" не бывает...
В качестве непроверенной мысли: 1. Поднять точку доступа; 2. Поднять UDP-клиент на 192.168.4.255; 3. Бродкастить с него UDP-пакеты.
В зависимости от левела это можно попробовать и на АТ-командах с Ардуино, и на NodeMCU+Lua, и прочими разными способами.
UPD: Упс, MaksMS опередил.. ))
так у меня nrf24L+
с внешними антеннами а поверметр выдает на них всего 18-22мвт
тоже мерило но на esp8266 показывает порядка 100мвт
, правда перепрошить ESP-05 Вам будет сложнее, чем другие исполнения.
Вот здесь http://www.esp8266.com/viewtopic.php?f=8&t=637&p=4774&hilit=UDP#p4774
дядька в предпоследнем посте сделал код такой же как я и )) С тем же результатом.
Не только должна быть внешняя антенна, но и усилитель - на плате видно еще одну микросхему дополнительную..
Можно написать простейшую отсылалку пакетов UDP в эфир и возможно будет что-то передавать, но есть сомнения....Т.к. wi-fi все же не будет запущен и TCP тут вроде как не работает..
А NRF24 существуют кстати варианты с усилителем.
Прошить модули без выведеного GPIO0 нельзя, но можно попробовать подпаятся к нему..
Ой не, это не про меня. Я и в стандартные дырки с трудом гребенку впаял, а в ту мелкотню которая SMD это для меня как параллельные миры ))
Не только должна быть внешняя антенна, но и усилитель - на плате видно еще одну микросхему дополнительную..
приду домой сфоткаю , выложу сюда
чтото не хочет меня на сайт пускать с домашнего компа ((.
----------------------
посмотрел ,на плате NRF24 два чипа , один из которых усилок.
народ а здесь на сайте нет одельной темы по NRF24 ?? чтото я не нашёл .
Всем добрый день.
Возникла неожиданная проблема( или когда речь идет о ESP8266, вернее говорить очередная).
И так. Вводные данные:
Модуль esp8266 07
Arduino pro micro
Питание для модуля отдельное( хотя пробывал питать и от arduino)
прошивка 0018000902
Проблемма с отправкой данных от модуля к серверу.
Пример скетча:
логи от arduino:
Логи с web сервера:
Получается что спустя некоторое время отправки сообщений модуль перестает это делать. Количество удачных посылок каждый раз разное. Время между отправкой менял на 1 минуту, 5 минут - результат один и тотже: перестает отправлять.
При этом сам модуль доступен - он пингуется, telnet ом получается в него войти. Если отправлять команды из сервера, то они отлично принимаются и обрабатываются. Получается стабильный канал связи, но только в одну строну.
Бьюсь уже несколько дней, поэтому и решил написать сюда.
Может у кого есть стабильно рабочий кусок скетча отправки сообщений или какие-нибудь мысли по этому поводу???
Не претендую на какую-либо оригинальность, у меня есть франкенштейно-подобный кусок кода, который шлет на thingspeak.com показания от моего температурного датчика.
Тестил несколько часов, потом ради интереса вместа USB-разьема воткнул крону в качестве питалова, она у меня исправно еще пару часов поработала, но т.к. крона была подубитая она как раз через пару часов и сдохла.
Могу выложить если интересно.
Не претендую на какую-либо оригинальность, у меня есть франкенштейно-подобный кусок кода, который шлет на thingspeak.com показания от моего температурного датчика.
Тестил несколько часов, потом ради интереса вместа USB-разьема воткнул крону в качестве питалова, она у меня исправно еще пару часов поработала, но т.к. крона была подубитая она как раз через пару часов и сдохла.
Могу выложить если интересно.
Выложи, если не сложно.
Могу выложить если интересно.
А какая версия модуля у тебя и какая версия прошивки???
Версия ESP-05, прошивку сейчас не могу посмотреть, ночью как буду заниматься гляну. Но мне по большому счет пофик на прошивку у меня модуль не шьется без тонкого паяния (
Код:
Сдался вам этот сериал порт. Он жрет не померно рессурсов. Пока я у себя его не вырубил, были те же грабли. Без него уже месяц стабильно передает показания на "Народ". И скорость нужна 115200.
Сдался вам этот сериал порт. Он жрет не померно рессурсов. Пока я у себя его не вырубил, были те же грабли. Без него уже месяц стабильно передает показания на "Народ". И скорость нужна 115200.
Сударь имеет ввиду, что послать саму ардуину и заливать программу в сам модуль ?
Сударь имеет ввиду, что послать саму ардуину и заливать программу в сам модуль ?
Нет, я имею ввиду, что в приведенном скетче можно обойтись без монитора.
Данные отправлять по назначению через аппаратный порт и этого достаточно.
Зачем нужен монитор да еще и на аппаратном порту Ардуино? Только для того чтобы прочитать на экране "ОК" или"Error"?
Так подключи светодиод и пусть моргает, а всю эту красоту с надписами - в помойку.
Данные отправлять по назначению через аппаратный порт и этого достаточно.
Таки мои мозги чайника опять не догоняют.
Имеется ввиду воткнуть TX из ESP в Arduino RX а RX из ESP в Arduino TX, так ?
Данные отправлять по назначению через аппаратный порт и этого достаточно.
Таки мои мозги чайника опять не догоняют.
Имеется ввиду воткнуть TX из ESP в Arduino RX а RX из ESP в Arduino TX, так ?
Да именно так. Только надо учесть что вначале по этим ТХ, RX в Ардуину заливается скетч, а модуль ESP подключаем после заливки. Ну и в самом скетче все команды отправляемые на модуль переписать на Serial.
А SoftSerial закоментировать. А там где печаталось "ОК" - зажечь внутренний светодиод Ардуины (pin13).
P.S. под рукой сейчас нет компилятора, чтобы набросать скетч.
Версия ESP-05, прошивку сейчас не могу посмотреть, ночью как буду заниматься гляну. Но мне по большому счет пофик на прошивку у меня модуль не шьется без тонкого паяния (
Попробовал передачу через ваш скетч, только в строку запроса включил еще название хоста:
Гонял всю ночь- удачная отправка происходит ровно через одну попытку.
с утра убрал указание хоста, на сервере перенаправил запросы без указания хоста на свой - пока все передается ровно.
Странно чем указание хоста так рушит отправку??!!
Версия ESP-05, прошивку сейчас не могу посмотреть, ночью как буду заниматься гляну. Но мне по большому счет пофик на прошивку у меня модуль не шьется без тонкого паяния (
Попробовал передачу через ваш скетч, только в строку запроса включил еще название хоста:
Гонял всю ночь- удачная отправка происходит ровно через одну попытку.
с утра убрал указание хоста, на сервере перенаправил запросы без указания хоста на свой - пока все передается ровно.
Странно чем указание хоста так рушит отправку??!!
Тоже проблема с нестабильной отправкой данных.
Думаю, проблема не в указании хоста в запросе - а в длине отправляемых даных.
Попробуйте просто в цикле поэксперементировать с длиной отправляемого пакета.
Например у меня - при цикличной отправке даже одного байта и даже с таймаутом в 300 мс не получается отправить даже 1кб.
Чем длинее пакет - тем скорее будут проблемы.
http://esp8266.ru/forum/threads/bag-v-proshivke-0-21-0-0.118/
Вот тут похожая проблема, правда на прием данных.
http://esp8266.ru/forum/threads/podderzhka-mqtt-v-nodemcu.72/
Вот тут про кривые библиотеки espconn.
Может быть, при использовании UDP таких проблем не будет, не знаю.
Проблема использования модуля с ардуиной в том, что вы формируете сообщение в ОЗУ, а его в ардуино на базе 328 м/к всего 2 кб, т.е. Вычитаем буфер UART и другие переменные и получаем очень мало свободного ОЗУ... Небходимо данные читать из флешь, хотя и не всегда это реально..