I wanted to interface my iPhone 6S mobile phone with Arduino Nano using BLE Bluetooth connection. Searching in Google, I found an interesting board, which costs just few Euros, called HM-10. I bought it on Amazon Japan, and received it few days ago. Now, I am writing a simple guide on how to perform the setup and connect it to your iPhone, or any other BLE Bluetooth device.
First of all, I connected the HM-10 module to my desktop PC, using a Serial to USB adapter. The configuration of the HM-10 is possible by setting the module into configuration mode: it is necessary to press the button on the board and then plug in the power pin (5V) into the board. The configuration commands are explained in the data-sheet: HM-10 datasheet. HM-10 module requires only 4 pins: VCC (3.3V or 5V), GND (0V), RX and TX. The board communicates using 3.3V TTL serial communication. For this reason, it is recommended that input signals do not exceed 3.3V, to avoid damaging the board.
After performing the module configuration (device name and so on) using AT commands, it was possible to connect to the module using the iPhone 6S. Using AT command "AT+name Davide", the board name has been set to "Davide".
I used the application "HM10 Bluetooth Serial" made by Alex van der Lugt. After connecting to the HM-10 module, it is possible to send ASCII messages using BLE Bluetooth. These messages will be forwarded to the PC using serial communication. For this purpose, the communication speed, on PC side, should be set to 9600 baud.
The picture above shows the messages sent from the iPhone to the PC, through the HM-10, and also the messages received by the iPhone from the PC. The picture below shows the message received by the PC, using COM7. For software communication, I used "Serial Monitor" function included in Arduino IDE.
As the next step, I will use this cheap adapter in order to connect the iPhone (or any other phone equipped with Android) to the Fuelino. This will allow to receive, in real time, measurement data from Fuelino, and also to calibrate Fuelino maps while running the engine, with a simple touch of the mobile screen.