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