alex1985 0 31 мая, 2019 Опубликовано 31 мая, 2019 (изменено) · Жалоба Добрый день, коллеги! Имеется около 2000 изделий на базе микроконтроллера stm32 (назовем их условно черный ящик) и есть задача контроля за этими изделиями через удаленный сервер (сбор статистики, возможность отправки версии прошивки). В каждое из них планируется разместить GPRS-модуль (например SIM300). При включении изделия оно высылает на сервер необходимую информацию, т.е. выступает в роли "мастера", опрашивает наличие файла прошивки и при необходимости производит обновление. Вопрос: как концептуально реализовать эту задачу? Если есть SCADA-системы с подобным функционалом? Есть ли готовые серверные площадки с модемами для решения подобных задач? Изменено 31 мая, 2019 пользователем alex1985 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 8 31 мая, 2019 Опубликовано 31 мая, 2019 · Жалоба Но только не SIM300, и даже не SIM900, все устарели не производятся, с поддержкой скоро проблемы будут. Только новые если от SIMCOMа то SIM7000 или SIM7020. Задача без проблем решаемая, только вам сесть и написать тз самому нужно. Аналогичную пять лет назад решил, устройств было поболее 18000. SCADA-системы будут дорогими, не всегда оправдано. Да и требования у вас могут быть за пределами имеющихся систем. Лучше свое реализовать, если знаешь как. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex1985 0 14 июня, 2019 Опубликовано 14 июня, 2019 · Жалоба On 5/31/2019 at 8:19 PM, Aner said: Лучше свое реализовать, если знаешь как Я для того на форум и обратился, чтобы узнать как) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smart_pic 7 14 июня, 2019 Опубликовано 14 июня, 2019 · Жалоба Решаемо. Только сейчас уже SIM900 дается с трудом в поставках. Ему на замену идет SIM800. Вам нужно реализовать аппаратную часть , т.е. контроллер сбора статистики? или еще написать серверную часть отображением информации через приложение или ВЕБ интерфейс? Опыт есть. как пример реализации http://www.yakorev.com.ru/asuno.shtml Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 8 14 июня, 2019 Опубликовано 14 июня, 2019 · Жалоба SIM800 вот вот снимут с производства, не стоит закладывать их. SIM900 сняты с производства в 2017 году, 2018 еще что-то до-выпустили. Сейчас уже не будут выпускать. Эти в той же цене SIM7000 или SIM7020 и года 4 еще будут поддерживать, ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex1985 0 14 июня, 2019 Опубликовано 14 июня, 2019 · Жалоба Наверное вопрос не по адресу - с аппаратной частью проблем нет - сделать не сложно, больше интересует работа с базой данных. Как я предполагаю - нужно поднимать сервер и по TCP/IP общаться с базой. Есть у кого опыт подобных работ? Подскажите, куда копать? С университета помнится только sql и то смутно.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 14 июня, 2019 Опубликовано 14 июня, 2019 · Жалоба 18 minutes ago, alex1985 said: Наверное вопрос не по адресу - с аппаратной частью проблем нет - сделать не сложно, больше интересует работа с базой данных. Как я предполагаю - нужно поднимать сервер и по TCP/IP общаться с базой. Есть у кого опыт подобных работ? Подскажите, куда копать? С университета помнится только sql и то смутно.. База не резиновая. Общаться надо не с базой, а с брокером. А уже брокер с базой. А еще может и балансировщик нагрузки понадобится. Ибо для большого количества устройств нужен посредник между IoT и SQL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex1985 0 14 июня, 2019 Опубликовано 14 июня, 2019 · Жалоба 8 minutes ago, AlexandrY said: База не резиновая. Общаться надо не с базой, а с брокером. А уже брокер с базой. А еще может и балансировщик нагрузки понадобится. Ибо для большого количества устройств нужен посредник между IoT и SQL. Кол-во устройств планируется до 5000. Поясните что такое брокер в этой цепочке и какой функционал он выполняет? Нашел информацию по платформам IoT, самая крупная - Amazon Web Services. Я в правильном направлении смотрю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 14 июня, 2019 Опубликовано 14 июня, 2019 · Жалоба 36 minutes ago, alex1985 said: Кол-во устройств планируется до 5000. Поясните что такое брокер в этой цепочке и какой функционал он выполняет? Брокер обрабатывают IoT протоколы, которые должны быть компактные, быстрые, устойчивые к потерям и задержкам и транслируют их в SQL запросы к базам данных. Кроме брокеров нужны серверы представляющие данные для клиентов в виде WEB страниц или REST протокола.Amazon стоит денег и навязывает свою архитектуру. Лучше свой выделенный виртуальный сервер с Windows. Туда ставится как вариант RAD Server. в плагине к RAD серверу организуется интерфейс MQTT брокера и WEB сервер или интерфейс к штатному IIS WEB серверу. В RAD Studio можно написать и нативных клиентов для Android, iOS для REST протокола. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 14 июня, 2019 Опубликовано 14 июня, 2019 (изменено) · Жалоба 2 часа назад, AlexandrY сказал: Лучше свой выделенный виртуальный сервер с Windows. Во блин, когда я по молодости, раз сказал главному сисадмину про сервер на винде, он в меня только еще ботинком не запустил... 2 часа назад, AlexandrY сказал: Туда ставится как вариант RAD Server. в плагине к RAD серверу организуется интерфейс MQTT брокера и WEB сервер или интерфейс к штатному IIS WEB серверу. Вот зачем это все!!! Как у нас любят усложнять себе жизнь, хотя, наверно платят за это неплохо... В этой цепочке куча потенциальных глюков, у ТС всего 5000 устройств! Это простейший комп справится 10и летней давности. Прошивки у него не гигабайтные, надеюсь... 3 часа назад, alex1985 сказал: самая крупная - Amazon Web Services. Если в России предполагается работа системы - забудьте про это, оно сегодня работает, а завтра нет. Ищите программиста, который может на яве написать программу, чтоб работать с "прозрачным" TCP соединением, и "прикрутить" ее к любой бесплатной CMS с БД, далее, поднимаете это соединение при помощи модема (рекомендую 3Г модем, ибо ГПРС уже скоро загнется и скорость там только для примитивной статистики годится, с перекачкой прошивок могут быть проблемы) поднимаете соединение с использованием встроенного стека и реализуете простейший протокол - заголовок, пакет данных, контр. сумма. Ну и далее в меру собственной фантазии Изменено 14 июня, 2019 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 15 июня, 2019 Опубликовано 15 июня, 2019 · Жалоба 15 hours ago, mantech said: Во блин, когда я по молодости, раз сказал главному сисадмину про сервер на винде, он в меня только еще ботинком не запустил... Вот зачем это все!!! Как у нас любят усложнять себе жизнь, хотя, наверно платят за это неплохо... В этой цепочке куча потенциальных глюков, у ТС всего 5000 устройств! Это простейший комп справится 10и летней давности. Прошивки у него не гигабайтные, надеюсь... Ищите программиста, который может на яве написать программу, чтоб работать с "прозрачным" TCP соединением, и "прикрутить" ее к любой бесплатной CMS с БД, По сути вы предлагает брать не готовый сервер типа RAD Server, а писать его самому. Взять не готовый протокол с универсальным API (имеющийся в исходниках и коммерческого качества ) а писать самому некий "прозрачный" протокол и рожать в муках свой API. Зачем-то притянули лишнюю сущность CMS, наверно думая что дизайн динамических страниц это некая магия или полагая, что CMS даст удобный интерфейс к SQL. А на самом деле ограничив выбор только MySQL. Эт все скорее комплексы вашего сисадмина или программера. кто там вам такое наговорил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex1985 0 15 июня, 2019 Опубликовано 15 июня, 2019 (изменено) · Жалоба 17 hours ago, mantech said: Если в России предполагается работа системы - забудьте про это, оно сегодня работает, а завтра нет. Спасибо! Дельное замечание в нынешней экономической ситуации. Интересует решение на базе IoT-платформы, не американской) Самому изобретать велосипед с "балансировщиками нагрузки" и системой безопасности или поднимать сервер на базе домашнего/рабочего ПК не хочется. Но я не категоричен и готов рассмотреть все варианты решения задачи. Изменено 15 июня, 2019 пользователем alex1985 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 15 июня, 2019 Опубликовано 15 июня, 2019 · Жалоба 17 minutes ago, alex1985 said: Спасибо! Дельное замечание в нынешней экономической ситуации. Интересует решение на базе IoT-платформы, не американской) Самому изобретать велосипед с "балансировщиками нагрузки" и системой безопасности или поднимать сервер на базе домашнего/рабочего ПК не хочется. Но я не категоричен и готов рассмотреть все варианты решения задачи. Важна требуемая функциональность. Нужно ли наблюдать и управлять каждым дивайсом отдельно, или нужно показывать только агрегированную статистику, Все дивайсы однаковые или у каждого свой профиль с набором параметров и функций? Как планируется дивайсы вставлять в программную систему, удалять, апгрейдить, следить за версиями, переводить в сервисный режим и проч. Нужно ли управлять дивайсами при отсутствии подключения к ним , типа отложенные транзакции. Нужно ли держать защищенный SSL/TLS канал и нужно ли дивайсам самим проверять подлинность сервера к которому они подключаются или сервер должен ли проверять подлинность дивайсов. Какой объем данных накапливается и как обращаться с устаревшими данными( стирать, накапливать бесконечно, бэкапить и т.д.) Авторизация и аутентификация клиентов нужна ли. Нужен ли динамичный UI с графиками, интерактивными таблицами, картами, виджетами. Как вообще отлаживать собираетесь и контролировать трафик? Как не переплатить за трафик возникающий просто из-за ошибки в протоколе. Рекомендую выделенный Windows сервер. За 4 евро в месяц получаете в свое распоряжение в облаках весь Windows Server 2016 for x64-based Systems с процессором 2.60 GHz и белым IP адресом и 100 Мб/c каналом. Без домена. Но домен и не нужен для таких дел. Windows Remote Desktop Connection работает так быстро словно работаете локально. Никаких ограничений на запускаемый софт. Все что работает у вас на десктопе все может работать и там. И самый бюджетный вариант будет написать софт самому на базе RAD Server в RAD Studio для такого виртуального сервера, а можете на Node.js, а можете на питоне. А можете на всем сразу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex1985 0 15 июня, 2019 Опубликовано 15 июня, 2019 (изменено) · Жалоба 1. Планируется сбор статистики с разграничением уровня доступа, скажем заказчик может просматривать всю статистику только по конкретному закупленному станку, рабочему доступна статистика только за смену. 2. Девайсы разные, но набор основных параметров совпадает > 50% 3. Планируется в основном собирать статистику, но возможно и изменение сервисных параметров, также по запросу, инициируемого сервером, производить обновление прошивки (размер ~100КБ). 4. Отложенные транзакции планируются. Но я вижу механизм схожий с обновлением прошивки, т.е. при появлении новой версии ПО на сервере в соответствующем поле БД выставляется бит наличия прошивки (или несколько байт) и устройство при включении опрашивает это поле. При наличии нужной записи происходит загрузки файла прошивки или выполнение каких-то сервисных команд. 5. Думаю, подлинность девайсов логично определять серверу. В БД предполагается наличие таблицы устройств с уникальными ID и заводскому номеру оборудования, после включения девайс посылает на сервер строку с ID и если ID совпадает с имеющимся в базе - то статистика с девайса заносится в базу, иначе - игнорируется. По поводу защищенного канала - не подскажу, т.к. не разбираюсь в этом. 6. В первом приближении хочу организовать что-то типа журнала событий, т.е. время включения устройства, время работы, ошибки и т.д. но в идеале хочется снимать данные с интервалом в 1 сек., кол-во регистров ~ 10, размерность 1-2 байта. Понимаю, что для опроса данных с такой частотой потребуется сотни мегабайт данных, поэтому пока этот вариант рассматриваю как запасной. Данные планируется хранить вечно. 7. Авторизация и аутентификация клиентов нужна. Доступ в первом приближении планируется сделать по http через сайт, где пользователь вводит логин/пароль и попадает на страницу статистики. А в идеале - и через приложение IOS/Andriod , которое будет доставать данные с сервера и отображать их в нужном виде (табличном или графическом). 8. Графики/таблицы конечно хотелось бы иметь, поэтому я смотрю в сторону промышленных решений, т.к. не хочется самому изобретать приложения для IOS/андроид и т.п. 9. По трафику пока не думал даже. Как вариант, можно считать и отправлять трафик прямо с девайсов и при его низком значении выставлять какое-то поле в БД, сигнализирующее пользователю о его расходе. 1 hour ago, AlexandrY said: Рекомендую выделенный Windows сервер. За 4 евро в месяц получаете в свое распоряжение в облаках весь Windows Server 2016 for x64-based Systems с процессором 2.60 GHz и белым IP адресом и 100 Мб/c каналом. Без домена. Но домен и не нужен для таких дел. Windows Remote Desktop Connection работает так быстро словно работаете локально. Никаких ограничений на запускаемый софт. Все что работает у вас на десктопе все может работать и там. Интересный вариант! Но меня интересует механизм обмена с БД. Идеальным вариантом было бы решение типа "аренда сервера с конструктором БД и mqtt-брокером", интуитивно-понятное, не требующее долгого погружения в программирование БД, в котором за пол-часа можно было бы накидать структуру БД и огранизовать обмен через mqtt. Не знаю, может чушь пишу конечно, но информации пока мало нахожу.. Изучаю в данный момент mqtt и IoTmanager. Изменено 15 июня, 2019 пользователем alex1985 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alex1985 0 15 июня, 2019 Опубликовано 15 июня, 2019 · Жалоба Нашел статью про запись в БД: https://it4it.club/topic/72-uchimsya-peresylat-dannye-s-mqtt-brokera-v-bazu-dannyh-mysql/ может кому пригодится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться