MidroomNew Light Sensor
This commit is contained in:
@@ -9,8 +9,9 @@ private:
|
|||||||
bool inv, state;
|
bool inv, state;
|
||||||
int onMS;
|
int onMS;
|
||||||
unsigned long curMS;
|
unsigned long curMS;
|
||||||
|
byte bright;
|
||||||
public:
|
public:
|
||||||
leds(int ledPin, int onms = 300, bool inverse = false);
|
leds(int ledPin, int onms = 300, byte bright = 255, bool inverse = false);
|
||||||
//~leds();
|
//~leds();
|
||||||
void start();
|
void start();
|
||||||
void tick();
|
void tick();
|
||||||
|
|||||||
@@ -5,15 +5,24 @@
|
|||||||
|
|
||||||
#include <Adafruit_BME280.h>
|
#include <Adafruit_BME280.h>
|
||||||
#include <MHZ19.h>
|
#include <MHZ19.h>
|
||||||
|
#include <RunningMedian.h>
|
||||||
|
//#include "RemoteDebug.h" //https://github.com/JoaoLopesF/RemoteDebug
|
||||||
|
|
||||||
//#define POWER_SENS (7)
|
#define R_LED (13) //D7
|
||||||
|
#define G_LED (12) //D6
|
||||||
|
#define B_LED (0) //D3
|
||||||
|
#define MOV_SENS (16) //D0
|
||||||
|
#define P_SENS (14) //D5
|
||||||
|
#define WF_LED 2
|
||||||
|
#define HOST_NAME "MidRoom"
|
||||||
|
#define TOPIC "/home/midroom"
|
||||||
|
|
||||||
Adafruit_BME280 bme;
|
Adafruit_BME280 bme;
|
||||||
MHZ19 mhz19;
|
MHZ19 mhz19;
|
||||||
|
RunningMedian samples = RunningMedian(10 * sizeof(int));
|
||||||
|
|
||||||
unsigned long crun;
|
unsigned long crun, cRunADC;
|
||||||
uint32_t co2;
|
uint32_t co2;
|
||||||
bool firstRun;
|
bool firstRun;
|
||||||
float p, t, h;
|
float p, t, h;
|
||||||
//uint16_t cntSec;
|
|
||||||
int light, lightPrev;
|
int light, lightPrev;
|
||||||
|
|||||||
@@ -10,12 +10,16 @@
|
|||||||
|
|
||||||
[env:nodemcuv2]
|
[env:nodemcuv2]
|
||||||
platform = espressif8266
|
platform = espressif8266
|
||||||
board = esp12e
|
;board = esp12e
|
||||||
|
board = d1
|
||||||
framework = arduino
|
framework = arduino
|
||||||
board_build.f_cpu = 26000000L
|
;board_build.f_cpu = 26000000L
|
||||||
board_build.ldscript = eagle.flash.1m.ld
|
;board_build.ldscript = eagle.flash.1m.ld
|
||||||
;board_build.flash_mode = dout
|
;board_build.flash_mode = dout
|
||||||
upload_protocol = espota
|
upload_protocol = espota
|
||||||
upload_port = 192.168.1.132
|
upload_port = 192.168.1.114
|
||||||
lib_deps =
|
lib_deps =
|
||||||
jwrw/ESP_EEPROM @ ^2.0.0
|
jwrw/ESP_EEPROM @ ^2.0.0
|
||||||
|
robtillaart/RunningMedian @ ^0.3.3
|
||||||
|
;joaolopesf/RemoteDebug @ 3.0.5
|
||||||
|
|
||||||
@@ -1,21 +1,27 @@
|
|||||||
#include <leds.h>
|
#include <leds.h>
|
||||||
|
|
||||||
leds::leds(int pinLED, int onms, bool inverse)
|
leds::leds(int pinLED, int onms, byte bright, bool inverse)
|
||||||
{
|
{
|
||||||
ledPin = pinLED;
|
ledPin = pinLED;
|
||||||
inv = inverse;
|
inv = inverse;
|
||||||
onMS = onms;
|
onMS = onms;
|
||||||
state = false;
|
state = false;
|
||||||
|
this->bright = bright;
|
||||||
|
// if(inv)
|
||||||
|
// analogWrite(ledPin, bright);
|
||||||
|
// else
|
||||||
|
// analogWrite(ledPin, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void leds::start()
|
void leds::start()
|
||||||
{
|
{
|
||||||
curMS = millis();
|
curMS = millis();
|
||||||
state = true;
|
state = true;
|
||||||
if(!inv)
|
if(!inv) digitalWrite(ledPin, 1);
|
||||||
analogWrite(ledPin, 100);
|
//analogWrite(ledPin, bright);
|
||||||
else
|
else
|
||||||
analogWrite(ledPin, 0);
|
//analogWrite(ledPin, 0);
|
||||||
|
digitalWrite(ledPin, 0);
|
||||||
//digitalWrite(ledPin, !inv);
|
//digitalWrite(ledPin, !inv);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,10 +29,15 @@ void leds::tick()
|
|||||||
{
|
{
|
||||||
if(state && ((curMS + onMS) < millis())){
|
if(state && ((curMS + onMS) < millis())){
|
||||||
state = false;
|
state = false;
|
||||||
if(inv)
|
// if(inv)
|
||||||
analogWrite(ledPin, 1);
|
// analogWrite(ledPin, bright);
|
||||||
|
// else
|
||||||
|
// analogWrite(ledPin, 0);
|
||||||
|
// //digitalWrite(ledPin, inv);
|
||||||
|
if(inv) digitalWrite(ledPin, 1);
|
||||||
|
//analogWrite(ledPin, bright);
|
||||||
else
|
else
|
||||||
analogWrite(ledPin, 0);
|
//analogWrite(ledPin, 0);
|
||||||
//digitalWrite(ledPin, inv);
|
digitalWrite(ledPin, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,6 @@
|
|||||||
#include <leds.h>
|
#include <leds.h>
|
||||||
#include <ESP_EEPROM.h>
|
#include <ESP_EEPROM.h>
|
||||||
|
|
||||||
#define R_LED (13)
|
|
||||||
#define G_LED (12)
|
|
||||||
#define B_LED (0)
|
|
||||||
#define MOV_SENS (16)
|
|
||||||
#define P_SENS (14)
|
|
||||||
|
|
||||||
bool meas = false;
|
bool meas = false;
|
||||||
short minCnt;
|
short minCnt;
|
||||||
bool send_move = false;
|
bool send_move = false;
|
||||||
@@ -43,7 +37,8 @@ void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties
|
|||||||
void onMqttUnsubscribe(uint16_t packetId);
|
void onMqttUnsubscribe(uint16_t packetId);
|
||||||
void onMqttPublish(uint16_t packetId); */
|
void onMqttPublish(uint16_t packetId); */
|
||||||
|
|
||||||
leds g_led(G_LED, 100);
|
leds g_led(G_LED, 300, 100, true);
|
||||||
|
leds b_led(B_LED, 300, 100, true);
|
||||||
|
|
||||||
//leds r_led(R_LED, 100);
|
//leds r_led(R_LED, 100);
|
||||||
|
|
||||||
@@ -88,7 +83,7 @@ void setup() {
|
|||||||
mqttClient.onPublish(onMqttPublish); */
|
mqttClient.onPublish(onMqttPublish); */
|
||||||
mqttClient.onMessage(onMqttMessage);
|
mqttClient.onMessage(onMqttMessage);
|
||||||
mqttClient.setServer(mqtt_server, 1883);
|
mqttClient.setServer(mqtt_server, 1883);
|
||||||
mqttClient.setClientId("MidRoom");
|
mqttClient.setClientId("MidRoomT");
|
||||||
|
|
||||||
pinMode(MOV_SENS, INPUT_PULLUP);
|
pinMode(MOV_SENS, INPUT_PULLUP);
|
||||||
pinMode(P_SENS, OUTPUT);
|
pinMode(P_SENS, OUTPUT);
|
||||||
@@ -96,15 +91,17 @@ void setup() {
|
|||||||
pinMode(G_LED, OUTPUT);
|
pinMode(G_LED, OUTPUT);
|
||||||
pinMode(B_LED, OUTPUT);
|
pinMode(B_LED, OUTPUT);
|
||||||
//analogWriteRange(100);
|
//analogWriteRange(100);
|
||||||
digitalWrite(P_SENS, HIGH);
|
digitalWrite(P_SENS, LOW);
|
||||||
|
//digitalWrite(WF_LED, HIGH);
|
||||||
|
digitalWrite(R_LED, LOW);
|
||||||
|
digitalWrite(G_LED, HIGH);
|
||||||
digitalWrite(B_LED, HIGH);
|
digitalWrite(B_LED, HIGH);
|
||||||
digitalWrite(R_LED, HIGH);
|
|
||||||
//Serial1.println(F("Begin MH-Z19"));
|
//Serial1.println(F("Begin MH-Z19"));
|
||||||
for(int i = 0; i < 5; i++){
|
for(int i = 0; i < 5; i++){
|
||||||
Serial1.print('.');
|
//Serial1.print('.');
|
||||||
delay(1000);
|
delay(1000);
|
||||||
}
|
}
|
||||||
Serial1.println();
|
//Serial1.println();
|
||||||
mhz19.begin(Serial);
|
mhz19.begin(Serial);
|
||||||
Wire.begin();
|
Wire.begin();
|
||||||
bool status = bme.begin(BME280_ADDRESS_ALTERNATE);
|
bool status = bme.begin(BME280_ADDRESS_ALTERNATE);
|
||||||
@@ -132,6 +129,7 @@ void setup() {
|
|||||||
connectToWifi();
|
connectToWifi();
|
||||||
|
|
||||||
cRun = millis();
|
cRun = millis();
|
||||||
|
cRunADC = millis();
|
||||||
//Serial1.println(F("Start Loop"));
|
//Serial1.println(F("Start Loop"));
|
||||||
//(R_LED, HIGH);
|
//(R_LED, HIGH);
|
||||||
}
|
}
|
||||||
@@ -140,38 +138,76 @@ void loop() {
|
|||||||
float pt, tt, ht;
|
float pt, tt, ht;
|
||||||
char v[11];
|
char v[11];
|
||||||
static int stDelay = 0;
|
static int stDelay = 0;
|
||||||
|
|
||||||
ArduinoOTA.handle();
|
ArduinoOTA.handle();
|
||||||
g_led.tick();
|
g_led.tick();
|
||||||
|
b_led.tick();
|
||||||
//r_led.tick();
|
//r_led.tick();
|
||||||
if(digitalRead(MOV_SENS) > 0){
|
if(digitalRead(MOV_SENS) > 0){
|
||||||
if(mvDelay == -1) mqttClient.publish("/home/midroom/move", 1, false, "1");
|
if(mvDelay == -1){
|
||||||
|
g_led.start();
|
||||||
|
mqttClient.publish(TOPIC"/move", 1, false, "1");
|
||||||
|
}
|
||||||
mvDelay = mvDelaySet;
|
mvDelay = mvDelaySet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((cRunADC + 99) < millis()){
|
||||||
|
cRunADC = millis();
|
||||||
|
adc = analogRead(A0);
|
||||||
|
samples.add(adc);
|
||||||
|
adc = samples.getMedian();
|
||||||
|
if(abs(adc - lastADC) > 10){
|
||||||
|
lastADC = adc;
|
||||||
|
itoa(adc, v, 10);
|
||||||
|
g_led.start();
|
||||||
|
mqttClient.publish(TOPIC"/light", 1, false, v);
|
||||||
|
}
|
||||||
|
}
|
||||||
/*if (digitalRead(MOV_SENS) != old_mov){
|
/*if (digitalRead(MOV_SENS) != old_mov){
|
||||||
old_mov = digitalRead(MOV_SENS);
|
old_mov = digitalRead(MOV_SENS);
|
||||||
//Serial1.println(F("Change mov detected"));
|
//Serial1.println(F("Change mov detected"));
|
||||||
mqttClient.publish("/home/midroom/move", 1, false, old_mov ? "1" : "0");
|
mqttClient.publish(TOPIC"/move", 1, false, old_mov ? "1" : "0");
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if(cRun + 999 < millis()){
|
if((cRun + 999) < millis()){
|
||||||
cRun = millis();
|
cRun = millis();
|
||||||
|
// Serial.println("ADC:"+String(adc));
|
||||||
|
// itoa(mvDelay, v, 10);
|
||||||
|
// mqttClient.publish(TOPIC"/movesec", 0, false, v);
|
||||||
|
// itoa(mvDelaySet, v, 10);
|
||||||
|
// mqttClient.publish(TOPIC"/movesecset", 0, false, v);
|
||||||
if(mvDelay == 0) {
|
if(mvDelay == 0) {
|
||||||
mqttClient.publish("/home/midroom/move", 1, false, "0");
|
g_led.start();
|
||||||
|
mqttClient.publish(TOPIC"/move", 1, false, "0");
|
||||||
mvDelay = -1;
|
mvDelay = -1;
|
||||||
}
|
}
|
||||||
if(mvDelay > 0) mvDelay--;
|
if(mvDelay > 0) mvDelay--;
|
||||||
|
|
||||||
adc = analogRead(A0);
|
if(minCnt % 10 == 0){
|
||||||
if(abs(adc - lastADC) > 50){
|
co2 = mhz19.getCO2();
|
||||||
lastADC = adc;
|
// /* Serial1.print("CO2: ");
|
||||||
itoa(adc, v, 10);
|
// Serial1.println(co2); */
|
||||||
mqttClient.publish("/home/midroom/light", 1, false, v);
|
// // Serial.println("Measure BME");
|
||||||
|
// digitalWrite(P_SENS, HIGH);
|
||||||
|
// bme.begin(BME280_ADDRESS_ALTERNATE);
|
||||||
|
// delay(10);
|
||||||
|
// pt = bme.readPressure();
|
||||||
|
// tt = bme.readTemperature();
|
||||||
|
// ht = bme.readHumidity();
|
||||||
|
// if(!isnan(pt))
|
||||||
|
// p = pt;//+= (pt - p) / 60.0f ;
|
||||||
|
// if(!isnan(tt))
|
||||||
|
// t = tt;//+= (tt - t) / 30.0f ;
|
||||||
|
// if(!isnan(ht))
|
||||||
|
// h = ht;//+= (ht - h) / 30.0f ;
|
||||||
|
// // Serial.println(p);
|
||||||
|
// // Serial.println(t);
|
||||||
|
// // Serial.println(h);
|
||||||
|
// digitalWrite(P_SENS, LOW);
|
||||||
}
|
}
|
||||||
if(minCnt % 20 == 0){
|
if(++minCnt == 60){
|
||||||
co2 = mhz19.getCO2();
|
minCnt = 0;
|
||||||
/* Serial1.print("CO2: ");
|
|
||||||
Serial1.println(co2); */
|
|
||||||
digitalWrite(P_SENS, HIGH);
|
digitalWrite(P_SENS, HIGH);
|
||||||
bme.begin(BME280_ADDRESS_ALTERNATE);
|
bme.begin(BME280_ADDRESS_ALTERNATE);
|
||||||
delay(10);
|
delay(10);
|
||||||
@@ -184,19 +220,22 @@ void loop() {
|
|||||||
t = tt;//+= (tt - t) / 30.0f ;
|
t = tt;//+= (tt - t) / 30.0f ;
|
||||||
if(!isnan(ht))
|
if(!isnan(ht))
|
||||||
h = ht;//+= (ht - h) / 30.0f ;
|
h = ht;//+= (ht - h) / 30.0f ;
|
||||||
|
// Serial.println(p);
|
||||||
|
// Serial.println(t);
|
||||||
|
// Serial.println(h);
|
||||||
digitalWrite(P_SENS, LOW);
|
digitalWrite(P_SENS, LOW);
|
||||||
}
|
|
||||||
if(++minCnt == 60){
|
|
||||||
minCnt = 0;
|
|
||||||
if(mqttClient.connected()){
|
if(mqttClient.connected()){
|
||||||
g_led.start();
|
g_led.start();
|
||||||
//r_led.start();
|
//r_led.start();
|
||||||
//Serial1.println("Begin Publish");
|
//Serial1.println("Begin Publish");
|
||||||
|
itoa(adc, v, 10);
|
||||||
|
mqttClient.publish(TOPIC"/light", 1, false, v);
|
||||||
dtostrf(t, 5, 1,v);
|
dtostrf(t, 5, 1,v);
|
||||||
mqttClient.publish("/home/midroom/temp", 1, false, v);
|
mqttClient.publish(TOPIC"/temp", 1, false, v);
|
||||||
//Serial1.println("Publish1");
|
//Serial1.println("Publish1");
|
||||||
dtostrf(h, 5, 1,v);
|
dtostrf(h, 5, 1,v);
|
||||||
mqttClient.publish("/home/midroom/humid", 1, false, v);
|
mqttClient.publish(TOPIC"/humid", 1, false, v);
|
||||||
//Serial1.println("Publish2");
|
//Serial1.println("Publish2");
|
||||||
if(firstRun){
|
if(firstRun){
|
||||||
stDelay++;
|
stDelay++;
|
||||||
@@ -204,48 +243,45 @@ void loop() {
|
|||||||
}
|
}
|
||||||
if(!firstRun && (mhz19.errorCode == RESULT_OK)){
|
if(!firstRun && (mhz19.errorCode == RESULT_OK)){
|
||||||
itoa(co2, v, 10);
|
itoa(co2, v, 10);
|
||||||
mqttClient.publish("/home/midroom/co2", 1, false, v);
|
mqttClient.publish(TOPIC"/co2", 1, false, v);
|
||||||
//Serial1.println("Publish3");
|
//Serial1.println("Publish3");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(minCnt % 10 == 0){
|
else if(minCnt % 20 == 0){
|
||||||
ultoa(millis(), v, 10);
|
dtostrf(millis() / 60000.0, 7, 2, v);
|
||||||
|
//ultoa(millis(), v, 10);
|
||||||
if(mqttClient.connected()){
|
if(mqttClient.connected()){
|
||||||
mqttClient.publish("/home/midroom/millis", 0, false, v);
|
g_led.start();
|
||||||
itoa(mvDelay, v, 10);
|
mqttClient.publish(TOPIC"/millis", 0, false, v);
|
||||||
mqttClient.publish("/home/midroom/movesec", 0, false, v);
|
|
||||||
itoa(mvDelaySet, v, 10);
|
|
||||||
mqttClient.publish("/home/midroom/movesecset", 0, false, v);
|
|
||||||
// dtostrf(t, 5, 1,v);
|
// dtostrf(t, 5, 1,v);
|
||||||
// mqttClient.publish("/home/midroom/temp", 0, false, v);
|
// mqttClient.publish(TOPIC"/temp", 0, false, v);
|
||||||
// //Serial1.println("Publish1");
|
// //Serial1.println("Publish1");
|
||||||
// dtostrf(h, 5, 1,v);
|
// dtostrf(h, 5, 1,v);
|
||||||
// mqttClient.publish("/home/midroom/humid", 0, false, v);
|
// mqttClient.publish(TOPIC"/humid", 0, false, v);
|
||||||
g_led.start();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void connectToWifi() {
|
void connectToWifi() {
|
||||||
// Serial1.println(F("Connecting to Wi-Fi..."));
|
//Serial.println(F("Connecting to Wi-Fi..."));
|
||||||
//Serial1.flush();
|
//Serial1.flush();
|
||||||
WiFi.begin(ssid, password);
|
WiFi.begin(ssid, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
void connectToMqtt() {
|
void connectToMqtt() {
|
||||||
// Serial1.println(F("Connecting to MQTT..."));
|
//Serial.println(F("Connecting to MQTT..."));
|
||||||
//Serial1.flush();
|
//Serial1.flush();
|
||||||
mqttClient.connect();
|
mqttClient.connect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void onWifiConnect(const WiFiEventStationModeGotIP& event) {
|
void onWifiConnect(const WiFiEventStationModeGotIP& event) {
|
||||||
/* Serial1.println(F("Connected to Wi-Fi."));
|
//Serial.println(F("Connected to Wi-Fi."));
|
||||||
Serial1.print(F("IP: "));
|
//Serial.print(F("IP: "));
|
||||||
//Serial1.flush();
|
//Serial1.flush();
|
||||||
Serial1.println(WiFi.localIP()); */
|
//Serial.println(WiFi.localIP());
|
||||||
digitalWrite(R_LED, LOW);
|
//digitalWrite(WF_LED, LOW);
|
||||||
connectToMqtt();
|
connectToMqtt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,20 +290,21 @@ void onWifiDisconnect(const WiFiEventStationModeDisconnected& event) {
|
|||||||
//Serial1.flush();
|
//Serial1.flush();
|
||||||
mqttReconnectTimer.detach(); // ensure we don't reconnect to MQTT while reconnecting to Wi-Fi
|
mqttReconnectTimer.detach(); // ensure we don't reconnect to MQTT while reconnecting to Wi-Fi
|
||||||
wifiReconnectTimer.once(2, connectToWifi);
|
wifiReconnectTimer.once(2, connectToWifi);
|
||||||
digitalWrite(R_LED, HIGH);
|
//digitalWrite(WF_LED, HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onMqttConnect(bool sessionPresent) {
|
void onMqttConnect(bool sessionPresent) {
|
||||||
char v[15];
|
char v[15];
|
||||||
sprintf(v, "%u", mvDelaySet);
|
sprintf(v, "%u", mvDelaySet);
|
||||||
//itoa(mvDelaySet, v, 10);
|
//itoa(mvDelaySet, v, 10);
|
||||||
mqttClient.publish("/home/midroom/mvdelay", 1, false, v);
|
mqttClient.publish(TOPIC"/mvdelay", 1, false, v);
|
||||||
mqttClient.subscribe("/home/midroom/mvdelay", 1);
|
mqttClient.subscribe(TOPIC"/mvdelay", 1);
|
||||||
// ultoa(ESP.getFlashChipSize(), v, 10);
|
// ultoa(ESP.getFlashChipSize(), v, 10);
|
||||||
// mqttClient.publish("/home/midroom/chipsize", 1, false, v);
|
// mqttClient.publish(TOPIC"/chipsize", 1, false, v);
|
||||||
// ultoa(ESP.getFlashChipRealSize(), v, 10);
|
// ultoa(ESP.getFlashChipRealSize(), v, 10);
|
||||||
// mqttClient.publish("/home/midroom/realchipsize", 1, false, v);
|
// mqttClient.publish(TOPIC"/realchipsize", 1, false, v);
|
||||||
digitalWrite(B_LED, LOW);
|
//Serial.println("Connected to MQTT");
|
||||||
|
digitalWrite(R_LED, HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
void onMqttDisconnect(AsyncMqttClientDisconnectReason reason) {
|
void onMqttDisconnect(AsyncMqttClientDisconnectReason reason) {
|
||||||
@@ -277,7 +314,7 @@ void onMqttDisconnect(AsyncMqttClientDisconnectReason reason) {
|
|||||||
if (WiFi.isConnected()) {
|
if (WiFi.isConnected()) {
|
||||||
mqttReconnectTimer.once(2, connectToMqtt);
|
mqttReconnectTimer.once(2, connectToMqtt);
|
||||||
}
|
}
|
||||||
digitalWrite(B_LED, HIGH);
|
digitalWrite(R_LED, LOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void onMqttSubscribe(uint16_t packetId, uint8_t qos) {
|
/*void onMqttSubscribe(uint16_t packetId, uint8_t qos) {
|
||||||
@@ -295,11 +332,12 @@ void onMqttUnsubscribe(uint16_t packetId) {
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) {
|
void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) {
|
||||||
if(strcmp(topic, "/home/midroom/mvdelay") == 0){
|
if(strcmp(topic, TOPIC"/mvdelay") == 0){
|
||||||
mvDelaySet = atoi(payload);
|
mvDelaySet = atoi(payload);
|
||||||
EEPROM.put(4, mvDelaySet);
|
EEPROM.put(4, mvDelaySet);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
|
b_led.start();
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
void onMqttPublish(uint16_t packetId) {
|
void onMqttPublish(uint16_t packetId) {
|
||||||
|
|||||||
@@ -18,12 +18,13 @@
|
|||||||
|
|
||||||
#include <MySensors.h>
|
#include <MySensors.h>
|
||||||
|
|
||||||
#define TOP_LOCK A0
|
#define TOP_LOCK A0 // 7 - Green/White
|
||||||
#define INT_LOCK A1
|
#define INT_LOCK A1 // 2 - Green
|
||||||
#define DOWN_LOCK A3
|
#define DOWN_LOCK A3 // 6 - Blue/White
|
||||||
#define SMALL_LOCK A2
|
#define SMALL_LOCK A2 // 1 - Blue
|
||||||
#define DOOR A4
|
#define DOOR A4 // 3 - Brown
|
||||||
|
// 4 - 5V - Orange
|
||||||
|
// 8 - GND - Orange/White Brown/White
|
||||||
#define TOP_LOCK_ID 0
|
#define TOP_LOCK_ID 0
|
||||||
#define INT_LOCK_ID 1
|
#define INT_LOCK_ID 1
|
||||||
#define DOWN_LOCK_ID 2
|
#define DOWN_LOCK_ID 2
|
||||||
|
|||||||
Reference in New Issue
Block a user