// Arduino Bluetooth modul HM-10 // nastavení propojovacích pinů Bluetooth a LED diody #define RX 9 #define TX 8 #define pinLED 13 // připojení knihovny SoftwareSerial #include #include // inicializace Bluetooth modulu z knihovny SoftwareSerial, LCD SoftwareSerial bluetooth(TX, RX); // inicializace pinu, lze vyměnit za jiné volné LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // zahájení komunikace s Bluetooth modulem // skrze Softwarovou sériovou linku rychlostí 9600 baud bluetooth.begin(9600); bluetooth.println("Arduino zapnuto, test Bluetooth."); // komunikace po sériové lince rychlostí 9600 baud Serial.begin(9600); Serial.println("Arduino zapnuto, test Bluetooth."); // nastavení pinu s LED diodou jako výstup pinMode(pinLED, OUTPUT); } void prepis(byte prvni){ Serial.print("První znak:"); bluetooth.print("První znak:"); Serial.println(char(prvni)); bluetooth.println(char(prvni)); } void ovladani(byte PrvniznakBLE){ switch (PrvniznakBLE) { // každý case obsahuje dekódování jednoho znaku case '0': // v případě přijetí znaku nuly vypneme LED diodu // a vypíšeme hlášku zpět do Bluetooth zařízení digitalWrite(pinLED, LOW); bluetooth.println("Vypni LED diodu."); break; case '1': // v případě přijetí jedničky zapneme LED diodu // a vypíšeme hlášku zpět do Bluetooth zařízení digitalWrite(pinLED, HIGH); bluetooth.println("Zapni LED diodu."); break; case 'a': // v případě přejetí znaku 'a' vypíšeme // čas od spuštění Arduina bluetooth.print("Cas od spusteni Arduina: "); bluetooth.print(millis()/1000); bluetooth.println(" vterin."); break; case '2': Serial.end(); bluetooth.end(); default: // v případě přijetí ostatních znaků // vytiskneme informaci o neznámé zprávě bluetooth.println("Neznamy prikaz."); } } void nacitaniArduino (){ byte Data; byte Prvniznak; if (Serial.available() > 0) { // načtení prvního znaku ve frontě do proměnné Prvniznak=Serial.read(); Serial.print("Odesláno: "); Serial.write(Prvniznak); bluetooth.print("Přijato: "); bluetooth.write(Prvniznak); while (Serial.available() > 0) { bluetooth.write(Data); Serial.write(Data); delay(10); Data=Serial.read(); } bluetooth.println(); Serial.println(); prepis(Prvniznak); ovladani(Prvniznak); } } int nacitaniBLE (){ byte Data; byte Prvniznak; if (bluetooth.available() > 0) { // načtení prvního znaku ve frontě do proměnné Prvniznak=bluetooth.read(); Serial.print("Přijato: "); Serial.write(Prvniznak); bluetooth.print("Odesláno: "); bluetooth.write(Prvniznak); lcd.begin(16, 1); lcd.print(Prvniznak); while (bluetooth.available() > 0) { bluetooth.write(Data); Serial.write(Data); lcd.begin(15, 1); lcd.print(Data); delay(10); Data=bluetooth.read(); } bluetooth.println(); Serial.println(); prepis(Prvniznak); ovladani(Prvniznak); } } void loop(){ lcd.begin(16, 2); lcd.print("Prislo BLE: "); nacitaniBLE(); nacitaniArduino(); delay(100); }//loop