Hey fellas, in this post we will see what are the AT commands and why they are necessary for HC-05 Bluetooth module. I have presented a detailed discussion on HC-05, its interface with Arduino UNO and their simulation in Proteus in my previous post. If you are not familiar with the subject it is highly recommended to go through my previous post before reading this post.
HC-05 AT Commands and Comparison of HC-05 and HC-06
HC-05 is the Bluetooth module which perks up any embedded product with wireless connectivity that can be used either for data communication, control or configuring the device. HC-05 communicates with any microcontroller over UART (Universal Asynchronous Receiver / Transmitter), microcontroller tell the Bluetooth module to perform a typical task through a special set of commands which are AT commands, these commands are the subject of this post.
AT commands, (AT comes from ATtention) are commands that are used to control modems from any other microcontroller or processor. AT commands are commonly used in GSM / GPRS modules, let us understand AT commands with the help of an example. Assume that the Arduino UNO is attached to the GSM module over UART and system is programmed in such a way that when a certain event occurs it sends SMS to the remote user, so when that event occurs Arduino sends instruction to the GSM module / modem to send a particular SMS to the remote user. This instruction which commands the GSM module to send SMS is AT command.
Likewise HC-05 Bluetooth module functions, it receives the AT commands from Arduino UNO connected to the UART and perform the action accordingly.
HC 05 AT commands:
Following is the list of the HC-05 AT commands along with their functions
|AT+VERSION?||Get the software version|
|AT+ORGL||Restore default status|
|AT+ADDR?||Get module Bluetooth address|
|AT+NAME?||/Inquire device’s name|
|AT+RNAME?Param1||Inquire remote Bluetooth device’s name|
|AT+ CLASS?||Inquire remote Bluetooth device’s name|
|AT+IAC=Param1||Set inquire access code|
|AT+ INQM?||Inquire access mode|
|AT+ PSWD?||Inquire passkey|
|AT+UART=Param1, Param2, Param3||Set serial parameter|
|AT+CMODE=Param1||Set connection mode|
|AT+BIND=Param1||Set – bind Bluetooth address|
|AT+POLAR=Param1,Param2||Set – drive indication of LED and connection status|
|AT+PIO=Param1,Param2||Set PIO single port output|
|AT+MPIO=Param1||Set PIO multiple port output|
|AT+MPIO?||Inquire PIO port input|
|AT+IPSCAN?||Inquire page scan and inquire scan parameter|
|AT+SNIFF?||Inquire—SNIFF energy parameter|
|AT+SENM=Param1, Param2||Set safe and encryption mode|
Comparison between HC-05 and HC-06
HC-06 is a successor of the HC-05 Bluetooth Module, thus both modules have similar fundamental working. Both the module interface with the Arduino development board using UART, both modules operate on same voltage level, both have same transmit power. Both HC-05 and HC-06 have same internal architecture, the primary difference between HC-05 and HC-06 is that, HC-05 can be used in both Master or Slave configuration that is it can initiate the connection or accept the connection, but on the other hand HC-05 can only be used as a slave, that it only connects to the master device and cannot initiate the connection itself.