Как получить дату и время в ардуину из новой функции AT+CIPSNTPTIME? ESP8266
- Войдите на сайт для отправки комментариев
Пнд, 03/07/2017 - 22:44
void setup() { Serial.begin(115200); // для отладки esp01.begin(115200); /* ESP8266 ESP-1 AT version:1.4.0.0(May 5 2017 16:10:59) SDK version:2.1.0(116b762) compile time:May 5 2017 16:37:48 */ Serial.println("Init"); esp01.println("AT"); // проверка, если модуль готов if (esp01.find("OK")){Serial.println("WiFi - Module is ready");} else {Serial.println("Wait.");} // Запрос на установку в модуле серверов времени esp01.println("AT+CIPSNTPCFG=1,3,\"cn.ntp.org.cn\",\"ntp.sjtu.edu.cn\",\"us.pool.ntp.org\""); // if (esp01.find("OK")){Serial.println("TIME SERVERS SET ");} else {Serial.println("Wait.NO SET TIME SERVERS");} delay(2000); // Получаем данные по дате с серверов esp01.println("AT+CIPSNTPTIME?"); Serial.println(esp01.readString()); }
Пробовал прочитать и по байтно и стокой. Каждый раз какая то абракадабра вылазит, только не дата и время.
длина провода 25 см.
Ответ по ману Релиза "ESP8266 AT Instruction Set"
2017.05 V2.1.0 Updated Section 3.2, Section 4.1 and Section 5.2.
должен быть
AT+CIPSNTPTIME? +CIPSNTPTIME:Mon Jul 03 21:40:27 2017 OK
Куда копать ???
Коротковат у Вас провод, мой длинее.
От ардуины до esp-01 25см.
какая ардуина? С ESP, случаем, не по SoftwareSerial соединяетесь?
Uno. Так и есть - по Softserial.
Softserial на 115200 не работает, поэтому вы и получаете ерунду от модуля. Поставьте скорость 9600 или 19200
Я бы скоре сказал, что Softserial вобще не работает. Висение внутри прерывания в течении всего времени приема байта работой назвать сложно. Не хотите гемора - от Softserial отказывайтесь, это не сложно на самом деле.
Отказаться то не сложно, только в пользу чего ?
Как данные с модуля в ардуины слить по запросу ?
Разных альтернатив Softserial не одна и не две... AltSoftserial, NeoSoftserial.... и тд
и главная - хардовый uart. Который у Вас, судя по коменту "для отладки". Разумей его использовать для работы. А для отладки, если так уж чешется, то софтовый сойдет. А немного покумекав esp и отладку в паралель можна подключить, не так чтоб решение блеск, но как на время отладки годное.
Хардовый uart при работе с usb на uno не будет работать.
Если его использовать не для работы с usb то можно и с хардовым работать. У меня не тот случай.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x49
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x6e
и главная - хардовый uart. Который у Вас, судя по коменту "для отладки". Разумей его использовать для работы. А для отладки, если так уж чешется, то софтовый сойдет. А немного покумекав esp и отладку в паралель можна подключить, не так чтоб решение блеск, но как на время отладки годное.
Соболезную по поводу ошибки загрузки скетча. Очень жаль , что Вы так и не сочли возможным сделать это "А немного покумекав" ;) Например глянуть на схему Уны, найти там RN4B, бодумать чего бы он там и что бы это значило... Ну да ладно, умерла - так умерла )))
Соболезную по поводу ошибки загрузки скетча. Очень жаль , что Вы так и не сочли возможным сделать это "А немного покумекав" ;) Например глянуть на схему Уны, найти там RN4B, бодумать чего бы он там и что бы это значило... Ну да ладно, умерла - так умерла )))
Rn4b ? Оторвать связь с usb ? Зачем ?
Я гдето писал оторвать?
Ладненько, читайте тут http://arduino.ru/forum/apparatnye-voprosy/gsm-modem-a6-v-rezhime-tcp в стартовом сообщении. Модуль другой но проблема таже. Разумеется обмен одновременно не пойдет, но без перекрытия по времени вполне работает.
ПС. прием называется "монтажное И". Ну не совсем в чистом варианте, но по его идеологии.
Как показала практика ларчик просто открывался. Работа с Softwareserial
Выставил на esp-01 скорость с записью во флэш. И заработал обмен как миленький.
За сим позвольте откланяться. Вопрос решен.
Как показала практика ларчик просто открывался. Работа с Softwareserial
Ларчик открывался еще проще... - достаточно было всего лишь внимательно прочитать ответ #5/
Понемаете, то, что я Вам советую - лично выстраданый опыт, в простой форме окончательной. Лучший вариант, без зигзагов поиска и забреданий в тупики. Вы думаете я не пробовал понижать скорость?! Ха! http://arduino.ru/forum/apparatnye-voprosy/gsm-a6-vopros-pro-ring#comment-277760 и цитата прямо оттуда.
Приехало и мне такое чудо. Вроде даже на АТ отвечает после доработок по опыту камрадов myxaz и novak. За что им спасиба, ибо на 115200 одни краказябы были. Код для старта так
01
#include <SoftwareSerial.h>
02
SoftwareSerial mySerial(2,3);
03
04
void
setup
()
05
{
06
Serial
.begin(9600);
07
mySerial.begin(9600);
08
09
10
};
И по иронии судьбы как раз именно 9600 ))) Но увы, это решение имеет непреодолимую проблему. Я с ней столкнулся позже, дней так через 6 активной работы. Читайте тему там все описано.
Конечно, если все что Вам требуется Вы получили и больше от модуля ничего не хотите - ОК. Но остерегайтесь глюков, они там уже есть ;)
ПС. И скажите, как всетаки странно, пытаешся человеку сказать просто чего делать чтоб хороше было, а нет! Он обязательно хочет повторить твои же ошибки ))