Вопрос: Нужен способ передачи данных от большого количества приборов на сервер.

Автор Влад Игнатьев задал интересный вопрос в категории Arduino, Передача данных, Программирование, Радиолюбители, Электроника. Он спрашивает: Нужен способ передачи данных от большого количества приборов на сервер.. Среди полученных ответов он выбрал самый точный и полный ответ.

Самый полезный ответ для автора Влад Игнатьев

Не смущает, что nRF24 на открытой местности пробивает максимум 1 км, а в условиях городской застройки думаю на 100 метров можно уже не рассчитывать? Посмотрите на LoRa, есть модули типа RA-02 на SX1278, но даже они не дадут дальность больше 300-400 метров, поэтому вам нужно будет реализовать mesh-сеть, то есть ретрансляцию данных.Если у кого хватит мозга собрать усилители ватт по 5 в СВЧ диапазон, при этом не получить в ухо от ГКРЧ, то теоритически можно собрать на сервер все данные, тогда банальная идентификация по id и работа радиочасти сервера в режиме эхо на нескольких каналах помогут избежать коллизий.

Кроме этого другие посетители написали Ещё 1 ответ

Здравствуйте. Мы с моей командой энтузиастов хотим сделать 1 проект. Суть я рассказать не могу, да и незачем. В общем в разных точках города будут установлены приборы/девайсы(очень много) которые должны отправлять информацию на сервер БЕЗ ИНТЕРНЕТА, от девайся к девайсу и в конечном итоге попадать на единственный прибор подключенный к интернету, а он в свою очередь будет отправлять их на сервер. Скорее всего данные будут передаваться от девайса к девайсу по средствам модуля беспроводной связи «nRF24L01» и как сейчас уже поняли некоторые люди наши приборы/девайсы будут powered by arduino. Но главная проблема в том что мы не знаем как будут вести себя передаваемые данные в таком случае, ведь по задумке сигналы от одного девайса/прибора должны усиливаться другим девайсом, может они вообще будут превращаться в кашу в процессе, или этот вопрос можно решить программно синхронизировав время отправления данных?Прошу всех кто разбирается в теме проконсультировать нас по вопросу.Заранее спасибо).ArduinoПередача данныхПрограммированиеРадиолюбителиЭлектроника0ОтветитьПодписаться1ПожаловатьсяЛучший ответИлья ГалкинИнженер-схемотехник, разрабатываю силовую электронику, пишу технические статьи: https://habr.com/ru/users/nordicenergyНе смущает, что nRF24 на открытой местности пробивает максимум 1 км, а в условиях городской застройки думаю на 100 метров можно уже не рассчитывать? Посмотрите на LoRa, есть модули типа RA-02 на SX1278, но даже они не дадут дальность больше 300-400 метров, поэтому вам нужно будет реализовать mesh-сеть, то есть ретрансляцию данных.Если у кого хватит мозга собрать усилители ватт по 5 в СВЧ диапазон, при этом не получить в ухо от ГКРЧ, то теоритически можно собрать на сервер все данные, тогда банальная идентификация по id и работа радиочасти сервера в режиме эхо на нескольких каналах помогут избежать коллизий.

Способ передачи данных это одно (радиомодуль, Wi-Fi, блютуз и т.д.), формат (протокол) передаваемых данных — это другое (DCON, Modbus и т.д.), ЧТО ИМЕННО передавать — это третье (время, температуру, состояние устройства и т.д).Сначала Вам нужно точно определиться с тем, какая именно информация будет передаваться от устройства к устройству. Ведь чем больше будет инфы, тем больше памяти и мощности процессора устройства должна быть. Ведь по-мимо своей информации, ему нужно будет обрабатывать информацию о другом устройстве. А таких может быть несколько штук. К примеру самым бюджетном устройством будет такое, где будет храниться максимум 3 Мб памяти.Вы решили передавать такую инфу: название устройства, его ID, координаты (широта и долгота) и наличие выхода в Интернет (да или нет). Вычисляете примерный размер одного такого пакета данных. Допустим на 3Мб хватит около 10 устройств. Значит нужно располагать устройства так, чтоб не позднее 10-го инфа могла уйти в Интернет. Определитесь с протоколом, как будут шифроваться данные. Например, !A34@re4i5gh54g434ughg$. Где:! — символ начала пакета данных от устройства.А34 — это ID устройства, @ — это начало данных,re4i5gh54g434ughg — сами данные (название устройства, координаты, выход в интернет),$ — конец пакета данных.Собственно, с помощью символов ! и $ вы будете сможете парсить полученные данные с 10-го устройства. Вычислить количество полученных пакетов и понять, что там внутри, от каких устройств пришло.Естественно все устройства должны быть одинакового мощными по производительности данных и должны иметь одинаковую память (объем, не меньше). Ведь заранее неясно, через какое именно устройство в итоге придут данные на сервер.