#include #include IRsend irsend; SoftwareSerial EEBlue(10, 11); // RX | TX String readString, protocol, frequency; unsigned long value; void setup() { pinMode(10, INPUT); pinMode(11, OUTPUT); Serial.begin(9600); EEBlue.begin(9600); Serial.println("Bluetooth Started!"); } void loop() { while (EEBlue.available()) { delay(3); char c = EEBlue.read(); readString += c; } readString.trim(); if (readString.length() >0) { Serial.println("Bluetooth Command: "); Serial.println(readString); for (int i = 0; i < readString.length(); i++) { if (readString.substring(i, i+1) == ",") { protocol = readString.substring(0, i); frequency = readString.substring(i+1); break; } } Serial.print("Protocol: "); Serial.println(protocol); Serial.print("Frequency: "); Serial.println(frequency); if (protocol == "NEC"){ irsend.sendNEC(StrToHex(frequency.c_str()), 32); delay(1000); //5 second delay between each signal burst Serial.println("NEC IR is sent ..."); } if (protocol == "SAMSUNG"){ irsend.sendSAMSUNG(StrToHex(frequency.c_str()), 32); delay(1000); Serial.println("SAMSUNG IR is sent ..."); } // INITIALIZING THE STRINGS TO NULL readString=""; protocol=""; frequency=""; } // Feed all data from termial to bluetooth if (Serial.available()) EEBlue.write(Serial.read()); } uint64_t StrToHex(const char* str) { return (uint64_t) strtoul(str, 0, 16); }