I'm attempting to send data between an iPad and Arduino via Bluetooth.
I read several online tutorials but I'm confused about the UUIDs used in them.
How do I find the UUIDs used by services and characteristics for the specific Bluetooth module connected to the Arduino?
Is there an AT command for this? Can they be set? Are they a constant?
This a pretty simple app and I have the Bluetooth communicating with the Arduino via the Terminal program on my Mac. The iOS app just needs to transmit and receive a few bytes of data. Do I really need all the code involved with Core Bluetooth or is there an easier way? What's the simplest, fastest way to implement 2 way communication of a few bytes via Bluetooth?
It appears that a HC-06 Bluetooth module in not BLE and is not compatable with iOS devices. I have succeeded connecting it to my Mac and have written a test app using ORSSerialPort
Related
We're developing a mobile app that will need to communicate over Bluetooth with one of our devices.
We can use BLE for the communication (propriety protocol) but at some point we also need to transfer a file from the iOS app to the device. The file is too big to be transferred over BLE and we will need to do so via classical Bluetooth.
The supported BT profiles don't support any kind of file transfer.
Some places mention that we can join the MFI program; would that
mean that we will be able to have our own profile/protocol over
classical BLE?
Any chance that Bonjour can help us?
Thanks!
I have an iOS app that I have written and maintain, and was wondering what would be a good way to lock down the device to a BLE microcontroller. I am currently using an iPod Touch which has BLE out of the box along with a BLuno microcontroller. So far this combo has worked very well for me, however anyone who downloads the app I have been working on can pair to the BLuno microcontroller, which kind of defeats some of the security implementations put in by the app. What would be a viable solution to locking down the microcontroller to a specific iOS device, that way other people couldn't hijack the microcontroller?
You can "whitelist" your device by configuring the BLE chip using AT commands.
Since you're using this in an arduino environment then fire up the SoftwareSerial example sketch and select the correct rx and tx pins for your arduino and the correct baud rate of the BLE chip.
in the serial terminal send the following AT Commands
AT
AT+RADD?
this should reply with something like
OK
OK+RADD:7ED33C16D201
then set this mac to be whitelisted
AT+AD07ED33C16D201
AT+ALLO1
AT+RESET
To turn off whitelisting if something goes wrong do the following
AT+ALLO0
AT+RESET
I would suggest reading the HM Bluetooth Datasheet. This will explain the AT codes and a lot more.
we are about to start developing an app for iOS that reads data sent via Bluetooth from a device. Which framework should we use if the Bluetooth device that sends the data is not BLE 4.0? In addition to this, if it is possible to develop to app by using a different framework, will the same app also be able to connect to BLE 4.0?
Any pointer is highly appreciated.
Thanks in advance for any pointer.
The framework you are looking for is the ExternalAccessory.framework (although there are limitations). You can use it and the Corebluetooth.framework inside the same app, but they will not be related on which devices they can connect to. Corebluetooth is Bluetooth low energy only. Check this answer and the related links for more information on using the ExternalAccessory.framework :
How to use bluetooth classic instead of le
I have created universal device application to transfer any kind of files via bluetooth using GameKit Framework.
My question is how to create on Desktop Application with same process or there any Framework? That can communicate also on the device. Can i have any sample please or tips how to do it.
There is Core Bluetooth that used low energy protocol. But i don't know how?
Anyone please give some idea or anything that i can use it.
Thank you
The Bluetooth functionality of the GameKit framework is iOS-only (see GKSession), so you won’t be able to use that on a Mac.
The CoreBluetooth framework on the other hand is available on both Mac and iOS devices supporting Bluetooth LE, with the one difference that the CBPeripheralManager is not available on Mac, so you can’t advertise a service on Mac. However you can have your iOS device act as a peripheral and connect from the Mac acting as a central. Data transfer should still work both ways.
The BTLE Central Peripheral Transfer sample code should be a good starting point.
Given I have a bluetooth device which returns some serial data - how do I read it using CoreBluetooth?
There is no Characteristics or Services. Just some binary data in known (actually obd ii) format.
I think iOS blocks the access to the serial port over bluetooth.
You might need to buy extra hardware, use WiFi, or jailbreak it.
RS232 for iOS device
Try using roqyOBD if you manage to jailbreak your iPhone. I believe that it creates a TCP server that you can use FuzzyLuke's OBD2Kit and thus read the PID's that are sent from the OBD-II interface to the iPhone.
Let me know how it goes! I myself am tinkering OBD-II with iPhone and am learning just like you.
You probably have a Bluetooth 2.0 or 3.0 device which is not BTLE compliant. CoreBluetooth is an implementation of BTLE, hence you can't use said device on (non-jailbroken) iOS. There are a lot of BTLE compliant devices these days, so better get one of those, if you want to interface with iOS.