ESP8266 wifi gate

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: ESP8266 wifi gate

Сообщение Amarok » Чт май 25, 2017 11:41 am

А вот любопытность раздражающая нарисовалась - настройки после перезагрузки wifi gate слетают к такому виду:
Clipboard02.jpg
Clipboard02.jpg (32.07 КБ) 7708 просмотров
То есть знак равно после data (http://192.168.100.2/objects/?script=wifigate?data) "уезжает" в поле Serial data filter. Естественно, что после этого "переезда" Алиса перестаёт получать данные. Как лечить?
Ну и хотелка докучи: можно ввести в настройки гейта возможность указывать статический ip гейта и отображаемое имя при поиске в сети.
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: ESP8266 wifi gate

Сообщение Amarok » Сб май 27, 2017 11:04 am

Не понимаю; выполняем этот сценарий:

Код: Выделить всё

$cmd = "ping";
$url = "http://192.168.100.5/send?data=".$cmd;
getURL($url,0); 
И ничего не происходит, но если в мониторинге порта ввести эту команду, то она выполняется.
Кусочек кода обработки команд:
СпойлерПоказать

Код: Выделить всё

  //Блок обработки входящих команд
   if (Serial.available()) {
    char c=Serial.read();
    if (c == '\n' || c == ';' || c == '-')
        {
          Serial.println(inData);
          int commandProcessed=0;
          if (inData.equals("ping")) {
           digitalWrite(infoPin, 1);
           commandProcessed=1;            
          } 
          if (inData.equals("pong")) {
           digitalWrite(infoPin, 0);
           commandProcessed=1;            
          } 
          if (commandProcessed==0) {
//            Serial.print("Unknown command: ");
//            Serial.println(inData);
          }                  
          inData="";
          Serial.flush();
        } else {
          inData += (c);
        }    
  } 
 
Как жить?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: ESP8266 wifi gate

Сообщение Amarok » Сб май 27, 2017 3:21 pm

Алё...
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
batihor
Сообщения: 16
Зарегистрирован: Сб май 20, 2017 3:34 pm
Благодарил (а): 12 раз
Поблагодарили: 1 раз

Re: ESP8266 wifi gate

Сообщение batihor » Пн май 29, 2017 12:19 am

Как прописать что бы данные о температуре "tempSTR" на AMS ушли?

Сколько данных можно в Gate отправлять?
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: ESP8266 wifi gate

Сообщение Amarok » Пн май 29, 2017 6:25 am

batihor писал(а):Сколько данных можно в Gate отправлять?
Сколько угодно.
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: ESP8266 wifi gate

Сообщение xor » Вт май 30, 2017 1:07 am

Хе, воспользовался идеей Сергея. Железное подключение оставил, как описано. ЕСПешка работает на ЕСП бейсике https://www.esp8266basic.com/ (поддерживается от ЕСП-01 синей)
Что нравится - не надо компилировать, все правки кода - онлайн в браузере.

Сейчас тестирую на ошибки, но пока всё норм.
Сознательно отказался от веб-интерфейса для отладки (делается просто)
Вот весь код:
кодПоказать

Код: Выделить всё

cls
memclear
baudrate 115200
time.setup(3,0)
timer 360000,[tmrbranch] ' i'm alive
msgbranch [mybranch]     ' from mjd
serialbranch [serialin]       ' from uart
let n_try=0                       ' счетчик офлайна для ребута
print "ESP test v.0.2"
print ip()
print "ping srv " & ping("192.168.1.7")
gosub [iamalive]
wait

[mybranch]             ' передаем из мжд в УАРТ
test=""
MyReturnMsg = "ErrCmd"
toUART = msgget("cmd")
if len(toUART)>0 then
   serialprint toUART
   MyReturnMsg = "uart ok"
end if

'print "Done:"
print MyReturnMsg
msgreturn MyReturnMsg
wait

[tmrbranch]
 gosub [iamalive]  
wait

[iamalive]      ' скажем, что живы
  cls
  wprint "Timer: "  & time("hour:min:sec")
  p3$ = "Ram&s=OK&v=" & ramfree()
  p2$ = "esp"
  gosub [srvsend]
 return

[serialin]             ' что-то пришло из УАРТа, кинем в мжд
  serialinput zz$
  p3$ = trim(zz$)
  p2$ = "uart"
  gosub [srvsend]  
return

[srvsend]
  query$ = "192.168.1.7/objects/?script=myesp&p1=esp" & id() & "&p2=" & p2$ & "&c=" & p3$
  if wget(query$)=="" then   ' мжд 3 раза не ответил, перегрузимся
   n_try=n_try+1
   print "i'm offline " & n_try & " times..."
   if n_try>3 then 
     reboot
   end if
  else
    n_try=0 
  end if  
return 
Легко добавить команды управления/чтения пинами самой ЕСП, изменив часть кода [mybranch] :
кодПоказать

Код: Выделить всё

pinNo = val(msgget("pin"))
pinStatus = val(msgget("stat"))
pinAction = msgget("action")

if pinAction == "po" then  ' set pin on/off
   io(po,pinNo,pinStatus)
   MyReturnMsg = "good"
end if
if pinAction == "pi" then  ' read pin
   MyReturnMsg = io(pi,pinNo)
end if
if pinAction == "pwo" then ' PWM output
   io(pwo,pinNo,pinStatus)
   MyReturnMsg = "good"
end if
if pinAction == "pwi" then  ' Will place pwm input status of a pin
   MyReturnMsg = io(pwi,pinNo)
end if
if pinAction == "ai" then ' read analog
   MyReturnMsg = io(ai)
end if
вот примерный лог:
логПоказать

Код: Выделить всё

00:48:08 0.75000000 from esp8920510 p2=uart cmd=Get mod=5 adr=56 v=0 st=OK t=6299
00:48:08 0.03125000 to esp -><5/5/56///6299/>
00:48:06 0.43750000 from esp8920510 p2=uart cmd=Get mod=5 adr=92 v=49.60205 st=OK t=9867
00:48:05 0.51562500 to esp -><5/5/92///9867/>
00:48:02 0.67187500 from esp8920510 p2=uart cmd=Get mod=5 adr=88 v=11.0625 st=OK t=6527 // модуль ответил
00:48:02 0.10937500 to esp -><5/5/88///6527/>   //спросим у моего модуля 5=get с адресом 5 значение из регистра с адресом 88, 6527 идентификатор запроса
00:46:50 0.17187500 from esp8920510 p2=esp cmd=Ram mod= adr= v=13456 st=OK t=   //сообщение по таймеру, что есп жива
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: ESP8266 wifi gate

Сообщение Amarok » Вс июн 18, 2017 6:30 pm

Можно по подробнее? С картинками и видео, желательно
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: ESP8266 wifi gate

Сообщение xor » Вс июн 18, 2017 10:57 pm

avp8853
Сообщения: 52
Зарегистрирован: Пт июн 09, 2017 8:39 pm
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: ESP8266 wifi gate

Сообщение avp8853 » Ср июл 26, 2017 2:27 am

Amarok писал(а):А вот любопытность раздражающая нарисовалась - настройки после перезагрузки wifi gate слетают к такому виду:
Clipboard02.jpg
То есть знак равно после data (http://192.168.100.2/objects/?script=wifigate?data) "уезжает" в поле Serial data filter. Естественно, что после этого "переезда" Алиса перестаёт получать данные. Как лечить?
Ну и хотелка докучи: можно ввести в настройки гейта возможность указывать статический ip гейта и отображаемое имя при поиске в сети.
Лечится так
const int EEPROM_HTTP_SERVER=50+30;
const int EEPROM_DATA_FILTER=100+30;
const int EEPROM_BASE_URL=150+30;
const int EEPROM_SERIAL_RATE=200+30;
const int EEPROM_STRING_MAX=80;
avp8853
Сообщения: 52
Зарегистрирован: Пт июн 09, 2017 8:39 pm
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Re: ESP8266 wifi gate

Сообщение avp8853 » Ср июл 26, 2017 2:53 am

Ошибся так
const int EEPROM_HTTP_SERVER=50;
const int EEPROM_DATA_FILTER=100+30;
const int EEPROM_BASE_URL=150+30;
const int EEPROM_SERIAL_RATE=200+30;
const int EEPROM_STRING_MAX=80;
Ответить