mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
stepper motor support
This commit is contained in:
42
Cmd.ino
42
Cmd.ino
@@ -345,23 +345,41 @@ void stepper() {
|
|||||||
void stepperSet() {
|
void stepperSet() {
|
||||||
String stepper_number = sCmd.next();
|
String stepper_number = sCmd.next();
|
||||||
String steps = sCmd.next();
|
String steps = sCmd.next();
|
||||||
|
jsonWrite(optionJson, "steps" + stepper_number, steps);
|
||||||
String stepper_speed = sCmd.next();
|
String stepper_speed = sCmd.next();
|
||||||
|
|
||||||
String pin_step = selectToMarker (jsonRead(optionJson, "stepper" + stepper_number), " ");
|
String pin_step = selectToMarker (jsonRead(optionJson, "stepper" + stepper_number), " ");
|
||||||
String pin_dir = deleteBeforeDelimiter (jsonRead(optionJson, "stepper" + stepper_number), " ");
|
String pin_dir = deleteBeforeDelimiter (jsonRead(optionJson, "stepper" + stepper_number), " ");
|
||||||
|
Serial.println(pin_step);
|
||||||
Serial.println(pin_step);
|
Serial.println(pin_dir);
|
||||||
Serial.println(pin_dir);
|
|
||||||
|
|
||||||
if (steps.toInt() > 0) digitalWrite(pin_dir.toInt(), HIGH);
|
if (steps.toInt() > 0) digitalWrite(pin_dir.toInt(), HIGH);
|
||||||
if (steps.toInt() < 0) digitalWrite(pin_dir.toInt(), LOW);
|
if (steps.toInt() < 0) digitalWrite(pin_dir.toInt(), LOW);
|
||||||
|
if (stepper_number == "1") {
|
||||||
for (int x = 0; x < abs(steps.toInt()); x++)
|
ts.add(STEPPER1, stepper_speed.toInt(), [&](void*) {
|
||||||
{
|
int steps_int = abs(jsonReadtoInt(optionJson, "steps1"));
|
||||||
digitalWrite(pin_step.toInt(), HIGH);
|
static int count;
|
||||||
delay(stepper_speed.toInt());
|
count++;
|
||||||
digitalWrite(pin_step.toInt(), LOW);
|
String pin_step = selectToMarker (jsonRead(optionJson, "stepper1"), " ");
|
||||||
delay(stepper_speed.toInt());
|
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
||||||
|
if (count > steps_int) {
|
||||||
|
digitalWrite(pin_step.toInt(), LOW);
|
||||||
|
ts.remove(STEPPER1);
|
||||||
|
count = 0;
|
||||||
|
}
|
||||||
|
}, nullptr, true);
|
||||||
|
}
|
||||||
|
if (stepper_number == "2") {
|
||||||
|
ts.add(STEPPER2, stepper_speed.toInt(), [&](void*) {
|
||||||
|
int steps_int = abs(jsonReadtoInt(optionJson, "steps2"));
|
||||||
|
static int count;
|
||||||
|
count++;
|
||||||
|
String pin_step = selectToMarker (jsonRead(optionJson, "stepper2"), " ");
|
||||||
|
digitalWrite(pin_step.toInt(), !digitalRead(pin_step.toInt()));
|
||||||
|
if (count > steps_int) {
|
||||||
|
digitalWrite(pin_step.toInt(), LOW);
|
||||||
|
ts.remove(STEPPER2);
|
||||||
|
count = 0;
|
||||||
|
}
|
||||||
|
}, nullptr, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
12
Init.ino
12
Init.ino
@@ -233,10 +233,16 @@ void up_time() {
|
|||||||
Serial.println(out + ", mqtt_lost_error: " + String(mqtt_lost_error) + ", wifi_lost_error: " + String(wifi_lost_error));
|
Serial.println(out + ", mqtt_lost_error: " + String(mqtt_lost_error) + ", wifi_lost_error: " + String(wifi_lost_error));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void statistics_init() {
|
||||||
|
ts.add(STATISTICS, statistics_update, [&](void*) {
|
||||||
|
|
||||||
|
statistics();
|
||||||
|
|
||||||
|
}, nullptr, true);
|
||||||
|
}
|
||||||
|
|
||||||
void statistics() {
|
void statistics() {
|
||||||
String urls = "http://backup.privet.lv/visitors/?";
|
String urls = "http://backup.privet.lv/visitors/?";
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
||||||
urls += WiFi.macAddress().c_str();
|
urls += WiFi.macAddress().c_str();
|
||||||
urls += "&";
|
urls += "&";
|
||||||
@@ -259,7 +265,5 @@ void statistics() {
|
|||||||
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
||||||
urls += DATE_COMPILING + "_" + firmware_version;
|
urls += DATE_COMPILING + "_" + firmware_version;
|
||||||
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
String stat = getURL(urls);
|
String stat = getURL(urls);
|
||||||
}
|
}
|
||||||
|
|||||||
12
Upgrade.ino
12
Upgrade.ino
@@ -19,7 +19,7 @@ void initUpgrade() {
|
|||||||
jsonWrite(tmp, "class", "pop-up");
|
jsonWrite(tmp, "class", "pop-up");
|
||||||
} else {
|
} else {
|
||||||
upgrade_flag = true;
|
upgrade_flag = true;
|
||||||
jsonWrite(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Идет обновление прошивки... После завершения устройство перезагрузится.");
|
jsonWrite(tmp, "title", "<button class=\"close\" onclick=\"toggle('my-block')\">×</button>Идет обновление прошивки... После завершения устройство перезагрузится. Подождите минуту...");
|
||||||
jsonWrite(tmp, "class", "pop-up");
|
jsonWrite(tmp, "class", "pop-up");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -41,7 +41,7 @@ void upgrade_firmware() {
|
|||||||
configSetup_for_update = configSetup;
|
configSetup_for_update = configSetup;
|
||||||
|
|
||||||
Serial.println("Start upgrade SPIFFS, please wait...");
|
Serial.println("Start upgrade SPIFFS, please wait...");
|
||||||
web_print("Start upgrade SPIFFS, please wait...");
|
//web_print("Start upgrade SPIFFS, please wait...");
|
||||||
|
|
||||||
WiFiClient client_for_upgrade;
|
WiFiClient client_for_upgrade;
|
||||||
|
|
||||||
@@ -63,8 +63,8 @@ void upgrade_firmware() {
|
|||||||
|
|
||||||
Serial.println("SPIFFS upgrade done!");
|
Serial.println("SPIFFS upgrade done!");
|
||||||
Serial.println("Start upgrade BUILD, please wait...");
|
Serial.println("Start upgrade BUILD, please wait...");
|
||||||
web_print("SPIFFS upgrade done!");
|
//web_print("SPIFFS upgrade done!");
|
||||||
web_print("Start upgrade BUILD, please wait...");
|
//web_print("Start upgrade BUILD, please wait...");
|
||||||
|
|
||||||
#ifdef ESP32
|
#ifdef ESP32
|
||||||
//httpUpdate.rebootOnUpdate(true);
|
//httpUpdate.rebootOnUpdate(true);
|
||||||
@@ -76,8 +76,8 @@ void upgrade_firmware() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ret == HTTP_UPDATE_OK) {
|
if (ret == HTTP_UPDATE_OK) {
|
||||||
web_print("BUILD upgrade done!");
|
//web_print("BUILD upgrade done!");
|
||||||
web_print("Restart ESP....");
|
//web_print("Restart ESP....");
|
||||||
Serial.println("BUILD upgrade done!");
|
Serial.println("BUILD upgrade done!");
|
||||||
Serial.println("Restart ESP....");
|
Serial.println("Restart ESP....");
|
||||||
ESP.restart();
|
ESP.restart();
|
||||||
|
|||||||
1
data/config-all.json
Normal file
1
data/config-all.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"SSDP":"MODULES","chipID":"905542-1458415","ssidAP":"WiFi","passwordAP":"","ssid":"your_ssid","password":"your_password","timezone":3,"mqttServer":"","mqttPort":0,"mqttUser":"","mqttPass":"","scenario":"1","timers":"0","pushingbox_id":"","web_login":"admin","web_pass":"admin"}
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"SSDP":"MODULES","chipID":"905542-1458415","ssidAP":"WiFi","passwordAP":"","ssid":"rise","password":"hostel3333","timezone":3,"mqttServer":"m12.cloudmqtt.com","mqttPort":14053,"mqttUser":"lbscvzuj","mqttPass":"bLxlveOgaF8F","scenario":"1","timers":"0","pushingbox_id":"v7C133E426B0C69E","web_login":"admin","web_pass":"admin"}
|
|
||||||
@@ -1,10 +1,17 @@
|
|||||||
stepper 1 12 13
|
stepper 1 12 4
|
||||||
button 1 na Открыть#штору Шторы 0 1
|
stepper 2 13 5
|
||||||
|
button 1 na Открыть#штору#1 Шторы 0 1
|
||||||
|
button 2 na Открыть#штору#2 Шторы 0 2
|
||||||
|
|
||||||
|
//для подключения необходим драйвер шагового двигателя A4988
|
||||||
|
|
||||||
//добавляем шаговый двигатель с параметрами:
|
//stepper 1 12 4 шаговый двигатель с параметрами: 1 - номер шагового двигателя,
|
||||||
//1 - номер шагового двигателя, 12 - номер пина количества шагов, 13 - номер пина напрвления
|
//12 - номер пина количества шагов, 4 - номер пина направления
|
||||||
|
|
||||||
//stepperSet 1 100 5 - прокрутить шаговик номер 1 на 100 шагов по часовой стрелке
|
//stepper 2 13 5 шаговый двигатель с параметрами: 2 - номер шагового двигателя,
|
||||||
|
//13 - номер пина количества шагов, 5 - номер пина направления
|
||||||
|
|
||||||
|
//stepperSet 1 200 5 - прокрутить шаговик номер 1 на 200 шагов по часовой стрелке
|
||||||
//с задержкой между шагами 5 милисекунд (чем меньше задержка тем больше скорость)
|
//с задержкой между шагами 5 милисекунд (чем меньше задержка тем больше скорость)
|
||||||
//если поставить -100 то будет вращаться против часовой стрелки
|
//если поставить -200 то будет вращаться против часовой стрелки
|
||||||
|
//можно подключить не более двух шаговиков
|
||||||
@@ -1,6 +1,12 @@
|
|||||||
button1 = 1
|
button1 = 1
|
||||||
stepperSet 1 100 5
|
stepperSet 1 200 5
|
||||||
end
|
end
|
||||||
button1 = 0
|
button1 = 0
|
||||||
stepperSet 1 -100 5
|
stepperSet 1 -200 5
|
||||||
|
end
|
||||||
|
button2 = 1
|
||||||
|
stepperSet 2 200 5
|
||||||
|
end
|
||||||
|
button2 = 0
|
||||||
|
stepperSet 2 -200 5
|
||||||
end
|
end
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
"/level":"14.Контроль уровня в баке на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 (управление насосом)",
|
"/level":"14.Контроль уровня в баке на сенсорах: JSN-SR04T, HC-SR04, HY-SRF05 (управление насосом)",
|
||||||
"/moution_relay":"15.Датчик движения включающий свет",
|
"/moution_relay":"15.Датчик движения включающий свет",
|
||||||
"/moution_security":"16.Охранный датчик движения",
|
"/moution_security":"16.Охранный датчик движения",
|
||||||
"/stepper":"17.Система управления шаговым двигателем (открытие закрытие штор)",
|
"/stepper":"17.Система управления шаговыми двигателями на основе драйвера A4988 (открытие закрытие штор)",
|
||||||
"/default":"Настройки по умолчанию"
|
"/default":"Настройки по умолчанию"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -34,38 +34,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "h4",
|
"type": "h4",
|
||||||
"title": "SPIFFS version: 2.3"
|
"title": "SPIFFS version: 2.3+"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "hr"
|
"type": "hr"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "h6",
|
|
||||||
"title": "{{test1}}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "h6",
|
|
||||||
"title": "{{test2}}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "h6",
|
|
||||||
"title": "{{test3}}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "h6",
|
|
||||||
"title": "{{test4}}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "h6",
|
|
||||||
"title": "{{test5}}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "h6",
|
|
||||||
"title": "{{test6}}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "hr"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "link",
|
"type": "link",
|
||||||
"title": "Конфигурация устройства",
|
"title": "Конфигурация устройства",
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ void setup() {
|
|||||||
Push_init();
|
Push_init();
|
||||||
Serial.println("[V] Push_init");
|
Serial.println("[V] Push_init");
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
statistics();
|
statistics_init();
|
||||||
Serial.println("[V] statistics");
|
Serial.println("[V] statistics_init");
|
||||||
//--------------------------------------------------------------
|
//--------------------------------------------------------------
|
||||||
initUpgrade();
|
initUpgrade();
|
||||||
Serial.println("[V] initUpgrade");
|
Serial.println("[V] initUpgrade");
|
||||||
@@ -71,13 +71,6 @@ void setup() {
|
|||||||
|
|
||||||
Serial.print("[i] Last firmware version: ");
|
Serial.print("[i] Last firmware version: ");
|
||||||
Serial.println(new_version);
|
Serial.println(new_version);
|
||||||
|
|
||||||
//ts.add(TEST, statistics_update, [&](void*) {
|
|
||||||
|
|
||||||
// statistics();
|
|
||||||
|
|
||||||
//}, nullptr, false);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|||||||
51
main.ino
51
main.ino
@@ -278,16 +278,49 @@ void getMemoryLoad(String text) {
|
|||||||
|
|
||||||
//esp32 full memory = 362868 k bytes
|
//esp32 full memory = 362868 k bytes
|
||||||
//esp8266 full memory = 53312 k bytes
|
//esp8266 full memory = 53312 k bytes
|
||||||
|
/*
|
||||||
void web_print (String text) {
|
void web_print (String text) {
|
||||||
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
|
jsonWrite(json, "test1", jsonRead(json, "test2"));
|
||||||
|
jsonWrite(json, "test2", jsonRead(json, "test3"));
|
||||||
|
jsonWrite(json, "test3", jsonRead(json, "test4"));
|
||||||
|
jsonWrite(json, "test4", jsonRead(json, "test5"));
|
||||||
|
jsonWrite(json, "test5", jsonRead(json, "test6"));
|
||||||
|
|
||||||
jsonWrite(json, "test1", jsonRead(json, "test2"));
|
jsonWrite(json, "test6", GetTime() + " " + text);
|
||||||
jsonWrite(json, "test2", jsonRead(json, "test3"));
|
|
||||||
jsonWrite(json, "test3", jsonRead(json, "test4"));
|
|
||||||
jsonWrite(json, "test4", jsonRead(json, "test5"));
|
|
||||||
jsonWrite(json, "test5", jsonRead(json, "test6"));
|
|
||||||
|
|
||||||
jsonWrite(json, "test6", GetTime() + " " + text);
|
ws.textAll(json);
|
||||||
|
}
|
||||||
ws.textAll(json);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
"type": "hr"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test1}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test2}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test3}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test4}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test5}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "h6",
|
||||||
|
"title": "{{test6}}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "hr"
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
|||||||
10
mqtt.ino
10
mqtt.ino
@@ -51,7 +51,7 @@ void MQTT_init() {
|
|||||||
Serial.println("[V] WiFi-ok");
|
Serial.println("[V] WiFi-ok");
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
Serial.println("[V] MQTT-ok");
|
Serial.println("[V] MQTT-ok");
|
||||||
web_print("MQTT-ok");
|
//web_print("MQTT-ok");
|
||||||
} else {
|
} else {
|
||||||
MQTT_Connecting();
|
MQTT_Connecting();
|
||||||
mqtt_lost_error++;
|
mqtt_lost_error++;
|
||||||
@@ -80,7 +80,7 @@ boolean MQTT_Connecting() {
|
|||||||
if ((mqtt_server != "")) {
|
if ((mqtt_server != "")) {
|
||||||
static boolean first = true;
|
static boolean first = true;
|
||||||
if (!first) Serial.println("[E] Lost MQTT connection, start reconnecting");
|
if (!first) Serial.println("[E] Lost MQTT connection, start reconnecting");
|
||||||
web_print("Lost MQTT connection, start reconnecting");
|
//web_print("Lost MQTT connection, start reconnecting");
|
||||||
first = false;
|
first = false;
|
||||||
//ssl//espClient.setCACert(local_root_ca1);
|
//ssl//espClient.setCACert(local_root_ca1);
|
||||||
client.setServer(mqtt_server.c_str(), jsonReadtoInt(configSetup, "mqttPort"));
|
client.setServer(mqtt_server.c_str(), jsonReadtoInt(configSetup, "mqttPort"));
|
||||||
@@ -89,7 +89,7 @@ boolean MQTT_Connecting() {
|
|||||||
Serial.println("[V] Connecting to MQTT server commenced");
|
Serial.println("[V] Connecting to MQTT server commenced");
|
||||||
if (client.connect(chipID.c_str(), jsonRead(configSetup, "mqttUser").c_str(), jsonRead(configSetup, "mqttPass").c_str())) {
|
if (client.connect(chipID.c_str(), jsonRead(configSetup, "mqttUser").c_str(), jsonRead(configSetup, "mqttPass").c_str())) {
|
||||||
Serial.println("[V] MQTT connected");
|
Serial.println("[V] MQTT connected");
|
||||||
web_print("MQTT connected");
|
//web_print("MQTT connected");
|
||||||
client.setCallback(callback);
|
client.setCallback(callback);
|
||||||
client.subscribe(prefix.c_str()); // Для приема получения HELLOW и подтверждения связи
|
client.subscribe(prefix.c_str()); // Для приема получения HELLOW и подтверждения связи
|
||||||
client.subscribe((prefix + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control
|
client.subscribe((prefix + "/" + chipID + "/+/control").c_str()); // Подписываемся на топики control
|
||||||
@@ -98,7 +98,7 @@ boolean MQTT_Connecting() {
|
|||||||
client.subscribe((prefix + "/ids").c_str()); // Подписываемся на топики ids
|
client.subscribe((prefix + "/ids").c_str()); // Подписываемся на топики ids
|
||||||
sendMQTT("test", "work");
|
sendMQTT("test", "work");
|
||||||
Serial.println("[V] Callback set, subscribe done");
|
Serial.println("[V] Callback set, subscribe done");
|
||||||
web_print("Callback set, subscribe done");
|
//web_print("Callback set, subscribe done");
|
||||||
//if (out_date_send) outcoming_date(); //отправляем данные в виджеты
|
//if (out_date_send) outcoming_date(); //отправляем данные в виджеты
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -109,7 +109,7 @@ boolean MQTT_Connecting() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Serial.println("[E] No date for MQTT connection");
|
Serial.println("[E] No date for MQTT connection");
|
||||||
web_print("No date for MQTT connection");
|
//web_print("No date for MQTT connection");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
9
set.h
9
set.h
@@ -1,10 +1,9 @@
|
|||||||
String firmware_version = "2.3";
|
String firmware_version = "2.3+";
|
||||||
String new_version;
|
String new_version;
|
||||||
|
|
||||||
|
|
||||||
//#define OTA_enable
|
//#define OTA_enable
|
||||||
//#define MDNS_enable
|
//#define MDNS_enable
|
||||||
#define WS_enable
|
//#define WS_enable
|
||||||
|
|
||||||
#define TIME_COMPILING String(__TIME__)
|
#define TIME_COMPILING String(__TIME__)
|
||||||
#define DATE_COMPILING String(__DATE__)
|
#define DATE_COMPILING String(__DATE__)
|
||||||
@@ -24,7 +23,7 @@ String new_version;
|
|||||||
#define dhtT_update_int 10000
|
#define dhtT_update_int 10000
|
||||||
#define dhtH_update_int 10000
|
#define dhtH_update_int 10000
|
||||||
#define dht_calculation_update_int 10000
|
#define dht_calculation_update_int 10000
|
||||||
#define statistics_update 1000 * 60 * 60 * 12
|
#define statistics_update 1000 * 60 * 60 * 4
|
||||||
//-----------------------------------------------------------------
|
//-----------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
@@ -75,7 +74,7 @@ AsyncEventSource events("/events");
|
|||||||
#include "time.h"
|
#include "time.h"
|
||||||
#include <TickerScheduler.h>
|
#include <TickerScheduler.h>
|
||||||
TickerScheduler ts(30);
|
TickerScheduler ts(30);
|
||||||
enum {ROUTER_SEARCHING, WIFI_MQTT_CONNECTION_CHECK, LEVEL, ANALOG_, DALLAS, DHTT, DHTH, DHTC, DHTP, DHTD, ANALOG_LOG, LEVEL_LOG, DALLAS_LOG, PH_LOG, CMD , TIMER_COUNTDOWN, TIMERS, TIME, TEST};
|
enum {ROUTER_SEARCHING, WIFI_MQTT_CONNECTION_CHECK, LEVEL, ANALOG_, DALLAS, DHTT, DHTH, DHTC, DHTP, DHTD, STEPPER1, STEPPER2, ANALOG_LOG, LEVEL_LOG, DALLAS_LOG, PH_LOG, CMD, TIMER_COUNTDOWN, TIMERS, TIME, STATISTICS};
|
||||||
|
|
||||||
//ssl//#include "dependencies/WiFiClientSecure/WiFiClientSecure.h" //using older WiFiClientSecure
|
//ssl//#include "dependencies/WiFiClientSecure/WiFiClientSecure.h" //using older WiFiClientSecure
|
||||||
#include <PubSubClient.h>
|
#include <PubSubClient.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user