update mqtt
This commit is contained in:
3
.vscode/extensions.json
vendored
3
.vscode/extensions.json
vendored
@@ -3,5 +3,8 @@
|
|||||||
// for the documentation about the extensions.json format
|
// for the documentation about the extensions.json format
|
||||||
"recommendations": [
|
"recommendations": [
|
||||||
"platformio.platformio-ide"
|
"platformio.platformio-ide"
|
||||||
|
],
|
||||||
|
"unwantedRecommendations": [
|
||||||
|
"ms-vscode.cpptools-extension-pack"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,6 @@ platform = espressif32
|
|||||||
board = esp32dev
|
board = esp32dev
|
||||||
framework = arduino
|
framework = arduino
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
|
|
||||||
erropix/ESP32 AnalogWrite@^0.2
|
erropix/ESP32 AnalogWrite@^0.2
|
||||||
Aasim-A/AsyncTimer
|
Aasim-A/AsyncTimer
|
||||||
|
|||||||
215
src/led.cpp
215
src/led.cpp
@@ -5,17 +5,19 @@
|
|||||||
uint64_t lastmillis = 0;
|
uint64_t lastmillis = 0;
|
||||||
|
|
||||||
//_led ledarray[] = {
|
//_led ledarray[] = {
|
||||||
c_led dimFL(DIM_FL, "dim_FL");
|
c_led dimFL(DIM_FL, "dim_FL", 0);
|
||||||
c_led dimFR(DIM_FR, "dim_FR");
|
c_led dimFR(DIM_FR, "dim_FR", 1);
|
||||||
c_led dimRL(DIM_RL, "dim_RL");
|
c_led dimRL(DIM_RL, "dim_RL", 2);
|
||||||
c_led dimRR(DIM_RR, "dim_RR");
|
c_led dimRR(DIM_RR, "dim_RR", 3);
|
||||||
c_led blinkFL(BLINK_FL, "blink_FL");
|
c_led blinkFL(BLINK_FL, "blink_FL", 4);
|
||||||
c_led blinkFR(BLINK_FR, "blink_FR");
|
c_led blinkFR(BLINK_FR, "blink_FR", 5);
|
||||||
c_led interiourLed(INTERIOUR, "interiour");
|
c_led interiourLed(INTERIOUR, "interiour", 6);
|
||||||
|
|
||||||
void c_led::begin(void)
|
void c_led::begin(void)
|
||||||
{
|
{
|
||||||
Serial.printf("LED %s begin", _ledName.c_str());
|
Serial.printf("LED %s begin", _ledName.c_str());
|
||||||
|
ledcSetup(_PWMChannel, DIM_FPWM, DIM_RESBITS);
|
||||||
|
ledcAttachPin(_pin, _PWMChannel);
|
||||||
pinMode(_pin, OUTPUT);
|
pinMode(_pin, OUTPUT);
|
||||||
digitalWrite(_pin, false);
|
digitalWrite(_pin, false);
|
||||||
_ledstate = false;
|
_ledstate = false;
|
||||||
@@ -30,7 +32,7 @@ void c_led::setState(e_ledstate newstate)
|
|||||||
_timer = 0;
|
_timer = 0;
|
||||||
Serial.printf("led %s: setstate %s\n", _ledName.c_str(), ledStateToString(newstate).c_str());
|
Serial.printf("led %s: setstate %s\n", _ledName.c_str(), ledStateToString(newstate).c_str());
|
||||||
}
|
}
|
||||||
if(newstate == led_blink)
|
if (newstate == led_blink)
|
||||||
{
|
{
|
||||||
_ledstate = false;
|
_ledstate = false;
|
||||||
}
|
}
|
||||||
@@ -55,58 +57,155 @@ void c_led::init()
|
|||||||
//_newstate = true;
|
//_newstate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void c_led::handle_dim_on(void)
|
||||||
|
{
|
||||||
|
if (_newstate)
|
||||||
|
{
|
||||||
|
if (_ledstate)
|
||||||
|
{
|
||||||
|
setState(led_on);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_timer = millis();
|
||||||
|
_newstate = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
uint64_t currentmillis = millis();
|
||||||
|
if (currentmillis - _timer > _dimstepms)
|
||||||
|
{
|
||||||
|
_timer = currentmillis;
|
||||||
|
ledcWrite(_PWMChannel, _dimmer);
|
||||||
|
_dimmer += _dimstep;
|
||||||
|
}
|
||||||
|
if (_dimmer > DIM_MAX)
|
||||||
|
{
|
||||||
|
setState(led_on);
|
||||||
|
_dimmer = DIM_MAX;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void c_led::handle_dim_off(void)
|
||||||
|
{
|
||||||
|
if (_newstate)
|
||||||
|
{
|
||||||
|
if (!_ledstate)
|
||||||
|
{
|
||||||
|
setState(led_off);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_timer = millis();
|
||||||
|
_newstate = false;
|
||||||
|
}
|
||||||
|
_timer = millis();
|
||||||
|
_newstate = false;
|
||||||
|
}
|
||||||
|
uint64_t currentmillis = millis();
|
||||||
|
if (currentmillis - _timer > _dimstepms)
|
||||||
|
{
|
||||||
|
_timer = currentmillis;
|
||||||
|
ledcWrite(_PWMChannel, _dimmer);
|
||||||
|
_dimmer -= _dimstep;
|
||||||
|
}
|
||||||
|
if (_dimmer < _dimstep)
|
||||||
|
{
|
||||||
|
setState(led_off);
|
||||||
|
_dimmer = DIM_MIN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void c_led::handle_blink(void)
|
||||||
|
{
|
||||||
|
_newstate = false;
|
||||||
|
uint64_t currentmillis = millis();
|
||||||
|
if (currentmillis - _timer > BLINKSPEED)
|
||||||
|
{
|
||||||
|
_ledstate = !_ledstate;
|
||||||
|
if (_ledstate)
|
||||||
|
{
|
||||||
|
_dimmer = DIM_MIN;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_dimmer = DIM_MAX;
|
||||||
|
}
|
||||||
|
_timer = currentmillis;
|
||||||
|
//Serial.printf("led %s update, state = %s\n", _ledName.c_str(), String(_ledstate).c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_ledstate)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (_dimmer >= DIM_MAX)
|
||||||
|
{
|
||||||
|
_dimmer = DIM_MAX;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (currentmillis - _timer2 > 5)
|
||||||
|
{
|
||||||
|
_dimmer += 64;
|
||||||
|
_timer2 = currentmillis;
|
||||||
|
}
|
||||||
|
//Serial.printf("led %s update, dimmer = %u\n", _ledName.c_str(), _dimmer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (_dimmer <= DIM_STEP)
|
||||||
|
{
|
||||||
|
_dimmer = DIM_MIN;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//Serial.printf("led %s update, dimmer = %u\n", _ledName.c_str(), _dimmer);
|
||||||
|
if (currentmillis - _timer2 > 5)
|
||||||
|
{
|
||||||
|
_dimmer -= 64;
|
||||||
|
_timer2 = currentmillis;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ledcWrite(_PWMChannel, _dimmer);
|
||||||
|
}
|
||||||
|
|
||||||
void c_led::update(void)
|
void c_led::update(void)
|
||||||
{
|
{
|
||||||
//Serial.printf("led %s update, state = %s, newstate = %s\n", _ledName.c_str(), ledStateToString(_state).c_str(), String(_newstate).c_str());
|
if (_newstate)
|
||||||
|
{
|
||||||
|
Serial.printf("led %s update, state = %s\n", _ledName.c_str(), ledStateToString(_state).c_str());
|
||||||
|
}
|
||||||
switch (_state)
|
switch (_state)
|
||||||
{
|
{
|
||||||
case led_off:
|
case led_off:
|
||||||
{
|
{
|
||||||
digitalWrite(_pin, false);
|
//digitalWrite(_pin, false);
|
||||||
_ledstate = false;
|
_ledstate = false;
|
||||||
|
ledcWrite(_PWMChannel, DIM_MIN);
|
||||||
|
_newstate = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case led_dim_on:
|
case led_dim_on:
|
||||||
{
|
{
|
||||||
if (_newstate)
|
handle_dim_on();
|
||||||
{
|
|
||||||
_dimmer = 0;
|
|
||||||
_timer = millis();
|
|
||||||
_newstate = false;
|
|
||||||
}
|
|
||||||
uint64_t currentmillis = millis();
|
|
||||||
if (currentmillis - _timer > _dimstepms)
|
|
||||||
{
|
|
||||||
_timer = currentmillis;
|
|
||||||
analogWrite(_pin, _dimmer, DIM_RES);
|
|
||||||
_dimmer += _dimstep;
|
|
||||||
}
|
|
||||||
if (_dimmer > DIM_RES)
|
|
||||||
{
|
|
||||||
setState(led_on);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case led_on:
|
case led_on:
|
||||||
{
|
{
|
||||||
digitalWrite(_pin, true);
|
//digitalWrite(_pin, true);
|
||||||
|
ledcWrite(_PWMChannel, DIM_MAX);
|
||||||
_newstate = false;
|
_newstate = false;
|
||||||
_ledstate = true;
|
_ledstate = true;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case led_dim_off:
|
case led_dim_off:
|
||||||
{
|
{
|
||||||
|
handle_dim_off();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case led_blink:
|
case led_blink:
|
||||||
{
|
{
|
||||||
uint64_t currentmillis = millis();
|
handle_blink();
|
||||||
if (currentmillis - _timer > BLINKSPEED)
|
|
||||||
{
|
|
||||||
//Serial.printf("%s timer expired\n", _ledName.c_str());
|
|
||||||
_ledstate = !_ledstate;
|
|
||||||
digitalWrite(_pin, _ledstate);
|
|
||||||
_timer = currentmillis;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -122,16 +221,16 @@ void c_led::toggle(void)
|
|||||||
{
|
{
|
||||||
|
|
||||||
case led_on:
|
case led_on:
|
||||||
setState(led_off);
|
setState(led_dim_off);
|
||||||
break;
|
break;
|
||||||
case led_dim_on:
|
case led_dim_on:
|
||||||
setState(led_off);
|
setState(led_dim_off);
|
||||||
break;
|
break;
|
||||||
case led_off:
|
case led_off:
|
||||||
setState(led_on);
|
setState(led_dim_on);
|
||||||
break;
|
break;
|
||||||
case led_dim_off:
|
case led_dim_off:
|
||||||
setState(led_on);
|
setState(led_dim_on);
|
||||||
break;
|
break;
|
||||||
case led_blink:
|
case led_blink:
|
||||||
setState(noChange);
|
setState(noChange);
|
||||||
@@ -145,20 +244,20 @@ void initLeds(void)
|
|||||||
{
|
{
|
||||||
Serial.println("InitLeds");
|
Serial.println("InitLeds");
|
||||||
|
|
||||||
dimFL.begin(); //
|
dimFL.begin(); //
|
||||||
dimFR.begin(); //setState(led_on);
|
dimFR.begin(); //setState(led_on);
|
||||||
dimRL.begin(); //setState(led_on);
|
dimRL.begin(); //setState(led_on);
|
||||||
dimRR.begin(); //etState(led_on);
|
dimRR.begin(); //etState(led_on);
|
||||||
blinkFR.begin(); //setState(led_on);
|
blinkFR.begin(); //setState(led_on);
|
||||||
blinkFL.begin(); //setState(led_on);
|
blinkFL.begin(); //setState(led_on);
|
||||||
interiourLed.begin(); //setState(led_on);
|
interiourLed.begin(); //setState(led_on);
|
||||||
|
|
||||||
analogWriteResolution(10);
|
analogWriteResolution(10);
|
||||||
|
|
||||||
dimFL.setState(led_on);
|
dimFL.setState(led_dim_on);
|
||||||
dimFR.setState(led_on);
|
dimFR.setState(led_dim_on);
|
||||||
dimRL.setState(led_on);
|
dimRL.setState(led_dim_on);
|
||||||
dimRR.setState(led_on);
|
dimRR.setState(led_dim_on);
|
||||||
blinkFR.setState(led_blink);
|
blinkFR.setState(led_blink);
|
||||||
blinkFL.setState(led_blink);
|
blinkFL.setState(led_blink);
|
||||||
interiourLed.setState(led_on);
|
interiourLed.setState(led_on);
|
||||||
@@ -202,43 +301,43 @@ void setLedPattern(e_ledpattern setpattern)
|
|||||||
{
|
{
|
||||||
case allOff:
|
case allOff:
|
||||||
{
|
{
|
||||||
setLeds(led_off, led_off, led_off, led_off, led_off, led_off, led_off);
|
setLeds(led_dim_off, led_dim_off, led_dim_off, led_dim_off, led_dim_off, led_dim_off, led_dim_off);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case allOn:
|
case allOn:
|
||||||
{
|
{
|
||||||
setLeds(led_on, led_on, led_on, led_on, led_on, led_on, led_on);
|
setLeds(led_dim_on, led_dim_on, led_dim_on, led_dim_on, led_dim_on, led_dim_on, led_dim_on);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case panic:
|
case panic:
|
||||||
{
|
{
|
||||||
//setLeds(noChange, noChange, noChange, noChange, led_off, led_off, noChange);
|
//setLeds(noChange, noChange, noChange, noChange, led_off, led_off, noChange);
|
||||||
setLeds(noChange, noChange, noChange, noChange, led_blink, led_blink, noChange);
|
setLeds(noChange, noChange, led_blink, led_blink, led_blink, led_blink, noChange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case night:
|
case night:
|
||||||
{
|
{
|
||||||
setLeds(led_on, led_on, led_on, led_on, noChange, noChange, led_on);
|
setLeds(led_dim_on, led_dim_on, led_dim_on, led_dim_on, noChange, noChange, led_dim_on);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case turnLeft:
|
case turnLeft:
|
||||||
{
|
{
|
||||||
setLeds(noChange, noChange, noChange, noChange, led_off, led_blink, noChange);
|
setLeds(noChange, noChange, noChange, led_blink, led_off, led_blink, noChange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case turnRight:
|
case turnRight:
|
||||||
{
|
{
|
||||||
setLeds(noChange, noChange, noChange, noChange, led_blink, led_off, noChange);
|
setLeds(noChange, noChange, led_blink, noChange, led_blink, led_off, noChange);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case interiourOn:
|
case interiourOn:
|
||||||
{
|
{
|
||||||
setLeds(noChange, noChange, noChange, noChange, noChange, noChange, led_on);
|
setLeds(noChange, noChange, noChange, noChange, noChange, noChange, led_dim_on);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case interiourOff:
|
case interiourOff:
|
||||||
{
|
{
|
||||||
setLeds(noChange, noChange, noChange, noChange, noChange, noChange, led_off);
|
setLeds(noChange, noChange, noChange, noChange, noChange, noChange, led_dim_off);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
20
src/led.h
20
src/led.h
@@ -12,8 +12,12 @@
|
|||||||
#define INTERIOUR 5 //
|
#define INTERIOUR 5 //
|
||||||
|
|
||||||
#define NUM_LEDS 7
|
#define NUM_LEDS 7
|
||||||
#define DIM_TIME 1000
|
#define DIM_TIME 3000
|
||||||
#define DIM_RES 1024
|
#define DIM_RESBITS 10
|
||||||
|
#define DIM_FPWM 5000
|
||||||
|
#define DIM_RES (int)(pow(2, DIM_RESBITS) - 1)
|
||||||
|
#define DIM_MIN 0
|
||||||
|
#define DIM_MAX (DIM_RES - 1)
|
||||||
#define DIM_STEP 255
|
#define DIM_STEP 255
|
||||||
#define DIM_STEPMS (DIM_TIME / DIM_STEP)
|
#define DIM_STEPMS (DIM_TIME / DIM_STEP)
|
||||||
|
|
||||||
@@ -59,6 +63,7 @@ class c_led
|
|||||||
const uint8_t _pin;
|
const uint8_t _pin;
|
||||||
e_ledstate _state;
|
e_ledstate _state;
|
||||||
uint64_t _timer;
|
uint64_t _timer;
|
||||||
|
uint64_t _timer2;
|
||||||
uint32_t _dimmer;
|
uint32_t _dimmer;
|
||||||
bool _newstate;
|
bool _newstate;
|
||||||
bool _ledstate;
|
bool _ledstate;
|
||||||
@@ -66,12 +71,17 @@ class c_led
|
|||||||
uint32_t _dimstep;
|
uint32_t _dimstep;
|
||||||
String _ledName;
|
String _ledName;
|
||||||
|
|
||||||
|
const int _PWMChannel;
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
public:
|
void handle_dim_on( void );
|
||||||
c_led(uint8_t pin, String name) : _pin(pin)
|
void handle_dim_off(void );
|
||||||
{
|
void handle_blink( void );
|
||||||
|
|
||||||
|
public:
|
||||||
|
c_led(uint8_t pin, String name, int PWMChannel) : _pin(pin), _PWMChannel(PWMChannel)
|
||||||
|
{
|
||||||
_ledName = name;
|
_ledName = name;
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
// Update these with values suitable for your network.
|
// Update these with values suitable for your network.
|
||||||
byte mac[] = {0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED};
|
byte mac[] = {0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED};
|
||||||
IPAddress MQTTserver(192, 168, 2, 5);
|
IPAddress MQTTserver(192, 168, 2, 3);
|
||||||
|
|
||||||
const char *SSID = "poes";
|
const char *SSID = "poes";
|
||||||
const char *PWD = "Rijnstraat214";
|
const char *PWD = "Rijnstraat214";
|
||||||
|
|||||||
Reference in New Issue
Block a user