If you’d like to wirelessly attach your Arduino to another device (such as a phone or tablet) via bluetooth, I’d recommend the serial bluetooth module from Elecrow.com.
Here is what they look like:
The module has firmware from BOLUTEK. The PDF document with all of the available BOLUTEK commands is BLK-MD-BC04-B_AT COMMANDS . I also document the AT commands in the sample source code (aduino sketch) below.
There was no sample code that I could find for using these with an Arduino so I wrote my own. The following sketch (load it into any arduino) sets up the module in slave mode so you can connect to it with any blue tooth enabled device. The PIN code is 232323 as you can see from the source.
# Blue Tooth Module Code # from earl@microcontrollerelectronics.com # #include <SoftwareSerial.h> //Software Serial Port #define RxD 6 #define TxD 7 #define INTERVAL 10000 long previousMillis = 0; char recvChar; SoftwareSerial blueToothSerial(RxD,TxD); void setup() { Serial.begin(9600); while (!Serial); delay(2000); pinMode(RxD, INPUT); pinMode(TxD, OUTPUT); setupBlueToothConnection(); } void BT_cmd(String cmd) { char recvChar; if (cmd != "") { blueToothSerial.print(cmd + "\r\n"); delay(200); } while(blueToothSerial.available()) { recvChar = blueToothSerial.read(); Serial.print(recvChar); } } void loop() { if(millis() - previousMillis > INTERVAL) { previousMillis = millis(); BT_cmd("AT+STATE"); BT_cmd("AT+LSP"); } if(blueToothSerial.available()){ recvChar = blueToothSerial.read(); Serial.print(recvChar); } if(Serial.available()){ recvChar = Serial.read(); blueToothSerial.print(recvChar); } } void setupBlueToothConnection() { /* AT Check if the command terminal work normally AT+RESET Software reboot AT+VERSION Get firmware, bluetooth, HCI and LMP version AT+HELP List all the commands AT+NAME Get/Set local device name AT+PIN Get/Set pin code for pairing AT+BAUD Get/Set baud rate AT+CLEAR Remove the remembered remote address AT+LADDR Get local bluetooth address AT+RNAME Get remote device name AT+DEFAULT Restore factory default AT+CMODE Get/Set connection mode AT+BIND Get/Set bind bluetooth address AT+COD Get/Set local class of device AT+IAC Get/Set inquiry access code AT+ROLE Get/Set master or slave mode AT+STATE Get current state AT+SENM Get/Set security and encryption mode AT+IPSCAN Get/Set page and inquiry scan parameters AT+SNIFF Get/Set sniff power table parameters AT+LOWPOWER Start/Stop low power mode AT+UARTMODE Get/Set uart stop bits and parity AT+ENABLEIND Enable/Disable Indication print AT+LSP List Paired Device List AT+RESETPDL Reset Paired Device List AT+REMOVEPDL Remove one entry from Paired Device List AT+SUPERVISION Get/Set supervision timeout AT+AUTOINQ Start/Stop auto inquiry AT+INQ Start inquiry AT+INQC Cancel ongoing inquiry (M)AT+AUTOCONN Start/Stop auto connection (M)AT+INQM Get/Set inquiry parameters (M)AT+CONNECT Connect to a remote device by BD address */ blueToothSerial.begin(9600); delay(1000); BT_cmd("AT+ENABLEIND1"); //Enable Indications BT_cmd("AT+ROLE0"); //set the bluetooth to work in slave mode BT_cmd("AT+NAMEArduinoBTSlave"); //set the bluetooth name BT_cmd("AT+PIN232323"); //set PIN BT_cmd("AT+AUTOINQ1"); //Automatic Search Serial.println("\r\nThe slave bluetooth is inquirable!"); }
2 comments
Thanks for letting me know about this module. I’m building a Bluetooth controlled coffee machine with arduino and I’ve been looking for an easy way to connect it. but I’m having trouble choosing between all the chips out there. Have you looked at this bluetooth chipset guide ? Do you think it makes sense to maybe use an nRF51822 connected to Arduino?
Author
Thanks for sharing that guide. It is interesting. The nRF51822 would be a good choice too as it is supported on the arduino here for example. Besides the chip set, I’d look at how it is packaged in the ‘module’, size and price too of course.