I am developing a solution where, Fixed BLE beacon detects a moving BLE device and sends the relevant data to the server using wifi/ethernet/etc. All the examples I have found have BLE beacons talking to the mobile phone which in my case isnt true. AFIK an embedded systems engineer can configure the fixed beacon to send data to server. BUT is there any ready to use solution that lets the beacon connect to backend? Thanks.
You mention having a "[f]ixed BLE beacon [detect] a moving BLE device". Understand that this is very different from the way an Apple-style BLE iBeacon works, which is a transmit only device. (I mention this because the question is tagged with ibeacon.)
What you are describing is probably better described as either a beacon scanner or a BLE scanner. My company has a Raspberry Pi-based product that can scan for beacons and take programmatic action based on detections. We have a blog post about how to make a beacon turn on a lamp using this device, but you could just as easily make it contact a server when a BLE device is detected.
Related
I have a BLE temperature sensor, which should send measurements to an ESP32 via a BLE connection and my plan was that the ESP32 could send the measurements via WiFi to my database (Firebase Realtime Database). However, I have seen from a few tutorials that a mqtt server would be neccesary (see the screenshot below - link to the video: https://www.youtube.com/watch?v=PBYCG-ypvRY). Could someone please explain to me why the mqtt component is neccesary? Currently I am measuring temperatures using my ESP32 (without the BLE temperautre sensors) and sending them directly to the database, so I am confused as to why with BLE I would need a mqtt server.
Thanks for your help in advance!
You don't need MQTT. It's just one of the IoT-friendly protocol alternatives (like HTTPS, AMQP, CoAP, homebrew, etc) available to you for device-to-server communication. There are pros and cons to each one. It's up to you to choose whatever solution is relevant to your system.
If you've already implemented the Firebase HTTPS interface and it does the job, you're done.
If you are having problems, note that the Google IoT Core also prescribes MQTT (or, alternatively HTTPS) as an underlying messaging protocol - used together with the Device SDK for Embedded C. But this is for people who want to have a large-scale authentication and management solution for their devices. By all means, stick to your existing solution if it works.
Is it possible to setup multiple BLE profiles using Bluez, for use in a single connection?
For example to allow a device to support a GATT profile and also use a PAN network access profile simultaneously.
Thanks
Update:
Thanks for the comment.
What I'm trying to achieve is an embedded device which connects to a phone app over BLE.
This connection will support a GATT protocol for accessing attributes on the device, but also BLE tethering so that the device has a direct internet connection through the phone. And both will work simultaneously.
Its possible. PAN profile and GATT are not depend on each other.
I have a single BLE beacon and I try to connect to it with multiple Android phones in order to get the RSSI, and see who is the closest to it.
But, just after the first phone connect to the beacon (via a BluetoothGatt), the beacon never appears from the scan again in the scan results of the other phones, so they cannot connect to it too.
The only solution I see is to scan without connection and get the RSSI from the scan result, but I don't think that is an elegant solution.
Is there a way to have multiple connection to a single BLE beacon and get the RSSI ?
Thank you
It's up to the BLE device to decide if it supports more than one connection. If it only wants to support one connection, it can be programmed to stop advertising when a connection is established. From a client perspective, there's not much you can do about that. If you can modify the firmware in the beacon, you can add support for multiple connections.
Otherwise there is nothing wrong with using the rssi in the advertising packet (although you can't make use of BLE security (pairing / bonding)).
I'm quite new in Arduino and Bluetooth devices, but need to demostrate some vulnerabilities of IoT devices and I want to try hack HC-06 bluetooth controller to send instruction to Arduino. I want to try MAC spoofing method and second method is about exploiting advertisement channels of BLE devices by sniffing. I don't actually know if HC-06 is considered as BLE device or if it has advertisement channels.
I'm really new in this field and I've just read some articles about basics. This is used as a school project.
HC-06 is not a BLE device, is Bluetooth v2.0 + EDR and it does not has advertisement channels.
Go for HM-10 to have a proper BLE device.
Some references that may help you to get into the topic:
Old documentation about BR/EDR versions:
https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-121r2.pdf
Recent documentation on BLE security:
https://csrc.nist.gov/csrc/media/publications/sp/800-121/rev-1/final/documents/draft-sp800-121_rev1.pdf
What I want to do is have a complete control on beacon remotely through web/mobile app (RestApi). I already gone through following sites,
1)https://nectarkast.com/index.html
2)https://kontakt.io/products-and-solutions/beacon-software/
How do these site working? Are they using some custom beacons that has Wifi or network connecting functionality, any help would be really appreciable.
You need (a) a beacon with internet access or (b) a base station near those beacons with internet access and the ability to connect to them via Bluetooth to configure them.
It is also possible to build beacons using Lora, SigFox, or other IoT radio technologies that effectively gives a very low power internet connection that uses little battery.