-
Notifications
You must be signed in to change notification settings - Fork 0
/
esp32-d1mini-touch-buzzer.ino
89 lines (79 loc) · 2.67 KB
/
esp32-d1mini-touch-buzzer.ino
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
/**
* Turn ESP32 into a Bluetooth LE keyboard
* Get needed library: https://github.com/andi34/ESP32-BLE-Keyboard/archive/refs/heads/master.zip
*/
#include <BleKeyboard.h>
#include <KeyCodes.h>
#define BUTTON_PIN_F 2
#define BUTTON_PIN_C 4
#define SIGNAL_PIN 5
#define DEVICE_NAME "FJTouchBuzzer"
#define DEVICE_MANUFACTURER "Photobooth"
// Vorheriger Zustand des Foto-Touch-Buttons
int lastState_F = LOW;
// Aktueller Zustand des Foto-Touch-Buttons
int currentState_F;
// Vorheriger Zustand des Collage-Touch-Buttons
int lastState_C = LOW;
// Aktueller Zustand des Collage-Touch-Buttons
int currentState_C;
// Pin für die Status-LED
int LED = 16;
BleKeyboard bleKeyboard(DEVICE_NAME, DEVICE_MANUFACTURER, 100);
void setup() {
Serial.begin(115200);
Serial.println("Starting BLE work!");
bleKeyboard.setName(DEVICE_NAME);
bleKeyboard.begin();
// Konfiguriere Foto-Touch-Button-Pin als Eingang mit Pull-up-Widerstand
pinMode(BUTTON_PIN_F, INPUT_PULLUP);
// Konfiguriere Collage-Touch-Button-Pin als Eingang mit Pull-up-Widerstand
pinMode(BUTTON_PIN_C, INPUT_PULLUP);
// Konfiguriere Bewegungssensor-Pin als Eingang
pinMode(SIGNAL_PIN, INPUT);
// Konfiguriere LED-Pin als Ausgang
pinMode(LED, OUTPUT);
}
void loop() {
if(bleKeyboard.isConnected()) {
// Lese den Zustand der Tasten (Foto und Collage):
currentState_F = digitalRead(BUTTON_PIN_F);
currentState_C = digitalRead(BUTTON_PIN_C);
if(digitalRead(SIGNAL_PIN) == HIGH) {
// Bewegung erkannt
Serial.println("Movement detected.");
// Schalte die Status-LED ein
digitalWrite(LED, HIGH);
} else {
// Keine Bewegung erkannt
Serial.println("Did not detect movement.");
// Schalte die Status-LED aus
digitalWrite(LED, LOW);
}
// Foto-Touch-Button wurde gedrückt
if(lastState_F == HIGH && currentState_F == LOW) {
Serial.println("Touch-Button Foto press is detected");
Serial.println("Sending KEY_PAGE_UP key.");
// Sende den Tastenanschlag "KEY_PAGE_UP" über Bluetooth
bleKeyboard.write(KEY_PAGE_UP);
delay(500);
}
// Collage-Touch-Button wurde gedrückt
if(lastState_C == HIGH && currentState_C == LOW) {
Serial.println("Touch-Button Collage press is detected");
Serial.println("Sending KEY_PAGE_DOWN key.");
// Sende den Tastenanschlag "KEY_PAGE_DOWN" über Bluetooth
bleKeyboard.write(KEY_PAGE_DOWN);
delay(500);
}
lastState_F = currentState_F;
lastState_C = currentState_C;
} else {
// Wenn nicht verbunden, schalte die Onboard-LED alle 500 Millisekunden ein und aus
digitalWrite(LED, LOW);
delay(500);
digitalWrite(LED, HIGH);
delay(500);
}
delay(500);
}