The AT-09 is a module that contains a BLE chip (a CC2540/CC2541). This module allows to perform serial communication with the BLE chip thanks to an Rx and a Tx pin. This module is also very similar to the HM-10 module and is also compatible with it. So if you have some experience with the latter, you will get started quickly with the AT-09.
Let’s start by turning on the module.
Connecting the Arduino with the module
Let’s start by connecting the Arduino with the AT09 module in order to turn it on. To achieve that, we only need these two pins
AT-09 GND <-> Any Arduino GND Pin
AT-09 VCC <-> Any Arduino 5V Pin or 3.3V Pin
Turn on you Arduino, you should see the AT-09 led blink.
If you have a BLE smartphone, you can also open a BLE scanning app to scan for the AT-09. In my case, I used BlueCap on iPhone. The module was detected as device named ?. You can have a different result.
If you do not happen to detect the module in this step, it may be simply a problem with the configuration of the module. So keep reading to learn how to configure it.
In the next section, we will see how we can send commands to the module with the Arduino.
Sending our first command from the Arduino to the module
To allow the Arduino to communicate with the AT-09 BLE module, we use the serial interface (the TXD and RXD pins). Hopefully, Arduino allows to turn any pair of digital pins into a serial interface using the SoftwareSerial library.
After establishing the serial connection, We can start transmitting data to the AT-09 module. The module understands certain data as commands. These commands are the HM-10 AT commands. We will see some examples in this article. Additionally, you can download the reference here https://github.com/yostane/arduino-at-09/blob/master/hm-10-datasheet.pdf or by searching the internet.
Thus, in order to send command to the module we need to:
Connect the TXD and RXD pins of the module to any pair of Arduino pins other than 1 and 2.
Ask the Arduino to convert that pair of pins into a serial interface.
Send AT commands to the module and receive their responses.
Let’s connect the TXD and RXD pins with the Arduino like this: