Как я должен отправлять данные на свой ноутбук с нескольких ардуино?
Я работаю над проектом, который включает одновременное считывание нескольких RFID-меток с разных направлений. Из-за нескольких направлений мне нужно использовать несколько антенн. Из-за нескольких меток мне нужно использовать одновременный считыватель RFID.
К сожалению, проводка одновременного считывателя RFID не поддерживает несколько антенн, поэтому для каждой антенны потребуется собственный одновременный считыватель RFID. Кажется вероятным, хотя я жду подтверждения этого, что каждый считыватель RFID также должен иметь свой собственный Arduino. Какой наименее ужасный способ отправки данных, которые собирают эти комбинации антенна-считыватель-Arduino, на ноутбук?
Если это имеет значение, ноутбук, на который я буду отправлять данные, будет работать под управлением Ubuntu, и я хотел бы собирать данные с помощью пакета Python pyserial. Как только я получу данные в программе на Python, мы будем дома и высохнем.
@Tom Hosker, 👍0
Обсуждение2 ответа
Лучший ответ:
Существует несколько решений, но наиболее простым из них, вероятно, является использование программного последовательного порта, I2C или SPI. Идея в основном одинакова для любого из протоколов. Вы выбираете один Arduino, который будет ведущим, и подключаетесь к ноутбуку. Чем с помощью любого из этих интерфейсов вы соединяете платы Arduino в цепочку. Затем вы можете запросить ведомые платы Arduino, есть ли у них новые данные один за другим. Если они это делают, они отправляют его, и мастер пересылает его на ноутбук. Таким образом, все подчиненные платы будут ждать, пока у них не будут запрошены данные, и, таким образом, избежать коллизий потоков данных.
Если вы еще не приобрели 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
- Программирование Arduino с использованием Python, а не C/C ++
- Не удается связаться с ардуино с помощью python (Windows)
- Как использовать RFID-RC522 с Arduino?
- Как остановить SoftwareSerial от получения данных и повторно включить его в какой-то другой момент?
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- Использование прерываний с RC522
- Последовательная связь Arduino с Python: отправка массива
- Построение графика на Python с использованием Tkinter Canvas
Может быть, SPI для передачи данных от RFID Arduinos к основному Arduino. Оттуда просто Serial, @chrisl
Подключите Arduino к USB-концентратору, а затем подключите концентратор к ноутбуку. Открывайте и читайте из нескольких последовательных портов одновременно в своем коде., @Majenko
Arduino Mega может предоставлять аппаратные последовательные каналы для считывателей RFID-меток., @Mikael Patel