ESP8266 wifi gate
Модератор: immortal
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: ESP8266 wifi gate
А вот любопытность раздражающая нарисовалась - настройки после перезагрузки wifi gate слетают к такому виду:
http://192.168.100.2/objects/?script=wifigate?data) "уезжает" в поле Serial data filter. Естественно, что после этого "переезда" Алиса перестаёт получать данные. Как лечить?
Ну и хотелка докучи: можно ввести в настройки гейта возможность указывать статический ip гейта и отображаемое имя при поиске в сети.
То есть знак равно после data (Ну и хотелка докучи: можно ввести в настройки гейта возможность указывать статический ip гейта и отображаемое имя при поиске в сети.
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: ESP8266 wifi gate
Не понимаю; выполняем этот сценарий:
И ничего не происходит, но если в мониторинге порта ввести эту команду, то она выполняется.
Кусочек кода обработки команд:
Как жить?
Код: Выделить всё
$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
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: ESP8266 wifi gate
Алё...
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
-
- Сообщения: 16
- Зарегистрирован: Сб май 20, 2017 3:34 pm
- Благодарил (а): 12 раз
- Поблагодарили: 1 раз
Re: ESP8266 wifi gate
Как прописать что бы данные о температуре "tempSTR" на AMS ушли?
Сколько данных можно в Gate отправлять?
Сколько данных можно в Gate отправлять?
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: ESP8266 wifi gate
Сколько угодно.batihor писал(а):Сколько данных можно в Gate отправлять?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
- xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 284 раза
- Поблагодарили: 629 раз
Re: ESP8266 wifi gate
Хе, воспользовался идеей Сергея. Железное подключение оставил, как описано. ЕСПешка работает на ЕСП бейсике https://www.esp8266basic.com/ (поддерживается от ЕСП-01 синей)
Что нравится - не надо компилировать, все правки кода - онлайн в браузере.
Сейчас тестирую на ошибки, но пока всё норм.
Сознательно отказался от веб-интерфейса для отладки (делается просто)
Вот весь код:
Легко добавить команды управления/чтения пинами самой ЕСП, изменив часть кода [mybranch] :
вот примерный лог:
Что нравится - не надо компилировать, все правки кода - онлайн в браузере.
Сейчас тестирую на ошибки, но пока всё норм.
Сознательно отказался от веб-интерфейса для отладки (делается просто)
Вот весь код:
кодПоказать
Код: Выделить всё
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
кодПоказать
Код: Выделить всё
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= //сообщение по таймеру, что есп жива
win10 connect https://connect.smartliving.ru/profile/303
- Amarok
- Сообщения: 1425
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: ESP8266 wifi gate
Можно по подробнее? С картинками и видео, желательно
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
- xor
- Сообщения: 2038
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 284 раза
- Поблагодарили: 629 раз
Re: ESP8266 wifi gate
Ответил тут viewtopic.php?f=6&t=4140&p=54678#p54678
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 52
- Зарегистрирован: Пт июн 09, 2017 8:39 pm
- Благодарил (а): 4 раза
- Поблагодарили: 1 раз
Re: ESP8266 wifi gate
Лечится такAmarok писал(а):А вот любопытность раздражающая нарисовалась - настройки после перезагрузки wifi gate слетают к такому виду: http://192.168.100.2/objects/?script=wifigate?data) "уезжает" в поле Serial data filter. Естественно, что после этого "переезда" Алиса перестаёт получать данные. Как лечить?То есть знак равно после data (
Ну и хотелка докучи: можно ввести в настройки гейта возможность указывать статический 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;
-
- Сообщения: 52
- Зарегистрирован: Пт июн 09, 2017 8:39 pm
- Благодарил (а): 4 раза
- Поблагодарили: 1 раз
Re: ESP8266 wifi gate
Ошибся так
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;
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;