Использование Arduino Mega с несколькими модулями HC05 в качестве ведущих, связь с несколькими модулями HC05 в качестве подчиненных, каждый из которых подключен к отдельному Arduino.
Поэтому я еще не экспериментировал с модулем Bluetooth HC05, но я читал об этом и смотрел несколько видеороликов. Насколько я понимаю, вы не можете использовать один модуль (главный) для связи более чем с одним другим модулем (ведомыми), или, по крайней мере, это довольно сложно. Но вы можете использовать модуль, подключенный к Arduino, для связи с другим модулем, подключенным к другому Arduino (я думаю, это довольно просто).
Однако я подумал, что можно использовать Arduino Mega (поскольку у него несколько контактов TX/RX) с 3 модулями Bluetooth HC05, чтобы каждый из них мог обмениваться данными с 3 отдельными модулями HC05, каждый из которых был бы подключен к Arduino Nano. Я знаю, что это может быть связано с запуском нескольких серийных версий программного обеспечения (я понятия не имею, что это такое, если честно)?
Проект предполагает использование главного Arduino для «прослушивания» нажатия кнопки на подчиненном Arduino (через комнату без подключения проводов), а затем прослушивание нажатия другой кнопки от одного из других подчиненных устройств в некоторой последовательности и внутри определенный период времени.
Есть ли у кого-нибудь идеи, как это можно сделать, даже если он не использует модуль Bluetooth HC05?
Спасибо!
@Ronbon04, 👍0
1 ответ
Лучший ответ:
Да, это возможно. Согласно arduino.cc, Arduino Mega имеет 4 аппаратных последовательных порта, поэтому вы можете подключить 3 модуля HC-05 и при этом оставить 1 последовательный интерфейс. Mega — хороший выбор, когда вам нужно такое количество последовательных интерфейсов, поэтому на данный момент вам даже не нужен SoftwareSerial
. Вам необходимо будет правильно настроить модули HC-05 с главного устройства и дать им команду на подключение к правильным подчиненным модулям.
О SoftwareSerial
: Упомянутые выше последовательные интерфейсы являются «аппаратными» интерфейсами, что означает, что сам микроконтроллер содержит аппаратное обеспечение, которое самостоятельно выполняет основную часть приема/передачи без какой-либо необходимости в код. Библиотека Serial
затем только добавляет больший буфер для данных, функции-оболочки для записи в него и реагирует на прерывания, поступающие из аппаратного интерфейса. Но поскольку большинство микроконтроллеров имеют очень ограниченное количество аппаратных последовательных интерфейсов (часто только 1 или даже ни одного), библиотека SoftwareSerial
может оказаться полезной. Он эмулирует протокол UART (более профессиональный термин для последовательного интерфейса из мира Arduino) с помощью программного обеспечения (и некоторой помощи от прерываний). Это означает, что вы можете использовать его с любой парой контактов и даже определить с его помощью несколько интерфейсов. Но у него есть и недостатки. Например: одновременно может прослушиваться только 1 интерфейс SoftwareSerial
, вы не можете использовать высокие скорости передачи данных, он использует прерывания, которые могут вам понадобиться для приложения.
Тем не менее, я не думаю, что Bluetooth — лучший способ, если вы хотите протестировать только небольшое количество кнопок на подчиненное устройство. Просто настроить модули и правильно установить соединения слишком сложно. Вместо этого вы можете использовать радиомодули 433 МГц. Они не используют такой сложный протокол, как Bluetooth, поэтому это очень простое решение. В простейшем случае вам нужны только передатчики для ведомых и приемник для ведущего. Каждый ведомый может отправить короткий идентификатор, если кнопка была нажата. Затем мастер может получить эти данные. Конечно, если одновременно отправляет более одного подчиненного устройства, данные будут мусором. Но пока это не проблема, вы можете оставить все просто.
В Интернете можно найти множество руководств, объясняющих, как использовать эти модули. Вы даже можете найти готовые к использованию библиотеки.
- Подключение нескольких модулей HC-05 к одной компьютерной системе
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- Не нашел датчик отпечатков пальцев :( Arduino Mega 2560 Adafruit Fingerprint Sensor
- Bluetooth-модуль HC-05 неправильно считывает данные с моего телефона Android
- Arduino Uno: avrdude: stk500_recv(): программатор не отвечает
- В чем разница между delay() и delaymicroseconds()
- Программирование Arduino на Паскале?
- Последовательная связь arduino mega и D1 Wemos Mini
Отличный ответ! Это здорово, потому что изначально я пытался реализовать этот проект, используя модуль nRF24L01, но новичку в Arduino было нелегко приступить к нему. Я быстро поискал в Google и нашел эту статью о модулях 433 МГц: https://dronebotworkshop.com/433mhz-rf-modules-arduino/ Думаю, это может быть намного лучше для моего приложения!, @Ronbon04