1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | #include “ArduinoBLE.h” /* eindeutige UUID bestimmen: https://www.guidgenerator.com/online-guid-generator.aspx https://www.uuidgenerator.net/ BLERead | BLEWrite | BLENotify -> schreiben, lesen, Info */ // Name BLE-Service BLEService LEDSchalten(“19b10000-e8f2-537e-4f6c-d104768a1214”); BLEUnsignedCharCharacteristic Auswahl(“19b10000-e8f2-537e-4f6c-d104768a1214”, BLERead | BLEWrite | BLENotify); enum Ampel { ROT = 5, GELB, GRUEN }; void setup() { Serial.begin(9600); // pinMode festlegen for (int i = ROT; i <= GRUEN; i++) { pinMode(i, OUTPUT); } // BLE starten if (!BLE.begin()) Serial.println(“Bluetooth-Modul konnte nicht gestartet werden!”); else Serial.println(“Bluetooth-Modul erfolgreich gestartet!”); // Name festlegen (wird in der App angezeigt) und den Service (LEDSchalten) zuweisen BLE.setLocalName(“LEDs schalten”); BLE.setAdvertisedService(LEDSchalten); // Auswahl als Platzhalter für den in der App gewählten Wert LEDSchalten.addCharacteristic(Auswahl); // Service LEDSchalten hinzufügen BLE.addService(LEDSchalten); // Startwert für die Kommunikation schreiben Auswahl.writeValue(0); // Zuweisung starten BLE.advertise(); } void loop() { // auf die Verbindung zu Geräten warten BLEDevice Verbindung = BLE.central(); // wenn der Arduino mit einem Gerät verbunden ist … if (Verbindung) { Serial.println(“Verbunden … ”); // solange der Arduino mit einem Gerät verbunden ist … while (Verbindung.connected()) { /* Dezimal -> Hex-Umrechnung 10 -> A 11 -> B 12 -> C 20 -> 14 21 -> 15 22 -> 16 30 -> 1E */ if (Auswahl.written()) { if (Auswahl.value() == 10) { Serial.print(Auswahl.value()); Serial.println(“ -> rot ein”); digitalWrite(ROT, HIGH); } if (Auswahl.value() == 11) { Serial.print(Auswahl.value()); Serial.println(F(“ -> gelb ein”)); digitalWrite(GELB, HIGH); } if (Auswahl.value() == 12) { Serial.print(Auswahl.value()); Serial.println(F(“ -> gr\u00fcn ein”)); digitalWrite(GRUEN, HIGH); } if (Auswahl.value() == 20) { Serial.print(Auswahl.value()); Serial.println(F(“ -> rot aus”)); digitalWrite(ROT, LOW); } if (Auswahl.value() == 21) { Serial.print(Auswahl.value()); Serial.println(F(“ -> gelb aus”)); digitalWrite(GELB, LOW); } if (Auswahl.value() == 22) { Serial.print(Auswahl.value()); Serial.println(F(“ -> gr\u00fcn aus”)); digitalWrite(GRUEN, LOW); } // Ampel schalten if (Auswahl.value() == 30) { Serial.print(Auswahl.value()); Serial.println(F(“ -> Ampel schalten”)); digitalWrite(ROT, HIGH); delay(5000); digitalWrite(GELB, HIGH); delay(1000); digitalWrite(ROT, LOW); digitalWrite(GELB, LOW); digitalWrite(GRUEN, HIGH); delay(3000); digitalWrite(GRUEN, LOW); digitalWrite(GELB, HIGH); delay(1000); digitalWrite(GELB, LOW); digitalWrite(ROT, HIGH); } } } } } |
Letzte Aktualisierung: