Как я должен отправлять данные на свой ноутбук с нескольких ардуино?

Я работаю над проектом, который включает одновременное считывание нескольких RFID-меток с разных направлений. Из-за нескольких направлений мне нужно использовать несколько антенн. Из-за нескольких меток мне нужно использовать одновременный считыватель RFID.

К сожалению, проводка одновременного считывателя RFID не поддерживает несколько антенн, поэтому для каждой антенны потребуется собственный одновременный считыватель RFID. Кажется вероятным, хотя я жду подтверждения этого, что каждый считыватель RFID также должен иметь свой собственный Arduino. Какой наименее ужасный способ отправки данных, которые собирают эти комбинации антенна-считыватель-Arduino, на ноутбук?

Если это имеет значение, ноутбук, на который я буду отправлять данные, будет работать под управлением Ubuntu, и я хотел бы собирать данные с помощью пакета Python pyserial. Как только я получу данные в программе на Python, мы будем дома и высохнем.

, 👍0

Обсуждение

Может быть, SPI для передачи данных от RFID Arduinos к основному Arduino. Оттуда просто Serial, @chrisl

Подключите Arduino к USB-концентратору, а затем подключите концентратор к ноутбуку. Открывайте и читайте из нескольких последовательных портов одновременно в своем коде., @Majenko

Arduino Mega может предоставлять аппаратные последовательные каналы для считывателей RFID-меток., @Mikael Patel


2 ответа


Лучший ответ:

1

Существует несколько решений, но наиболее простым из них, вероятно, является использование программного последовательного порта, I2C или SPI. Идея в основном одинакова для любого из протоколов. Вы выбираете один Arduino, который будет ведущим, и подключаетесь к ноутбуку. Чем с помощью любого из этих интерфейсов вы соединяете платы Arduino в цепочку. Затем вы можете запросить ведомые платы Arduino, есть ли у них новые данные один за другим. Если они это делают, они отправляют его, и мастер пересылает его на ноутбук. Таким образом, все подчиненные платы будут ждать, пока у них не будут запрошены данные, и, таким образом, избежать коллизий потоков данных.

,

1

Если вы еще не приобрели Arduino, вы можете рассмотреть возможность использования ESP8266 («похожий на Arduino» со встроенным модулем Wi-Fi, и ненамного дороже, в зависимости от размера проекта). Затем вы используете свой ноутбук в качестве сервера, и каждый ESP8266 отправляет данные через Wi-Fi на ноутбук.

Arduino в качестве клиента (через Wi-Fi): https://www.arduino.cc/en/Reference/WiFiClient

,

Вот пример проекта, в котором я сделал это, хотя я использовал Arduino с ethernet-щитом, но принцип тот же. Также я использовал arduino в качестве REST-сервера (а не в качестве клиента). Это означало, что сервер (ПК) опрашивает Arduino для получения данных. Но это можно исправить, используя Arduino в качестве клиента. https://www.instructables.com/id/Household-Environmental-Monitor-IoT-Solution/, @GMc