#include /* Example Bluetooth Serial Passthrough Sketch by: Jim Lindblom SparkFun Electronics date: February 26,2013 license: Public domain This example sketch converts an RN-42 bluetooth module to communicate at 9600 bps (from 115200), and passes any serial data between Serial Monitor and bluetooth module. */ #include #include LiquidCrystal lcd(12,11,5,4,7,6); int bluetoothTx = 2; // TX-O pin of bluetooth mate, Arduino D2 int bluetoothRx = 3; // RX-I pin of bluetooth mate, Arduino D3 unsigned int i = 0; char buf[200]; SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); void setup() { Serial.begin(9600); // Begin the serial monitor at 9600bps bluetooth.begin(115200); // The Bluetooth Mate defaults to 115200bps bluetooth.print("$"); // Print three times individually bluetooth.print("$"); bluetooth.print("$"); // Enter command mode delay(100); // Short delay, wait for the Mate to send back CMD bluetooth.println("U,9600,N"); // Temporarily Change the baudrate to 9600, no parity // 115200 can be too fast at times for NewSoftSerial to relay the data reliably bluetooth.begin(9600); // Start bluetooth serial at 9600 lcd.begin(16, 2); lcd.clear(); lcd.print("hello, world!"); for (int j=0;j<200;j++){ buf[j]='\0'; } } void loop() { MatchState ms; if(bluetooth.available()) // If the bluetooth sent any characters { // Send any characters the bluetooth prints to the serial monitor char str = (char)bluetooth.read(); buf[i] = str; i++; if (i==199) i=0; Serial.print(buf); } else { ms.Target(buf,0); char res = ms.Match(".*,(%a+)"); if (res==REGEXP_MATCHED) { lcd.clear(); lcd.print(ms.GetCapture(buf,0)); } } if(Serial.available()) // If stuff was typed in the serial monitor { // Send any characters the Serial monitor prints to the bluetooth bluetooth.print((char)Serial.read()); } // and loop forever and ever! }