Garage mit RasPi, Versuche mit BLE
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
#include <BLEDevice.h>
|
||||
#include <BLEUtils.h>
|
||||
#include <BLEServer.h>
|
||||
|
||||
#define ONBOARD_LED 2
|
||||
|
||||
#define SERVICE_UUID "a17881b1-519a-45e5-85c3-ae3acf763e19"
|
||||
#define CHARACTERISTIC_UUID "05f4798d-3165-455a-931d-e0aceb723423"
|
||||
|
||||
|
||||
bool clientConnected = false;
|
||||
|
||||
class MyServerCallbacks: public BLEServerCallbacks {
|
||||
void onConnect (BLEServer * pServer) {
|
||||
clientConnected = true;
|
||||
};
|
||||
void onDisconnect (BLEServer * pServer) {
|
||||
clientConnected = false;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
void print_wakeup_reason(){
|
||||
esp_sleep_wakeup_cause_t wakeup_reason;
|
||||
|
||||
wakeup_reason = esp_sleep_get_wakeup_cause();
|
||||
|
||||
switch(wakeup_reason)
|
||||
{
|
||||
case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("Wakeup caused by external signal using RTC_IO"); break;
|
||||
case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Wakeup caused by external signal using RTC_CNTL"); break;
|
||||
case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Wakeup caused by timer"); break;
|
||||
case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Wakeup caused by touchpad"); break;
|
||||
case ESP_SLEEP_WAKEUP_ULP : Serial.println("Wakeup caused by ULP program"); break;
|
||||
default : Serial.printf("Wakeup was not caused by deep sleep: %d\n",wakeup_reason); break;
|
||||
}
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
pinMode(ONBOARD_LED,OUTPUT);
|
||||
|
||||
/* Bluetooth */
|
||||
Serial.println("Starting BLE");
|
||||
BLEDevice::init("LeWe Garage Door Impulse");
|
||||
BLEServer *pServer = BLEDevice::createServer();
|
||||
|
||||
pServer->setCallbacks(new MyServerCallbacks());
|
||||
|
||||
BLEService *pService = pServer->createService(SERVICE_UUID);
|
||||
BLECharacteristic *pCharacteristic = pService->createCharacteristic(CHARACTERISTIC_UUID,BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE);
|
||||
pCharacteristic->setValue("Hallo");
|
||||
pService->start();
|
||||
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
|
||||
pAdvertising->addServiceUUID(SERVICE_UUID);
|
||||
pAdvertising->setScanResponse(true);
|
||||
// pAdvertising->setMinPreferred(0x06); // functions that help with iPhone connections issue
|
||||
// pAdvertising->setMinPreferred(0x12);
|
||||
|
||||
// BLEDevice::startAdvertising();
|
||||
pAdvertising->start();
|
||||
|
||||
Serial.println("Bluetooth characteristic now active");
|
||||
|
||||
|
||||
/* Wait 10 seconds for the clients to find us */
|
||||
for (int i = 0; i < 10; i++) {
|
||||
delay(900);
|
||||
digitalWrite(ONBOARD_LED,HIGH);
|
||||
delay(100);
|
||||
digitalWrite(ONBOARD_LED,LOW);
|
||||
}
|
||||
|
||||
|
||||
/* Enter deep sleep */
|
||||
/* print_wakeup_reason();
|
||||
|
||||
// configure wakeup source
|
||||
esp_sleep_enable_ext0_wakeup(GPIO_NUM_33,1); //1 = High, 0 = Low
|
||||
|
||||
esp_deep_sleep_start();*/
|
||||
}
|
||||
|
||||
void loop() {
|
||||
if (clientConnected) {
|
||||
Serial.println("Client connected");
|
||||
}
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
delay(400);
|
||||
digitalWrite(ONBOARD_LED,HIGH);
|
||||
delay(100);
|
||||
digitalWrite(ONBOARD_LED,LOW);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user