Add ESP-NOW control
This commit is contained in:
parent
c7cf91a412
commit
00bcf55c83
2 changed files with 45 additions and 0 deletions
41
src/EspNowControl.cpp
Normal file
41
src/EspNowControl.cpp
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#ifndef EspNowControl_cpp
|
||||||
|
#define EspNowControl_cpp
|
||||||
|
|
||||||
|
#include <esp_now.h>
|
||||||
|
#include <WiFi.h>
|
||||||
|
#include "LedManager.cpp"
|
||||||
|
|
||||||
|
class EspNowControl {
|
||||||
|
typedef struct payload {
|
||||||
|
int id;
|
||||||
|
bool on;
|
||||||
|
float brightness;
|
||||||
|
unsigned long timer;
|
||||||
|
} payload;
|
||||||
|
|
||||||
|
static LedManager *_leds;
|
||||||
|
|
||||||
|
static void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
|
||||||
|
payload data;
|
||||||
|
memcpy(&data, incomingData, sizeof(data));
|
||||||
|
_leds->setLedProperties(data.id, data.on, data.brightness, data.timer);
|
||||||
|
}
|
||||||
|
|
||||||
|
EspNowControl();
|
||||||
|
|
||||||
|
public:
|
||||||
|
static bool init(LedManager *leds) {
|
||||||
|
_leds = leds;
|
||||||
|
|
||||||
|
WiFi.mode(WIFI_STA);
|
||||||
|
|
||||||
|
if (esp_now_init() != ESP_OK)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
esp_now_register_recv_cb(OnDataRecv);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -2,10 +2,13 @@
|
||||||
#include "BluetoothLEDCallback.cpp"
|
#include "BluetoothLEDCallback.cpp"
|
||||||
#include "BluetoothLightControl.cpp"
|
#include "BluetoothLightControl.cpp"
|
||||||
#include "BluetoothService.cpp"
|
#include "BluetoothService.cpp"
|
||||||
|
#include "EspNowControl.cpp"
|
||||||
#include "LedManager.cpp"
|
#include "LedManager.cpp"
|
||||||
#include "TimerManager.cpp"
|
#include "TimerManager.cpp"
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
LedManager *EspNowControl::_leds = 0; // WTF, C++?
|
||||||
|
|
||||||
#define FADE_IN_DURATION 500
|
#define FADE_IN_DURATION 500
|
||||||
#define FADE_OUT_DURATION 1000
|
#define FADE_OUT_DURATION 1000
|
||||||
|
|
||||||
|
@ -52,6 +55,7 @@ void setup() {
|
||||||
|
|
||||||
_btService.init();
|
_btService.init();
|
||||||
_btService.start();
|
_btService.start();
|
||||||
|
EspNowControl::init(&_leds);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue