I'm trying to connect an ESP32 to my flow running on a raspberry pi using BLE.
The nodes i'm using for this can be found here
I'm using the included "Heart rate" example flow from the noble bluetooth package.
The ESP32 code can be found here
Both the example flow and my custom flow find the device just fine and output an object with all the appropriate peripheral IDs and other information, but passing this object from the scanner node does not trigger the BLE device node. There are no errors or any other kind of output from the device node, nor does the node ever go into it's "connecting" phase.
I can connect to my ESP32 and subscribe to the heart rate topic just fine by using nRF Connect on my phone.
Any suggestions as to what I'm doing wrong here?
What version of NR and node.js are you running? (you can find this in the startup log)
What devce is running NR?
Are you running the ESP32 as a client or server?
can you explain the following a bit more"
I'm running NodeRED version 1.2.9 on a raspberry pi 3 B+
As you can see from the ESP code, it's running as a server.
NR v1.2.9 is fairly old at this point. Have you thought about upgrading?
and the explaination of your statement I asked for is...
So when i set up a BLE scanner node and inject it with a start command, the node then returns an object that contains all the information of the BLE device i wish to connect to. I can output this object into a debug node and everything looks correct. However, when i pass this object to a BLE device node like shown in the "heart rate" example, the BLE device node doesn't start connecting to the device. The BLE device outputs no errors or anything, even the "connecting" indicator doesn't show up like it should.
So that I'm clear, you have NR runing on a Pi 3 B+, an ESP32 running as a server and some 'other' BLE device.
Did you install the prereq for node-red-contrib-noble-bluetooth?
Requires @abandonware/noble module for bluetooth communication
No. the ESP runs the server and has a subscription service for the heart rate measurement.
And yes, i have noble installed. Now that I'm looking deeper into this, it looks like there are some compatibility issues with my ESP32 and BlueZ on Raspberry pi. I can find my device with bluetoothctl scan but when i try to pair it i get an authentication canceled error from BlueZ. Maybe ESP32 BLE & GATT is no longer supported by BlueZ?
I've updated NodeRED to the latest version. Now the connecting symbol shows up below the device node. Still stuck connecting though.
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.