Http сервер, tcp, mqtt
- Войдите на сайт для отправки комментариев
Здравствуйте!
Есть желание сделать проект, суть которого такова:
Есть несколько устройств, так называемых клиентов, ( arduino Nano, sim800l и gps модуль), соответственно он передает свое местоположение на сервер и принимает от сервера команды на включения определенных ножек, и к примеру, координаты определенных устройств.
Иными словами, есть множество устройств, у которых следующие параметры: координаты, матрица состояния входов выходов и еще некоторые параметры, id и т.д. и они все эти данные отправляют на сервер. Сервер обрабатывает эти данные и управляет состояниями этими клиентами, при срабатывания определенных условий.
Собственно вопрос, на чем организовать сервер и по какому протоколы. Я просто не знаю, что будет оптимально
Тут все просто: на один листок выписываете перечень данных, которые требуется отправлять и получать. На второй листок названия протоколов, с которыми знакомы. Затем начинаете прикидывать - удовлетворяют ли возможности протокола со второго листа требованиям с первого. Если да, то ответ найден. В ином случае - формулируете причину несовместимости требования и возможности. Берете следующий протокол. Коли ничего не подошло то , в Гугле, ищете "протокол для передачи“+то, что не полезло в уже рассмотренные протоколы.
Ну в принципе то вы правы, просто я надеялся, что я прощу этот момент, поиска протокола и что у кого то есть опыт построения похожей системы.
Salamandra244,
если честно, не понял задачи. Вы используете нестандартную терминологию, которая сильно сбивает. Попробуйте объяснить без слов, значения которых Вы не знаете, а лучше нарисуйте структурную схему системы.
А то, вот Вы пишете
Непонятно, Вы собираетесь использовать какую-то свою - нестандартную прошивку для sim800l и gps модуля или Вы просто ошибочно назвали их клиентами, т.к. при их штатной прошивке - они серверы и клиентами быть не могут никак.
Или вот:
Попробуйте как-то внятно объяснить и нарисовать.
Спасибо за ответ! Вы правы, я не правильно использовал термины, из-за недопонимания некоторых моментов.
Попробую еще раз обяснить.
Устройство N
Функционал
Определение своего местоположение
У каждого устройства свое ID
Каждое устройство так же имеет некоторые свои параметры ( type, group ну и т.д.)
Маска GPIO ( какие определенные входы в каком состоянии находятся)
Отправка всех данных на сервер( в каком ввиде я не знаю, возможно JSON файл)
Получение данных с сервера( маску GPIO, и , допустим, еще параметры( ввиде JSON было идеально, чтоб аруинка парсила этот файл и вытаскивала нудные данные)
Сервер(хранилище)
Функционал
Сервер принимает данные со всех устройств и заносит их в таблицу, где, могу быть ледуйщие поля (id, type, maskGPIO)
Я имею представления о программирвоание ну уровне фронтенда, работа с RESTApi и т.д.
В качестве ремарки:
1) Human-readable protocols - не лучший выбор для МК. Работать с ними можно, но это непродуктивно - придётся очень жестко втискиваться в RAM и всячески извращаться.
2) MQTT-метрики не синхронизированны во времени.