Arduino - передача данных на localhost

Тема в разделе "Проводная и беспроводная связь", создана пользователем denisov.dv, 21 май 2019.

  1. denisov.dv

    denisov.dv Нуб

    Здравствуйте!
    Не могу найти информацию, как можно передать данные с Arduino по USB (с того COM-порта, к которому подключена плата) на localhost ПК?
    Может быть у кого-нибудь пример проекта, который бы автоматически слал данные сразу на localhost?
     
  2. b707

    b707 Гуру

    Serila.print()
     
  3. a1000

    a1000 Гик

    А как и чем вы их принимать будете?
     
  4. denisov.dv

    denisov.dv Нуб

    Благодарю за ответ.
    Может быть я не совсем корректно написал вопрос.
    Как указать номер порта, на какой слать данные? Мне нужно передавать данные на конкретный порт localhost'a.

    Есть програмулина на питоне, которая слушает заданный порт на локальной машине (localhost'e). Она и будет принимать. Работает так: открывает порт, ждет данные на порту, строит график
     
    Последнее редактирование: 21 май 2019
  5. a1000

    a1000 Гик

    Если будете слать через преобразователь USB-COM то номер COM порта вам назначит система. Посмотрите в диспетчере устройств. А с графиком можно не заморачиваться со сторонними приложениями. В Arduino IDE есть плотер последовательного порта. Отлично всё строит.
     
  6. parovoZZ

    parovoZZ Гуру

    как она может открыть несуществующий порт? Порт открывает драйвер.
     
  7. b707

    b707 Гуру

    никак. Порт назначается автоматически и выбрать конкретный порт со стороны ардуины вы не можете.
    Поэтому надо действовать в обратном порядке - сначала подключить ардуину. посмотреть, на каком она порту - и потом к этому порту подключаться на Питоне.
     
  8. a1000

    a1000 Гик

    Daniil нравится это.
  9. Sindbad

    Sindbad Гик

    Господа, топикастеру, судя по вопросу, нужен порт протокола TCP/IP для адреса
    А не COM-порт компьютера.

    На мой взгляд, ответ таков: никак, получение внешних пакетов по сети противоречит понятию localhost

    Для отправки сетевых пакетов на ПК нужно подключить к Ардуино контроллер Wi-Fi или контроллер Ethernet
     
    Последнее редактирование: 21 май 2019
    Daniil нравится это.
  10. parovoZZ

    parovoZZ Гуру

    конкретному устройству можно назначить конкретный порт. Даже занятый. А нормальные программы должны сами искать свой устройство.
     
  11. parovoZZ

    parovoZZ Гуру

    протокол TCP/IP по USB эмулируется. Даже здесь было где-то обсуждение.
     
  12. denisov.dv

    denisov.dv Нуб

    Коллеги, отвечая на вопросы:
    Да, нужен порт TCP/IP
    Такой вариант бы подошел.

    На самом деле подойдет как получение данных по Ethernet, так и получение этих данных на localhost.
    У меня трудности с передачей данных на порт протокола TCP/IP. Для тестов (для начала) подошло бы любое работающее решение.
     
  13. parovoZZ

    parovoZZ Гуру

    Если мы говорим поо USB, то это host и device. Никакого localhost там нет.
     
  14. b707

    b707 Гуру

    к сожалению, передать данные с Arduino по USB на порт TCP/IP без дополнительных программ не получится никак.

    Нужна дополнительная программа, которая будет принимать данные от Ардуины по COM-порту и отсылать их по TCP-IP - при этом куда отсылать, на удаленный сервер или на тот же localhost - значения не имеет.

    Другой вариант, подключать ардуину не по USB. а по Эзернет - но для этого нужен Арудино-модуль Эзернет

    Вариант 3 - возможно самый простой, а может и не очень - переписать "программулину на Питоне", чтобы она подключалась не к порту TCP/IP, а к порту COMport
     
  15. SergeiL

    SergeiL Гуру

    Или использовать модуль на ESP8266/
     
    b707 нравится это.
  16. b707

    b707 Гуру

    ну да, вариантов на самом деле масса.
    Но все их роднит одно - это все обходные пути, так как непосредственно задача ТС прямого решения не имеет
     
  17. SergeiL

    SergeiL Гуру

    А почему обходные пути? :) Может это, как раз самые, что ни на есть, прямые пути.
    Просто ТС пока не понял, как правильно решить задачу. :)
    Мы тоже. Вопрос от ТС поставлен именно так. Такие и ответы.
    Если я правильно понял ТС, задача передать данные от модуля - приложению на ПК.
    Проще всего слать данные, в приложение на PC, по UDP, или поднять сессию по TCP, и слать данные.