• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Отправка данных на сервер.

Ильнар

New member
Можно ли мимо мускула сразу вывести с контроллера на сервер?(контроллер клиентом). Через мускул работает, но я еще хочу напрямую пустить некоторые данные, так сказать онлайн. Может подскажете ? Спасибо.
 

Ильнар

New member
@Ильнар я, наверное, тупой. Не понял вообще ничего. Ни что есть, ни что Вы хотите.
Вряд ли Вы тупее меня :), виноват, исправлюсь. Коротко, есть esp8266, есть сервер(дома на LAMPе),esp отправляет данные GET запросом на скрипт сервера который добавляет данные в мускул, а уже веб страничка достает данные из мускула.Так работает, все нормально. Вопрос, возможно ли как то мимо мускула сразу на веб станицу?
 

Tudder

New member
Вопрос, возможно ли как то мимо мускула сразу на веб станицу?
Можно вместо базы писать в текстовый файл, удаляя старые записи и добавляя новые и с него уже выводить. А так как вы хотите не могу придумать как реализовать. У вас же вывод на веб страницу динамический с помощью AJAX или websocket верно?
 

Юрий Ботов

Moderator
Команда форума
Проблема я так понял в том что дома сервер за маршрутизатором и у него нет внешнего IP?
 

Ильнар

New member
Можно вместо базы писать в текстовый файл, удаляя старые записи и добавляя новые и с него уже выводить. А так как вы хотите не могу придумать как реализовать. У вас же вывод на веб страницу динамический с помощью AJAX или websocket верно?
AJAX, динамический. Тоже читал про файловый вместо мускула, но все же я думал что есть возможность на прямую, во всем в этом я не особо силен... Ну нет так нет...
 

Tudder

New member
нет внешнего IP?
Как я понял у него такая проблема. Отправляет GET запрос к примеру с одного компьютера на сервер вот так server.php?value=foo, а с другого компьютера хочет увидеть что там пришло, запустив этот же скрипт server.php Но в этом случае скрипт просто перезапишет все переменные и ничего не выведется.
 

Ильнар

New member
Как я понял у него такая проблема. Отправляет GET запрос к примеру с одного компьютера на сервер вот так server.php?value=foo, а с другого компьютера хочет увидеть что там пришло, запустив этот же скрипт server.php Но в этом случае скрипт просто перезапишет все переменные и ничего не выведется.
esp8266 отправляет на add.php, add.php отправляет в mysql, index.php забирает из mysql. Я хочу отправить сразу на index.php, пусто, нечего не приходит.
 

Tudder

New member
add.php отправляет в mysql, index.php забирает из mysql.
Ну я примерно так и думал, просто упрощенный пример привел. Если не хочется связываться с базой, то используйте текстовый файл, обновляя одну и ту же запись, если не нужна история запросов.
Все то же самое, только вместо базы пишете в файл, а потом забираете оттуда же
 

Ильнар

New member
Ну я примерно так и думал, просто упрощенный пример привел. Если не хочется связываться с базой, то используйте текстовый файл, обновляя одну и ту же запись, если не нужна история запросов.
Все то же самое, только вместо базы пишете в файл, а потом забираете оттуда же
Я так понимаю в любом случае будет промежуточное звено либо файл либо мускул?Ну ладно, увеличим частоту запросов и будет типа онлайн:)
 

Tudder

New member
в любом случае будет промежуточное звено либо файл либо мускул?
Ну да, данные нужно где то хранить, пусть и одну запись. Хранить ее в переменной не выйдет, поскольку при попытке открыть этот скрипт с другого устройства, переменная попросту обнулится.
 

arbuzmaster

New member
Все же просто! Поднимаете websocket сервер на php например, а браузер и esp будут websocket клиентами. Настраиваете websocket сервер как мультикаст эхо сервер - для всех клиентов, т.е. сообщение от любого клиента получают все клиенты. У websocket сервера есть такое событие(функция) onMessage по которому можно писать в БД. Изнутри это выглядит примерно так на 7:33!
 

Ильнар

New member
Все же просто! Поднимаете websocket сервер на php например, а браузер и esp будут websocket клиентами. Настраиваете websocket сервер как мультикаст эхо сервер - для всех клиентов, т.е. сообщение от любого клиента получают все клиенты. У websocket сервера есть такое событие(функция) onMessage по которому можно писать в БД. Изнутри это выглядит примерно так на 7:33!
Сделал по стандарту уж:), все привязал на LAMP е, дальше видно будет. Может глянете, советы замечания будут? 217.66.31.36
 

arbuzmaster

New member
Там миргает все ! :) Если уж сделали через ajax, то не надо туда всю страницу пихать, можно же просто один div обновлять и все. Т.е. пишите скрипт который запрашивает данные напрямую с контроллера, минуя БД и получаете данные, далее формируете html для вставки в div . Ajax запрос делаете по таймеру - например раз в 2 сек или более, ответ на ajax запрос вставляете в div. Ну как тот так примерно.
 

Ильнар

New member
Там миргает все ! :) Если уж сделали через ajax, то не надо туда всю страницу пихать, можно же просто один div обновлять и все. Т.е. пишите скрипт который запрашивает данные напрямую с контроллера, минуя БД и получаете данные, далее формируете html для вставки в div . Ajax запрос делаете по таймеру - например раз в 2 сек или более, ответ на ajax запрос вставляете в div. Ну как тот так примерно.
Понял. Спасибо. Через комп не моргает, поэтому я и не заметил...
 

Ильнар

New member
Там миргает все ! :) Если уж сделали через ajax, то не надо туда всю страницу пихать, можно же просто один div обновлять и все. Т.е. пишите скрипт который запрашивает данные напрямую с контроллера, минуя БД и получаете данные, далее формируете html для вставки в div . Ajax запрос делаете по таймеру - например раз в 2 сек или более, ответ на ajax запрос вставляете в div. Ну как тот так примерно.
:), мигание исправил.
 

arbuzmaster

New member
Так уже лучше! ;) Только вот это
Код:
<!DOCTYPE html>
<html>

</html>
в esp8266.php - не нужно, когда я говорил про html, то имелся в виду язык разметки, а ни сами теги.
 
Сверху Снизу