server discoverbility added
This commit is contained in:
1 parent
6c0b3a277b
commit
c6140f63c4
4 files changed
+131
-80
No files matched your search
@@ -1,80 +0,0 @@
|
||||
#include <Arduino_GFX_Library.h>
|
||||
#include <Adafruit_ST7789.h>
|
||||
#include <Arduino.h>
|
||||
|
||||
#define TFT_DC D7
|
||||
#define TFT_RST D9
|
||||
|
||||
unsigned long SEC=0;
|
||||
unsigned long MIN=0;
|
||||
unsigned long HOUR=0;
|
||||
|
||||
unsigned long DAY=0;
|
||||
unsigned long MONT=0;
|
||||
unsigned long YEAR=2026;
|
||||
|
||||
unsigned long preMil = 0;
|
||||
const long interval = 1000;
|
||||
|
||||
Arduino_DataBus *bus = new Arduino_HWSPI(TFT_DC, -1);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0, true, 240, 240, 0, 0);
|
||||
|
||||
void setup() {
|
||||
gfx->begin();
|
||||
gfx->fillScreen(ST77XX_BLACK);
|
||||
|
||||
gfx->setTextColor(ST77XX_GREEN);
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
drawText(10,10, 2, "{");
|
||||
drawText(30,30,2,"Time: {");
|
||||
|
||||
gfx->setCursor(50, 50);
|
||||
gfx->printf("Hour: %d%c\n", HOUR, ",");
|
||||
|
||||
gfx->setCursor(50, 70);
|
||||
gfx->printf("Min: %d%c\n", MIN, ",");
|
||||
|
||||
gfx->setCursor(50, 90);
|
||||
gfx->printf("Sec: %d%c\n", SEC, ",");
|
||||
|
||||
drawText(30,110,2,"},");
|
||||
|
||||
drawText(30,130,2,"Date: {");
|
||||
|
||||
gfx->setCursor(50, 150);
|
||||
gfx->printf("Day: %d%c\n", DAY, ",");
|
||||
|
||||
gfx->setCursor(50, 170);
|
||||
gfx->printf("Mont: %d%c\n", MONT, ",");
|
||||
|
||||
gfx->setCursor(50, 190);
|
||||
gfx->printf("Year: %d%c\n", YEAR, ",");
|
||||
|
||||
drawText(10,210,2,"}");
|
||||
|
||||
updateClock();
|
||||
}
|
||||
|
||||
void updateClock(){
|
||||
unsigned long curMil = millis();
|
||||
|
||||
if (curMil - preMil >= interval) {
|
||||
preMil = curMil;
|
||||
SEC++;
|
||||
gfx->fillScreen(ST77XX_BLACK);
|
||||
}
|
||||
if (SEC >= 60) {SEC = 0; MIN++;}
|
||||
if (MIN >= 60) {MIN = 0; HOUR++;}
|
||||
if (HOUR >= 24) {HOUR = 0; DAY++;}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void drawText(int width, int hight,int size, const char* text) {
|
||||
gfx->setCursor(width, hight);
|
||||
gfx->setTextSize(size);
|
||||
gfx->println(text);
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
#include <Arduino_GFX_Library.h>
|
||||
#include <Adafruit_ST7789.h>
|
||||
#include <Arduino.h>
|
||||
|
||||
#include <BLEDevice.h>
|
||||
#include <BLEUtils.h>
|
||||
#include <BLEServer.h>
|
||||
|
||||
#define TFT_DC D7
|
||||
#define TFT_RST D9
|
||||
|
||||
unsigned long SEC=40;
|
||||
unsigned long MIN=0;
|
||||
unsigned long HOUR=0;
|
||||
|
||||
unsigned long DAY=0;
|
||||
unsigned long MONT=0;
|
||||
unsigned long YEAR=2026;
|
||||
|
||||
unsigned long preMil = 0;
|
||||
const long interval = 1000;
|
||||
|
||||
Arduino_DataBus *bus = new Arduino_HWSPI(TFT_DC, -1);
|
||||
Arduino_GFX *gfx = new Arduino_ST7789(bus, TFT_RST, 0, true, 240, 240, 0, 0);
|
||||
|
||||
#define SERVICE_UUID "791cadd7-de87-49f9-8986-94b7ae11940b"
|
||||
#define CHAR_TEST_UUID "3e4eac5b-eaa2-4e0c-a705-dcac4f606e01"
|
||||
#define CHAR_TIME_UUID "3e4eac5b-eaa2-4e0c-a705-dcac4f606e02"
|
||||
|
||||
#define deviceName "ESP32-Watch"
|
||||
|
||||
class CharacteristicCallbacks: public BLECharacteristicCallbacks {
|
||||
void onWrite(BLECharacteristic *pCharacteristic) override {
|
||||
String value = pCharacteristic->getValue();
|
||||
|
||||
if (value.length() == 0) return;
|
||||
|
||||
//Time characteristic check
|
||||
if (pCharacteristic->getUUID().equals(BLEUUID(CHAR_TIME_UUID))) {
|
||||
Serial.print("Uhrzeit empfangen: ");
|
||||
Serial.println(value);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
|
||||
gfx->begin();
|
||||
gfx->setFont(NULL);
|
||||
gfx->fillScreen(ST77XX_BLACK);
|
||||
|
||||
gfx->setTextColor(ST77XX_GREEN, ST77XX_BLACK);
|
||||
|
||||
initDevice();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
drawText(10,10, 2, "{");
|
||||
drawText(30,30,2,"Time: {");
|
||||
|
||||
gfx->setCursor(50, 50);
|
||||
gfx->printf("Hour: %d%c\n", HOUR, ',');
|
||||
|
||||
gfx->setCursor(50, 70);
|
||||
gfx->printf("Min: %d%c\n", MIN, ',');
|
||||
|
||||
gfx->setCursor(50, 90);
|
||||
gfx->printf("Sec: %d%c\n", SEC);
|
||||
|
||||
drawText(30,110,2,"},");
|
||||
|
||||
drawText(30,130,2,"Date: {");
|
||||
|
||||
gfx->setCursor(50, 150);
|
||||
gfx->printf("Day: %d%c\n", DAY, ',');
|
||||
|
||||
gfx->setCursor(50, 170);
|
||||
gfx->printf("Mont: %d%c\n", MONT, ',');
|
||||
|
||||
gfx->setCursor(50, 190);
|
||||
gfx->printf("Year: %d%c\n", YEAR);
|
||||
|
||||
drawText(10,210,2,"}");
|
||||
|
||||
updateClock();
|
||||
}
|
||||
void initDevice(){
|
||||
BLEDevice::init(deviceName);
|
||||
BLEServer *pServer = BLEDevice::createServer();
|
||||
BLEService *pService = pServer->createService(SERVICE_UUID);
|
||||
|
||||
//Test characteristic
|
||||
BLECharacteristic *pCharacteristic = pService->createCharacteristic(
|
||||
CHAR_TEST_UUID,
|
||||
BLECharacteristic::PROPERTY_READ);
|
||||
pCharacteristic->setValue("Hello World");
|
||||
|
||||
//Time
|
||||
BLECharacteristic *pCharacteristicTime = pService->createCharacteristic(CHAR_TIME_UUID,
|
||||
BLECharacteristic::PROPERTY_READ |
|
||||
BLECharacteristic::PROPERTY_WRITE);
|
||||
pCharacteristicTime->setCallbacks(new CharacteristicCallbacks());
|
||||
pCharacteristicTime->setValue("TIME");
|
||||
|
||||
pService->start();
|
||||
// BLEAdvertising *pAdvertising = pServer->getAdvertising(); // this still is working for backward compatibility
|
||||
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
|
||||
pAdvertising->addServiceUUID(SERVICE_UUID);
|
||||
pAdvertising->setScanResponse(true);
|
||||
pAdvertising->setMinPreferred(0x12);
|
||||
BLEDevice::startAdvertising();
|
||||
Serial.println("Characteristic defined! Now you can read it in your phone!");
|
||||
}
|
||||
|
||||
void updateClock(){
|
||||
unsigned long curMil = millis();
|
||||
|
||||
if (curMil - preMil >= interval) {
|
||||
preMil = curMil;
|
||||
SEC++;
|
||||
}
|
||||
if (SEC >= 60) {SEC = 0; MIN++;}
|
||||
if (MIN >= 60) {MIN = 0; HOUR++;}
|
||||
if (HOUR >= 24) {HOUR = 0; DAY++;}
|
||||
}
|
||||
void drawText(int width, int hight,int size, const char* text) {
|
||||
gfx->setCursor(width, hight);
|
||||
gfx->setTextSize(size);
|
||||
gfx->println(text);
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user