Локальный сервер для сбора данных с Arduino, связь

Тема в разделе "Проводная и беспроводная связь", создана пользователем railmisaka, 20 июл 2017.

  1. railmisaka

    railmisaka Гик

    Приветствую.

    Сразу скажу, я плохо разбираюсь в железе, поэтому и прошу совета.

    Начал осваивать ардуино. Для текущего проекта требуется собирать статистику показаний датчиков.
    Сразу делаю задел под несколько устройств. Устройства предполагается подключать к некоторому локальному серверу, через который можно будет их выгрузить на удаленный сервер.
    Функции локального севера:
    • Доступ к удаленному серверу (интернет) (лучше Ethernet)
    • Предоставление средств для обмена данными между ардуино/управление ардуино
    • Вероятно, веб-сервер
    Предполагается написание специального софта для локального сервера, который будет решать, что делать с данными, полученными от ардуино(отправлять в сеть или что-то еще). Этот же софт обеспечит управление ардуино и обмен данными между ними.
    Думаю, на роль такого сервера прекрасно подойдет "малинка". Она также справится с веб-сервером.

    Основной вопрос в связи между сервером и ардуино.
    Связь принципиально беспроводная. Высокая скорость обмена не нужна. Большие расстояния преодолевать не требуется. Требуется возможность подключения нескольких устройств.
    Подойдет ли для это bluetooth?

    Насколько я понял, bluetooth позволяет подключать несколько устройств(8+-?). Т.е. одна "малинка" сможет общаться одновременно с 8 ардуинками.

    Сейчас этого с головой хватит. Но что, если нужно будет подключить еще устройства?
    Имеет ли право на существование вариант, когда малинка циклически подключается ко всем устройствам по списку и опрашивает их? Предполагается, что устройства поставляют данные раз в N минут, так что по идее такой подход нормален.

    scheme.png
     
  2. rkit

    rkit Гуру

    Блютус в малине начинает проваливаться метров с пяти
     
  3. railmisaka

    railmisaka Гик

    хм.. наверняка есть внешние модули bluetooth.
     
  4. rkit

    rkit Гуру

    Найдите. А потом еще для ардуино такие же дальнобойные модули найдите. И на цену посмотрите.
     
  5. railmisaka

    railmisaka Гик

    вообще я писал что большие расстояния не требуются. 5 метров в целом хватит.
    правда, хотелось бы, чтобы пробивало обычную стенку в полкирпича.

    ну вообще, если с малинкой у меня получится подключить 5-6 устройств на расстоянии до 3х метров то мне пока хватит.
     
  6. Igor68

    Igor68 Гуру

    А есть возможность ардуине по WIFI подключаться к малине и сливаит данные... ну что бы не использовать bluetooth?
    Тогда:
    -на малине сервер для входящих запросов от ардуин;
    -клиент для удалённого сервера;
    -собственная WEB станица на Apache.
    Ну это как вариант... если с bluetooth не разберётесь на малине.
     
  7. railmisaka

    railmisaka Гик

    это вопрос?
    честно говоря, я не знаю.
    про блютус я уже кое-что погуглил, про вафлю еще не успел.
     
  8. Igor68

    Igor68 Гуру

    У меня на малине поднять bluetooth терпения не хватило... а вот по WIFI вообще не проблема. Правда на удалённый сервер малина будет передавать по дугому WIFI(свисток на USB) или через ETHERNET. Надеюсь малина третья?
    Вот когда-то ковырялся сам:
    http://forum.amperka.ru/threads/raspberry-pi-3-internal-wi-fi-usb-wi_fi.9798/
    Ну работает номально... пока нет проблем.
     
  9. railmisaka

    railmisaka Гик

    малины пока нет никакой)
    предполагается что она будет по Ethernet, ну или ладно, можно купить свисток WiFi.

    Мне главное, чтобы все нормально работало и не стоило очень больших денег. Я имею ввиду модули со сторону ардуино.
     
  10. Igor68

    Igor68 Гуру

    Как вы будете делать... в том плане как ардуино планируете заставить подключаться к малине? Со стороны малины прблем с сервером не будет... хоть свой на сокетах... хоть через запросы к WEB странице. Но!!! ИгорьК сделал проект... посмотрите сюда... тут множество доступных и очень интересных решений в проекте:
    http://forum.amperka.ru/threads/ard...y-pi-2-openhab-Умный-дом-азы-управления.5043/
    Хотя наверное Вы уже читали.
     
  11. railmisaka

    railmisaka Гик

    думал это делать со стороны малины, но это отчасти потому, что планировал использовать bluetooth модули, которые не могут самостоятельно соединяться с другими.
    про wifi сначала надо почитать.
     
  12. rkit

    rkit Гуру

    Так из этого и надо исходить, а не из названия протокола, который вам может быть заведомо не подойдет.
     
  13. railmisaka

    railmisaka Гик

    Простите, но я вас как-то не понял..
    Я вроде описал что мне нужно от протокола, а какой конкретно для меня значения не имеет.
     
  14. Igor68

    Igor68 Гуру

    С Си вы не союзники... как я понял. А наверное знаете как делать HTML запрос из ардуино на какой-нибудь WEB сервер. Пусть этим сервером будет Apache на малине. Ну соответственно ардуино будет и делать запросы с прередачей данных. А PHP скрипт и будет обрабатывать эти данные... и может сбрасывать данные на удалённый сервер. Подозреваю на нём (удаленном) тоже WEB сервер с PHP. Вот и весь механизм.
     
  15. railmisaka

    railmisaka Гик

    Все как раз наоборот. Я умею писать код, и, да простят меня адепты php, ни за что не буду на нем писать. На малинку вроде можно даже akka+scala впихнуть, так что проблем с программированием не должно возникнуть.

    Но я никогда не работал с bluetooth (весь мой опыт это общение модуля HC-06 с андроидом).
    Я никогда также не работал с wifi. Я не знаю ограничений этих протоколов, и прошу более опытных посоветовать, на что мне обратить внимание.

    Благодаря комменту @rkit
    я понял, что bluetooth не отличается дальнобойностью и, видимо, помехоустойчивостью.
    В настоящее время это не проблема, но не хочется заведомо загонять себя в рамки, из которых сложно выбраться. Тем более что никаких особых плюсов по части стоимости или времени разработки это не дает.
     
    Igor68 нравится это.
  16. rkit

    rkit Гуру

    Нет не написали. Ну в ходе разговора удалось выяснить, что "большие расстояния" это больше трех метров и стены в полкирпича. Больше совершенно ничего конкретного. Сиди и угадывай - что за данные, нужен ли контроль потерь, нужно ли низкое энергопотребление, нужна ли двусторонняя связь, нужна ли адресация, контроль занятости канала, что такое "невысокая скорость обмена", и так далее.
     
    Igor68 нравится это.
  17. railmisaka

    railmisaka Гик

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

    Я попробовал передавать данные между ардуино и телефоном по bluetooth. Результат меня более чем устроил.
    Я наивно полагал, что смогу подключить таким образом более одного bluetooth устройства. Или в крайнем случае смогу сделать циклический опрос, путем присоединения и отсоединения устройств по списку (коннект-обмен-дисконнет).
    Мне нужно где-то собирать статистику, и я мог бы сделать это через телефон или компьютер. Но телефон не всегда рядом, а заставлять работать компьютер 24 часа в сутки мне не хочется.

    Мне сейчас нужно, чтобы в радиусе 3метра от сервера и не далее чем за одной стенкой в полкирпича у меня была возможность обмениваться(сервер<->ардуино) данными с ардуино со скоростью хотя бы 100байт в секунду. Все остальное не так важно.
    * Если можно создать постоянное соединение, то это предпочтительно. Иначе можно организовать опрос.
    * Если возможно использовать протокол гарантирующий доставку, то это предпочтительно. Иначе придется писать что-то типа такого протокола поверх того что есть.
    * Совершенно не понял, что имеется ввиду под адресацией, но хотелось бы знать, от кого приходят данные. Хотя с другой стороны можно всегда подписывать сообщения.

    А вообще, мне кажется что те же bluetooth или wifi обеспечат все плюшки по части удобства использования. Ятп стоимость модуля для ардуино до 500р, что приемлено.
     
  18. Igor68

    Igor68 Гуру

    Если всё нормально, то вам свой собственный протокол и сервер не проблема. По поводу bluetooth лично я не стал делать. Хотя может и надо было.
     
  19. rkit

    rkit Гуру

    Новичку нужно просто внятно написать, что он хочет сделать, а не ходить вокруг да около с абстрактными датчиками. Если до 500 рублей бюджет, то я бы, например, мог посоветовать взять esp8266 вместо ардуино, которые имеют и вайфай, и гору памяти для самостоятельного хранения информации. Но так как датчики супер секретные, то я не могу знать, подойдут ли они.
     
    ИгорьК нравится это.
  20. ИгорьК

    ИгорьК Гуру

    ESP-8266 меденно но верно превращается в контроллер общего назначения. Там ограничения лишь по одному встроенному АЦП, да ног в целом все таки поменьше чем у ардуино. Но для 80% решений он, ИМХО, очень даже подходит.

    А уж для работы с датчиками - так просто заточен.

    scheme2.jpg
     
    Последнее редактирование: 20 июл 2017
    Igor68 нравится это.