Very simple use of multiple HC-05 slaves?

Here is what I want to do. Maybe this is dirt simple...? --> A master HC-05 is to pair with multiple slave HC-05s. All the (identical) slaves are operating at the same time. The master sends out an "address" (a number 1,2,3...). All the slaves pick it up. Their attached Arduinos determine from the number sent out if they must do something...or not. Is this scenario with multiple (identical) slave HC-05s workable? I know I can do this with NRF24L01s.

bluetooth pairing is one to one.

You can also do this using BLE (Bluetooth Low Energy), but don´t expect it to be easy. If you want to take a look --> ArduinoBLE - Arduino Reference

Also you might have in mind that distance between the boards might be an issue. Using NRF24L01 you will have some hundred meters of range. BLE is for < 70 m and this distance can be much less indoors to be effective.

Last, but not least, HC-05 modules doesn´t support BLE. You´ll need HC-09 modules.

I would consider as well the HC-12 (real ones, not clones)

You get long distance, low consumption depending on the mode. They are super easy to integrate (Serial communication) and no pairing is required nor decision on who is the master and who are the slaves if configured the same way, it's a very simple to use broadcast architecture.

So basically very similar to what OP had in mind for the HC-05 in terms of broadcast capabilities

Yes, Arduino pairing is supposed to be one to one. What if there is another
identical HC-05 in the mix? During the pairing process, why wouldnt the master
pair with both HCs simultaneously since the master cant tell one from the other
and bluetooth is omnidirectional? Would one HC get left out? Wouldnt the master
"think" it is pairing with just one HC if both HCs (slaves) were identical in every way?

I wasnt aware of the HC-12s. I'll do some checking on this. Thanx for your input.

It has nothing to do with Arduino. it's how that BT version works.

You pair with a slave device through its UUID. That ID is usually non modifiable, burnt into the chip. so it's unlikely you can find two identical HC-05

Thank you for the UUID info. That answers my question completely (sad to say)! I'll have
to go back to NRF24s, unless there is a better/another simple hardware solution.

NRF24s are complete overkill for me. All I want is for an Arduino contained in a linear (1-D)
network of Arduinos to broadcast out a 2-byte response when that Arduino receives a change
of state thru one single digital a sensor. All the remaining network of Arduinos will
also receive this 2-byte broadcast and update their output control responses accordingly. The
control code for each is unique and relatively complicated (at least for me).

Many Arduinos will do nothing. In general, only adjacent Arduinos (along the linear path) will
have interest in what the broadcasting Arduino sends out. No Arduino will have to broadcast a
2-byte change of state because of the broadcast info they just received. The time interval between
most any broadcast from any Arduino is measured in seconds...10 secs or more much of the time.

Hope this makes some sense. The code to assemble this sort of network using bluetooth looked
fairly simple (if my hope about multiple pairings was correct), but it appears that wont be possible
because of UUID. The code for NRF24s is more complicated, but doable. Setting up the hardware
is straight forward.

Im hoping Im missing a better alternative to NRF24s.

Thank you all for your helpful inputs.

What did you not like about the HC12's?

how many slave HC-05s do you want to connect

I would go HC12 if you want to keep a serial interface, super easy to set up transparent wireless broadcast

the NRF24s could easily be used too (mesh) - with their quirks as I find them sensitive to the quality of the power supply.

With HC-05 you could with a bit of work send a message to adjacent devices, just need to do that one by one and handle cases where a device is busy, retries etc. (There are AT commands to list all UUIDs. Of devices in range or this could be hard coded for each arduino if you want to limit the chatter)

JML: Thanx for the HC12 info. I guess I havent spent any time looking into this
device. It's a 433 MHz transceiver as I understand it. Not sure if an antenna is required if
transmissions are to be within a large room only. I would have to attach a "wire" 83mm
antenna if I used RK24s. I am familiar to some extent with the Arduino code involved
with simple RK24 transmissions. Is HC12 code of similar complexity? Do you have
a good reference that addresses code and Arduino wiring? Thanx in advance.

As I posted earlier, transmissions will be 2 bytes to all transceivers no quicker than every
few seconds. Only transceivers "relatively" adjacent to the originating transceiver will
respond to a transmission, and that response doesnt require its own broadcast or any
return acknowledgement. I cant ever see there would be any collisions or device-busy
issues. My main problem is the control-code logic needed to operate passive devices
that comes from the affected Arduinos.

On the other hand, if a linear net of HC-05s "knew" all the UUIDs of the HC-05s in the net,
then you are telling me that any one HC-05 could broadcast to all the others one by one
serially...? Yes? That code would be simple with no feedback required to the originating
HC-05. Im thinking I could find all UUIDs using my cell phone...? Maybe this is mental mush!

the spring antenna that ships with the module is good enough. Goes quite far

google will give you tons of tutorials and experiments, here is one

once configured (which you can do once outside your app), it's really just a serial communication

Im looking at 16-18 total devices in a linear net with any one device acting
as a master and the rest as slaves. There is to be no broadcast feedback
from the slaves. Master broadcasts of 2 bytes only would occur no sooner than
every few secs. It's altogether likely that only those slaves close to/adjacent to the
master would be "interested" in the broadcast as their associated Arduinos would
initiate control actions.

I have played with up to 5 in the same vicinity and all was going fine. Never tried with 18 but as long as they all don't speak at the same time, that should be manageable

the range is pretty good even at low power so if you are just in one room it's likely that they will all hear all the other nodes

Cattledog, There's nothing for me to like or dislike about HC-12s. I didnt know
about their existence until you guys pointed them out. Now Im better versed, and
I will have a serious look at them.

sorry for the late reply,a DH-19 Dongle can do what you want to do you will need 3 of them look at the video on youtube i would post the link to it but i don't know if u can in here

1 Like

Hc 05: Thank you for that DH-19 info. I found a 3 min YouTube video that
gives a good explanation of how the dongle works. The demo used a cell phone
with an app that communicates with the dongle:

OK, I would need the dongle to communicate with an Arduino. Do you have thoughts
about that? Im doing a search of this now.

Im thinking that if I know the UUIDs of all HCs in the net (gotten from the cell phone
app), then any one of the HCs could be a master at any time and send out a 2-byte
broadcast to all the others. To make this possible, the Arduino driving that particular
master HC-05 would cycle thru all the known UUIDs. Is this a possible scenario?

You would be better to in slave the dongle with the master HC-05 with the Arduino
connected, then what ever the master sends out will go to every slave connected and any slave or all slaves can send a response back to the master device. No need to do anything with the UUID's of the HC-05 the dongle deals with the communication.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.