Как получить дату и время в ардуину из новой функции AT+CIPSNTPTIME? ESP8266

alansbor
Offline
Зарегистрирован: 03.07.2017
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

Куда копать ???

 

 

Logik
Offline
Зарегистрирован: 05.08.2014

alansbor пишет:
длина провода  25 см.

Коротковат у Вас провод, мой длинее.

alansbor
Offline
Зарегистрирован: 03.07.2017

От ардуины до esp-01 25см.

b707
Offline
Зарегистрирован: 26.05.2017

alansbor пишет:
От ардуины до esp-01 25см.

какая ардуина? С ESP, случаем, не по SoftwareSerial соединяетесь?

alansbor
Offline
Зарегистрирован: 03.07.2017

Uno. Так и есть - по Softserial.

b707
Offline
Зарегистрирован: 26.05.2017

alansbor пишет:
Uno. Так и есть - по Softserial.

Softserial на 115200 не работает, поэтому вы и получаете ерунду от модуля. Поставьте скорость 9600 или 19200

Logik
Offline
Зарегистрирован: 05.08.2014

b707 пишет:
Softserial на 115200 не работает

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

alansbor
Offline
Зарегистрирован: 03.07.2017

Отказаться то не сложно, только в пользу чего ?
Как данные с модуля в ардуины слить по запросу ?

b707
Offline
Зарегистрирован: 26.05.2017

Разных альтернатив Softserial не одна и не две... AltSoftserial,  NeoSoftserial.... и тд

Logik
Offline
Зарегистрирован: 05.08.2014

и главная - хардовый uart. Который у Вас, судя по коменту "для отладки". Разумей его использовать для работы. А для отладки, если так уж чешется, то софтовый сойдет. А немного покумекав esp и отладку в паралель можна подключить, не так чтоб решение блеск, но как на время отладки годное.

alansbor
Offline
Зарегистрирован: 03.07.2017

Хардовый 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

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x69
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x74
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x0d
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x0a
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x57
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x61
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x69
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x74
Произошла ошибка при загрузке скетча
 

Logik пишет:

и главная - хардовый uart. Который у Вас, судя по коменту "для отладки". Разумей его использовать для работы. А для отладки, если так уж чешется, то софтовый сойдет. А немного покумекав esp и отладку в паралель можна подключить, не так чтоб решение блеск, но как на время отладки годное.

Logik
Offline
Зарегистрирован: 05.08.2014

Соболезную по поводу ошибки загрузки скетча. Очень жаль , что Вы так и не сочли возможным сделать это "А немного покумекав" ;) Например глянуть на схему Уны, найти там RN4B, бодумать чего бы он там и что бы это значило... Ну да ладно, умерла - так умерла )))

alansbor
Offline
Зарегистрирован: 03.07.2017

Logik пишет:

Соболезную по поводу ошибки загрузки скетча. Очень жаль , что Вы так и не сочли возможным сделать это "А немного покумекав" ;) Например глянуть на схему Уны, найти там RN4B, бодумать чего бы он там и что бы это значило... Ну да ладно, умерла - так умерла )))

Rn4b ? Оторвать связь с usb ? Зачем ?

Logik
Offline
Зарегистрирован: 05.08.2014

Я гдето писал оторвать?

Ладненько, читайте тут  http://arduino.ru/forum/apparatnye-voprosy/gsm-modem-a6-v-rezhime-tcp в стартовом сообщении. Модуль другой но проблема таже. Разумеется обмен одновременно не пойдет, но без перекрытия по времени вполне работает.

ПС. прием называется "монтажное И". Ну не совсем в чистом варианте, но по его идеологии.

alansbor
Offline
Зарегистрирован: 03.07.2017

Как показала практика ларчик просто открывался. Работа с Softwareserial 

// Set ESP8266 baud rate to 9600. You only need to do this once per device
set software serial baud to 115200;
send "AT+UART_DEF=9600,8,1,0,0";
set software serial baud to 9600;
// From now on, communicate with your device at 9600 baud.

Выставил на esp-01 скорость с записью во флэш. И заработал обмен как миленький.
 

+CIPSNTPTIME:Sat Jul 08 18:55:20 2017

OK

За сим позвольте откланяться. Вопрос решен.

P.S. Есть у меня одна хорошая знакомая космонавт Света (реальный космонавт  и человек она хороший) и подход очень похож на ваш. И сколько бы раз я не говорил про бритву окамма "«Не следует множить сущее без необходимости»" она ее не "слышала". Зачем "монтажное И" если можно проще, просто вникнуть нужно глубже.
b707
Offline
Зарегистрирован: 26.05.2017

alansbor пишет:

Как показала практика ларчик просто открывался. Работа с Softwareserial

Ларчик открывался еще проще... - достаточно было всего лишь внимательно прочитать ответ #5/

Logik
Offline
Зарегистрирован: 05.08.2014

alansbor пишет:

// Set ESP8266 baud rate to 9600. ..
P.S. Есть у меня одна хорошая знакомая космонавт Света (реальный космонавт  и человек она хороший) и подход очень похож на ваш. И сколько бы раз я не говорил про бритву окамма "«Не следует множить сущее без необходимости»" она ее не "слышала". Зачем "монтажное И" если можно проще, просто вникнуть нужно глубже.

Понемаете, то, что я Вам советую - лично выстраданый опыт, в простой форме окончательной. Лучший вариант, без зигзагов поиска и забреданий в тупики. Вы думаете я не пробовал понижать скорость?! Ха! 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 активной работы. Читайте тему там все описано.

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

ПС. И скажите, как всетаки странно, пытаешся человеку сказать просто чего делать чтоб хороше было, а нет! Он обязательно хочет повторить твои же ошибки ))