Мой сервер для распбери

Тема в разделе "Флудилка", создана пользователем valeraba, 29 мар 2019.

  1. valeraba

    valeraba Нерд

    Руки дошли портировать свой сервер mgt24.ru для установки на распбери.
    Устанавливается такой сервер несколькими консольными командами.

    Так как в этой системе пользовательские скрипты хранятся не на сервере, а исключительно в самих устройствах, то устройствам без разницы через какой сервер обмениваться информацией между собой, через облачный или через домашний.

    Этим самым обеспечивается горячее резервирование системы, если облачный сервер не доступен, то устройства подключаются к домашнему серверу и взаимодействуют друг с другом уже через него.

    Если кому интересно, спрашивайте.
     
    Igor68, arkadyf и parovoZZ нравится это.
  2. parovoZZ

    parovoZZ Гуру

    Интересно...
    А с какими физическими интерфейсами работает сервер? На каком языке и можно ли добавить свой протокол? Вот, например, nRF24, LoRa, ModBus, CAN и проч. (звиняюсь за все вперемешку).
     
  3. valeraba

    valeraba Нерд

    Нет, этот сервер довольно глупый, он только обеспечивает каналы для обмена по своему протоколу, похожему на MQTT. Но в отличии от MQTT этот протокол очень компактный и скоростной, а также в нём есть работа с историческими данными, ну и шифрование тоже.
    То есть несколько десятков тысяч параметров в секунду приходящих от устройств распбери раздаст потребителям даже не заметит, дополнительно пережимая выборочные данные архиватором и укладывая их в базу данных.
     
  4. parovoZZ

    parovoZZ Гуру

    Может, есть "умный" сервер?)

    Так а интерфейсы какие используются?

    А фронт-енд - это то, что в демке или есть отдельный?

    Я сейчас ищу SCADA, с помощью которой смогу конфигурировать свои нативные радиоустройства. Пока ничего, кроме iBroker по ModBus, не находится. Свою же я не напишу.
     
  5. valeraba

    valeraba Нерд

    TCP/IP
    Ничего отдельного нет, но внешний вид может быть любым, можно и в HTML верстать, можно и конструктором воспользоваться. Если самому верстать, то есть очень простое javascript API.
    К своей системе я подключал бы это так:
    1) Распбери как сервер
    2) Arduino Mega как поставщик параметров для системы и исполнитель пользовательских скриптов.
    3) Радиустройства как датчики или исполнительные механизмы.

    Arduino Mega будет собирать информацию с радиоустройств и передавать их на сервер. В ней же будет запущена виртуальная машина, которая будет исполнять пользовательские скрипты.
     
  6. KindMan

    KindMan Гик

    Сколько памяти сжирает? У меня ЕСП8266 через уарт общается с чипами, как сетевой адаптер. С малиной через сокеты или как будет? На винде ХР не поднять сервер?
     
  7. parovoZZ

    parovoZZ Гуру

    У меня сейчас уже на малинке висит nRF24 на SPI. Лишних прослоек не будет. Максимум, что будет, так это переходник из ModBus в радиоинтерфейс) Но сделано это будет на какой-нить 8u2 или 16u2, чтобы поиметь несколько виртуальных com портов.
     
  8. valeraba

    valeraba Нерд

    Виртуальной машине нужна помять только под стек, какой размер выделить под стек, зависит от глубины вложенных функций и количества их аргументов. Я обычно ставлю с запасом 1000 байт. Сам сервер можно установить и на Windows.

    Тоже хорошо, правда малина включается далеко не за секунду. Я же предпочитаю более кандовые решения, поэтому всю логику размещаю на микрашах, чтобы не страдать от временных лагов операционных систем.
     
  9. parovoZZ

    parovoZZ Гуру

    А иной интерфейс можно внедрить? COM порт, например?
     
  10. valeraba

    valeraba Нерд

    Не имеет значение где будет находиться сетевой клиент, и на малине тоже можно запустить сетевого клиента, который будет работать с различной периферией. Поэтому можно и COM порт.
     
  11. parovoZZ

    parovoZZ Гуру

    Хм... ну я понял. А параметры протокола обнародованы?
     
  12. valeraba

    valeraba Нерд

    Нормальных инструкций нет, потому как не для кого было их писать.
    Я же обычно делаю это через свою программу редактора, завожу новое устройство, ввожу туда все имена параметров, с которыми хочу работать по сети и мне автоматически генерируется исходный код на сях. Мне остаётся только обработчики заполнить.