mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
servo support added
This commit is contained in:
95
Cmd.ino
95
Cmd.ino
@@ -25,6 +25,9 @@ void CMD_init() {
|
||||
sCmd.addCommand("stepper", stepper);
|
||||
sCmd.addCommand("stepperSet", stepperSet);
|
||||
|
||||
sCmd.addCommand("servo", servo_);
|
||||
sCmd.addCommand("servoSet", servoSet);
|
||||
|
||||
sCmd.addCommand("logging", logging);
|
||||
|
||||
sCmd.addCommand("inputDigit", inputDigit);
|
||||
@@ -271,6 +274,7 @@ void handle_time_init() {
|
||||
ts.add(TIME, 1000, [&](void*) {
|
||||
|
||||
String tmp = GetTime();
|
||||
jsonWriteStr(configJson, "time", tmp);
|
||||
tmp.replace(":", "-");
|
||||
jsonWriteStr(configJson, "timenowSet", tmp);
|
||||
eventGen ("timenowSet", "");
|
||||
@@ -367,7 +371,96 @@ void stepperSet() {
|
||||
}
|
||||
}
|
||||
|
||||
//servo 1 13 50 Мой#сервопривод Сервоприводы 0 100 0 180 2
|
||||
void servo_() {
|
||||
String servo_number = sCmd.next();
|
||||
String servo_pin = sCmd.next();
|
||||
String start_state = sCmd.next();
|
||||
int start_state_int = start_state.toInt();
|
||||
String widget_name = sCmd.next();
|
||||
String page_name = sCmd.next();
|
||||
|
||||
String min_value = sCmd.next();
|
||||
String max_value = sCmd.next();
|
||||
|
||||
String min_deg = sCmd.next();
|
||||
String max_deg = sCmd.next();
|
||||
|
||||
String page_number = sCmd.next();
|
||||
|
||||
jsonWriteStr(optionJson, "servo_pin" + servo_number, servo_pin);
|
||||
start_state_int = map(start_state_int, min_value.toInt(), max_value.toInt(), min_deg.toInt(), max_deg.toInt());
|
||||
|
||||
if (servo_number == "1") {
|
||||
#ifdef ESP8266
|
||||
myServo1.attach(servo_pin.toInt());
|
||||
myServo1.write(start_state_int);
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
myServo1.attach(servo_pin.toInt(), 500, 2400);
|
||||
myServo1.write(start_state_int);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (servo_number == "2") {
|
||||
#ifdef ESP8266
|
||||
myServo2.attach(servo_pin.toInt());
|
||||
myServo2.write(start_state_int);
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
myServo2.attach(servo_pin.toInt(), 500, 2400);
|
||||
myServo2.write(start_state_int);
|
||||
#endif
|
||||
}
|
||||
|
||||
jsonWriteStr(optionJson, "s_min_val" + servo_number, min_value);
|
||||
jsonWriteStr(optionJson, "s_max_val" + servo_number, max_value);
|
||||
jsonWriteStr(optionJson, "s_min_deg" + servo_number, min_deg);
|
||||
jsonWriteStr(optionJson, "s_max_deg" + servo_number, max_deg);
|
||||
|
||||
jsonWriteStr(configJson, "servoSet" + servo_number, start_state);
|
||||
|
||||
createWidgetParam (widget_name, page_name, page_number, "widgets/widget.range.json", "servoSet" + servo_number, "min", min_value, "max", max_value, "k", "1");
|
||||
}
|
||||
|
||||
void servoSet() {
|
||||
String servo_number = sCmd.next();
|
||||
String servo_state = sCmd.next();
|
||||
int servo_state_int = servo_state.toInt();
|
||||
|
||||
int pin = jsonReadtoInt(optionJson, "servo_pin" + servo_number);
|
||||
|
||||
servo_state_int = map(servo_state_int,
|
||||
jsonReadtoInt(optionJson, "s_min_val" + servo_number),
|
||||
jsonReadtoInt(optionJson, "s_max_val" + servo_number),
|
||||
jsonReadtoInt(optionJson, "s_min_deg" + servo_number),
|
||||
jsonReadtoInt(optionJson, "s_max_deg" + servo_number));
|
||||
|
||||
if (servo_number == "1") {
|
||||
#ifdef ESP8266
|
||||
myServo1.write(servo_state_int);
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
myServo1.write(servo_state_int);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (servo_number == "2") {
|
||||
#ifdef ESP8266
|
||||
myServo2.write(servo_state_int);
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
myServo2.write(servo_state_int);
|
||||
#endif
|
||||
}
|
||||
|
||||
//Serial.println(servo_state_int);
|
||||
|
||||
eventGen ("servoSet", servo_number);
|
||||
|
||||
jsonWriteStr(configJson, "servoSet" + servo_number, servo_state);
|
||||
sendSTATUS("servoSet" + servo_number, servo_state);
|
||||
}
|
||||
//====================================================================================================================================================
|
||||
/*
|
||||
void inputText() {
|
||||
@@ -469,7 +562,7 @@ void handleCMD_loop() {
|
||||
//=======================================================================================================================================
|
||||
void txtExecution(String file) {
|
||||
|
||||
String command_all = readFile(file, 2048) + "\r\n";
|
||||
String command_all = readFile(file, 2048) + "\r\n";
|
||||
|
||||
command_all.replace("\r\n", "\n");
|
||||
command_all.replace("\r", "\n");
|
||||
|
||||
6
Init.ino
6
Init.ino
@@ -137,7 +137,11 @@ void prsets_init() {
|
||||
writeFile("firmware.c.txt", readFile("configs/stepper.c.txt", 2048));
|
||||
writeFile("firmware.s.txt", readFile("configs/stepper.s.txt", 2048));
|
||||
}
|
||||
if (value == "18") {
|
||||
if (value == "18") {
|
||||
writeFile("firmware.c.txt", readFile("configs/servo.c.txt", 2048));
|
||||
writeFile("firmware.s.txt", readFile("configs/servo.s.txt", 2048));
|
||||
}
|
||||
if (value == "19") {
|
||||
writeFile("firmware.c.txt", readFile("configs/firmware.c.txt", 2048));
|
||||
writeFile("firmware.s.txt", readFile("configs/firmware.s.txt", 2048));
|
||||
}
|
||||
|
||||
54
Logging.ino
54
Logging.ino
@@ -113,34 +113,36 @@ void sendLogData(String file, String topic, boolean type) {
|
||||
if (type) {
|
||||
//----------------------------------------------
|
||||
String log_date = readFile(file, 5000);
|
||||
log_date.replace("\r\n", "\n");
|
||||
log_date.replace("\r", "\n");
|
||||
String buf = "{}";
|
||||
String json_array;
|
||||
String unix_time;
|
||||
String value;
|
||||
while (log_date.length() != 0) {
|
||||
String tmp = selectToMarker (log_date, "\n");
|
||||
log_date = deleteBeforeDelimiter(log_date, "\n");
|
||||
unix_time = selectToMarker (tmp, " ");
|
||||
jsonWriteInt(buf, "x", unix_time.toInt());
|
||||
value = deleteBeforeDelimiter(tmp, " ");
|
||||
jsonWriteFloat(buf, "y1", value.toFloat());
|
||||
if (log_date.length() < 3) {
|
||||
json_array += buf;
|
||||
} else {
|
||||
json_array += buf + ",";
|
||||
if (log_date != "Failed") {
|
||||
log_date.replace("\r\n", "\n");
|
||||
log_date.replace("\r", "\n");
|
||||
String buf = "{}";
|
||||
String json_array;
|
||||
String unix_time;
|
||||
String value;
|
||||
while (log_date.length() != 0) {
|
||||
String tmp = selectToMarker (log_date, "\n");
|
||||
log_date = deleteBeforeDelimiter(log_date, "\n");
|
||||
unix_time = selectToMarker (tmp, " ");
|
||||
jsonWriteInt(buf, "x", unix_time.toInt());
|
||||
value = deleteBeforeDelimiter(tmp, " ");
|
||||
jsonWriteFloat(buf, "y1", value.toFloat());
|
||||
if (log_date.length() < 3) {
|
||||
json_array += buf;
|
||||
} else {
|
||||
json_array += buf + ",";
|
||||
}
|
||||
buf = "{}";
|
||||
}
|
||||
buf = "{}";
|
||||
unix_time = "";
|
||||
value = "";
|
||||
log_date = "";
|
||||
json_array = "{\"status\":[" + json_array + "]}";
|
||||
Serial.println(json_array);
|
||||
sendCHART(topic, json_array);
|
||||
json_array = "";
|
||||
getMemoryLoad("[i] after send log date");
|
||||
}
|
||||
unix_time = "";
|
||||
value = "";
|
||||
log_date = "";
|
||||
json_array = "{\"status\":[" + json_array + "]}";
|
||||
Serial.println(json_array);
|
||||
sendCHART(topic, json_array);
|
||||
json_array = "";
|
||||
getMemoryLoad("[i] after send log date");
|
||||
//----------------------------------------------
|
||||
} else {
|
||||
//----------------------------------------------
|
||||
|
||||
42
Widgets.ino
42
Widgets.ino
@@ -15,11 +15,40 @@ void createWidget (String widget_name, String page_name, String page_number, St
|
||||
jsonWriteStr(widget, "order", page_number);
|
||||
jsonWriteStr(widget, "descr", widget_name);
|
||||
jsonWriteStr(widget, "topic", prex + "/" + topic);
|
||||
#ifdef layout_in_ram
|
||||
|
||||
#ifdef layout_in_ram
|
||||
all_widgets += widget + "\r\n";
|
||||
#else
|
||||
#else
|
||||
addFile("layout.txt", widget);
|
||||
#endif
|
||||
#endif
|
||||
widget = "";
|
||||
}
|
||||
|
||||
void createWidgetParam (String widget_name, String page_name, String page_number, String file, String topic, String name1, String param1, String name2, String param2, String name3, String param3) {
|
||||
|
||||
String widget;
|
||||
widget = readFile(file, 1024);
|
||||
|
||||
if (widget == "Failed") return;
|
||||
if (widget == "Large") return;
|
||||
|
||||
widget_name.replace("#", " ");
|
||||
page_name.replace("#", " ");
|
||||
|
||||
jsonWriteStr(widget, "page", page_name);
|
||||
jsonWriteStr(widget, "order", page_number);
|
||||
jsonWriteStr(widget, "descr", widget_name);
|
||||
jsonWriteStr(widget, "topic", prex + "/" + topic);
|
||||
|
||||
if (name1 != "") jsonWriteStr(widget, name1, param1);
|
||||
if (name2 != "") jsonWriteStr(widget, name2, param2);
|
||||
if (name3 != "") jsonWriteStr(widget, name3, param3);
|
||||
|
||||
#ifdef layout_in_ram
|
||||
all_widgets += widget + "\r\n";
|
||||
#else
|
||||
addFile("layout.txt", widget);
|
||||
#endif
|
||||
widget = "";
|
||||
}
|
||||
|
||||
@@ -40,10 +69,11 @@ void createChart (String widget_name, String page_name, String page_number, Str
|
||||
jsonWriteStr(widget, "series", widget_name);
|
||||
jsonWriteStr(widget, "maxCount", maxCount);
|
||||
jsonWriteStr(widget, "topic", prex + "/" + topic);
|
||||
#ifdef layout_in_ram
|
||||
|
||||
#ifdef layout_in_ram
|
||||
all_widgets += widget + "\r\n";
|
||||
#else
|
||||
#else
|
||||
addFile("layout.txt", widget);
|
||||
#endif
|
||||
#endif
|
||||
widget = "";
|
||||
}
|
||||
|
||||
@@ -14,5 +14,6 @@
|
||||
"scenario": "1",
|
||||
"pushingbox_id": "v7C133E426B0C69E",
|
||||
"web_login": "admin",
|
||||
"web_pass": "admin"
|
||||
"web_pass": "admin",
|
||||
"udponoff": "1"
|
||||
}
|
||||
17
data/configs/servo.c.txt
Normal file
17
data/configs/servo.c.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
servo 1 12 50 Мой#сервопривод Сервоприводы 0 100 0 180 1
|
||||
servo 2 13 50 Мой#сервопривод Сервоприводы 0 100 0 180 2
|
||||
button 1 na Открыть1 Сервоприводы 0 3
|
||||
button 2 na Открыть2 Сервоприводы 0 4
|
||||
|
||||
//Можно создавать не более двух сервоприводов на одном устройстве.
|
||||
//1 - номер привода
|
||||
//12 - номер пина
|
||||
//50 - начальное значение в процентах
|
||||
|
||||
//0 - 100 диапазон ползунка
|
||||
//0 - 180 диапазон угла
|
||||
|
||||
//Представим ситуацию когда есть некая заслонка и при угле в 30 градусов она закрыта,
|
||||
//а при угле в 90 градусов открыта. В этом случае необходимо написать
|
||||
//0 100 30 90 и тогда поставив ползунок в 0 % серва встанет в положение 30 градусов,
|
||||
//а если поставить ползунок в 100 % серва встанет в положение 90 градусов.
|
||||
12
data/configs/servo.s.txt
Normal file
12
data/configs/servo.s.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
button1 = 1
|
||||
servoSet 1 100
|
||||
end
|
||||
button1 = 0
|
||||
servoSet 1 0
|
||||
end
|
||||
button2 = 1
|
||||
servoSet 2 100
|
||||
end
|
||||
button2 = 0
|
||||
servoSet 2 0
|
||||
end
|
||||
@@ -50,7 +50,8 @@
|
||||
"/preset?arg=15": "15.Датчик движения включающий свет",
|
||||
"/preset?arg=16": "16.Охранный датчик движения",
|
||||
"/preset?arg=17": "17.Система управления шаговыми двигателями на основе драйвера A4988 (открытие закрытие штор)",
|
||||
"/preset?arg=18": "Настройки по умолчанию"
|
||||
"/preset?arg=18": "18.Система управления сервоприводами",
|
||||
"/preset?arg=19": "Настройки по умолчанию"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -35,13 +35,13 @@
|
||||
{
|
||||
"type": "link",
|
||||
"title": "Переформировать список устройств",
|
||||
"action": "udp?arg=2",
|
||||
"action": "udp?arg=3",
|
||||
"class": "btn btn-block btn-success"
|
||||
},
|
||||
{
|
||||
"type": "link",
|
||||
"title": "Обновить страницу",
|
||||
"action": "udp?arg=3",
|
||||
"action": "udp?arg=4",
|
||||
"class": "btn btn-block btn-success"
|
||||
},
|
||||
{
|
||||
@@ -55,20 +55,30 @@
|
||||
{
|
||||
"type": "h3",
|
||||
"title": "Имя этого устройства:"
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "input",
|
||||
"title": "Имя устройства",
|
||||
"name":"dev_name",
|
||||
"name": "dev_name",
|
||||
"state": "{{name}}",
|
||||
"pattern": "[A-Za-z0-9]{6,12}"
|
||||
},
|
||||
{
|
||||
},
|
||||
{
|
||||
"type": "button",
|
||||
"title": "Сохранить",
|
||||
"action": "name?arg=[[dev_name]]",
|
||||
"class": "btn btn-block btn-success"
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "hr"
|
||||
},
|
||||
{
|
||||
"type": "checkbox",
|
||||
"name": "udponoff",
|
||||
"title": "Включить обмен данными между устройствами",
|
||||
"action": "/udp?arg=[[udponoff]]",
|
||||
"state": "{{udponoff}}"
|
||||
},
|
||||
{
|
||||
"type": "hr"
|
||||
},
|
||||
|
||||
@@ -23,6 +23,10 @@
|
||||
"type": "h4",
|
||||
"title": "Uptime: {{uptime}}"
|
||||
},
|
||||
{
|
||||
"type": "h4",
|
||||
"title": "Time: {{time}}"
|
||||
},
|
||||
{
|
||||
"type": "h4",
|
||||
"title": "Build version: {{firmware_version}}"
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
{
|
||||
"type": "button",
|
||||
"title": "Отправить настройки MQTT с этого устройства на все остальные",
|
||||
"action": "udp?arg=1",
|
||||
"action": "udp?arg=2",
|
||||
"class": "btn btn-block btn-success"
|
||||
},
|
||||
|
||||
|
||||
@@ -28,7 +28,9 @@ void pushControl() {
|
||||
WiFiClient client_push;
|
||||
|
||||
Serial.println("- connecting to pushing server: " + String(logServer));
|
||||
if (client_push.connect(logServer, 80)) {
|
||||
if (!client_push.connect(logServer, 80)) {
|
||||
Serial.println("- not connected");
|
||||
} else {
|
||||
Serial.println("- succesfully connected");
|
||||
|
||||
String postStr = "devid=";
|
||||
|
||||
11
set.h
11
set.h
@@ -31,6 +31,9 @@ boolean mb_4_of_memory = true;
|
||||
ESP8266HTTPUpdateServer httpUpdater;
|
||||
#include <WiFiUdp.h>
|
||||
WiFiUDP Udp;
|
||||
#include <Servo.h>
|
||||
Servo myServo1;
|
||||
Servo myServo2;
|
||||
|
||||
#ifdef MDNS_enable
|
||||
#include <ESP8266mDNS.h>
|
||||
@@ -40,13 +43,16 @@ WiFiUDP Udp;
|
||||
//===============библиотеки и объекты для ESP32===========================
|
||||
#ifdef ESP32
|
||||
#include <WiFi.h>
|
||||
#include <HTTPClient.h>
|
||||
#include <HTTPUpdate.h>
|
||||
#include <SPIFFS.h>
|
||||
#include <AsyncTCP.h>
|
||||
#include <analogWrite.h>
|
||||
#include <HTTPUpdate.h>
|
||||
#include <HTTPClient.h>
|
||||
#include "AsyncUDP.h"
|
||||
AsyncUDP udp;
|
||||
#include <ESP32_Servo.h>
|
||||
Servo myServo1;
|
||||
Servo myServo2;
|
||||
|
||||
#ifdef MDNS_enable
|
||||
#include <ESPmDNS.h>
|
||||
@@ -103,6 +109,7 @@ DallasTemperature sensors;
|
||||
#include <DHTesp.h>
|
||||
DHTesp dht;
|
||||
|
||||
#include <Wire.h>
|
||||
//===============FIRMWARE VARS========================
|
||||
boolean just_load = true;
|
||||
const char* hostName = "IoT Manager";
|
||||
|
||||
122
udp.ino
122
udp.ino
@@ -4,16 +4,24 @@ void UDP_init() {
|
||||
if (request->hasArg("arg")) {
|
||||
value = request->getParam("arg")->value();
|
||||
}
|
||||
if (value == "0") {
|
||||
jsonWriteStr(configSetup, "udponoff", value);
|
||||
request->send(200, "text/text", "ok");
|
||||
}
|
||||
if (value == "1") {
|
||||
mqtt_send_settings_to_udp = true;
|
||||
jsonWriteStr(configSetup, "udponoff", value);
|
||||
request->send(200, "text/text", "ok");
|
||||
}
|
||||
if (value == "2") {
|
||||
mqtt_send_settings_to_udp = true;
|
||||
request->send(200, "text/text", "ok");
|
||||
}
|
||||
if (value == "3") {
|
||||
SPIFFS.remove("/dev.csv");
|
||||
addFile("dev.csv", "device id;device name;ip address");
|
||||
request->redirect("/?dev");
|
||||
}
|
||||
if (value == "3") {
|
||||
if (value == "4") {
|
||||
request->redirect("/?dev");
|
||||
}
|
||||
});
|
||||
@@ -34,23 +42,25 @@ void UDP_init() {
|
||||
#endif
|
||||
|
||||
handleUdp_esp32();
|
||||
|
||||
|
||||
randomSeed(micros());
|
||||
udp_period = random(20000, 40000);
|
||||
|
||||
|
||||
ts.add(UDP, udp_period, [&](void*) {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
if (!udp_busy) {
|
||||
String line_to_send = "iotm;" + chipID + ";" + jsonRead(configSetup, "name");
|
||||
if (jsonRead(configSetup, "udponoff") == "1") {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
if (!udp_busy) {
|
||||
String line_to_send = "iotm;" + chipID + ";" + jsonRead(configSetup, "name");
|
||||
#ifdef ESP8266
|
||||
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
||||
Udp.write(line_to_send.c_str());
|
||||
Udp.endPacket();
|
||||
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
||||
Udp.write(line_to_send.c_str());
|
||||
Udp.endPacket();
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
udp.broadcast(line_to_send.c_str());
|
||||
udp.broadcast(line_to_send.c_str());
|
||||
#endif
|
||||
Serial.println("[UDP<=] dev info send");
|
||||
Serial.println("[UDP<=] dev info send");
|
||||
}
|
||||
}
|
||||
}
|
||||
}, nullptr, false);
|
||||
@@ -58,25 +68,27 @@ void UDP_init() {
|
||||
|
||||
void handleUdp() {
|
||||
#ifdef ESP8266
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
int packetSize = Udp.parsePacket();
|
||||
if (packetSize) {
|
||||
char udp_incomingPacket[255];
|
||||
Serial.printf("[UDP=>] Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
|
||||
received_ip = Udp.remoteIP().toString();
|
||||
int len = Udp.read(udp_incomingPacket, 255);
|
||||
if (len > 0) {
|
||||
udp_incomingPacket[len] = 0;
|
||||
if (jsonRead(configSetup, "udponoff") == "1") {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
int packetSize = Udp.parsePacket();
|
||||
if (packetSize) {
|
||||
char udp_incomingPacket[255];
|
||||
Serial.printf("[UDP=>] Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
|
||||
received_ip = Udp.remoteIP().toString();
|
||||
int len = Udp.read(udp_incomingPacket, 255);
|
||||
if (len > 0) {
|
||||
udp_incomingPacket[len] = 0;
|
||||
}
|
||||
received_udp_line = String(udp_incomingPacket);
|
||||
|
||||
if (received_udp_line.indexOf("iotm;") >= 0) {
|
||||
udp_data_parse = true;
|
||||
}
|
||||
if (received_udp_line.indexOf("mqttServer") >= 0) {
|
||||
udp_data_parse = true;
|
||||
}
|
||||
|
||||
}
|
||||
received_udp_line = String(udp_incomingPacket);
|
||||
|
||||
if (received_udp_line.indexOf("iotm;") >= 0) {
|
||||
udp_data_parse = true;
|
||||
}
|
||||
if (received_udp_line.indexOf("mqttServer") >= 0) {
|
||||
udp_data_parse = true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -88,14 +100,16 @@ void handleUdp_esp32() {
|
||||
udp.onPacket([](AsyncUDPPacket packet) {
|
||||
received_udp_line = (char*)packet.data();
|
||||
received_ip = packet.remoteIP().toString();
|
||||
|
||||
if (received_udp_line.indexOf("iotm;") >= 0) {
|
||||
udp_data_parse = true;
|
||||
if (jsonRead(configSetup, "udponoff") == "1") {
|
||||
|
||||
if (received_udp_line.indexOf("iotm;") >= 0) {
|
||||
udp_data_parse = true;
|
||||
}
|
||||
if (received_udp_line.indexOf("mqttServer") >= 0) {
|
||||
udp_data_parse = true;
|
||||
}
|
||||
|
||||
}
|
||||
if (received_udp_line.indexOf("mqttServer") >= 0) {
|
||||
udp_data_parse = true;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
#endif
|
||||
@@ -117,7 +131,7 @@ void do_udp_data_parse() {
|
||||
Serial.println("[V] new mqtt setting received from udp and saved");
|
||||
mqtt_connection = true;
|
||||
}
|
||||
if (received_udp_line.indexOf("iotm;") >= 0) {
|
||||
if (received_udp_line.indexOf("iotm;") >= 0) {
|
||||
add_dev_in_list("dev.csv", selectFromMarkerToMarker(received_udp_line, ";", 1), selectFromMarkerToMarker(received_udp_line, ";", 2), received_ip);
|
||||
}
|
||||
}
|
||||
@@ -131,24 +145,26 @@ void add_dev_in_list(String fileName, String id, String dev_name, String ip) {
|
||||
}
|
||||
|
||||
void send_mqtt_to_udp() {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
udp_busy = true;
|
||||
String mqtt_data = "{}";
|
||||
jsonWriteStr(mqtt_data, "mqttServer", jsonRead(configSetup, "mqttServer"));
|
||||
jsonWriteInt(mqtt_data, "mqttPort", jsonReadtoInt(configSetup, "mqttPort"));
|
||||
jsonWriteStr(mqtt_data, "mqttPrefix", jsonRead(configSetup, "mqttPrefix"));
|
||||
jsonWriteStr(mqtt_data, "mqttUser", jsonRead(configSetup, "mqttUser"));
|
||||
jsonWriteStr(mqtt_data, "mqttPass", jsonRead(configSetup, "mqttPass"));
|
||||
Serial.println(mqtt_data);
|
||||
if (jsonRead(configSetup, "udponoff") == "1") {
|
||||
if (WiFi.status() == WL_CONNECTED) {
|
||||
udp_busy = true;
|
||||
String mqtt_data = "{}";
|
||||
jsonWriteStr(mqtt_data, "mqttServer", jsonRead(configSetup, "mqttServer"));
|
||||
jsonWriteInt(mqtt_data, "mqttPort", jsonReadtoInt(configSetup, "mqttPort"));
|
||||
jsonWriteStr(mqtt_data, "mqttPrefix", jsonRead(configSetup, "mqttPrefix"));
|
||||
jsonWriteStr(mqtt_data, "mqttUser", jsonRead(configSetup, "mqttUser"));
|
||||
jsonWriteStr(mqtt_data, "mqttPass", jsonRead(configSetup, "mqttPass"));
|
||||
Serial.println(mqtt_data);
|
||||
#ifdef ESP8266
|
||||
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
||||
Udp.write(mqtt_data.c_str());
|
||||
Udp.endPacket();
|
||||
Udp.beginPacketMulticast(udp_multicastIP, udp_port, WiFi.localIP());
|
||||
Udp.write(mqtt_data.c_str());
|
||||
Udp.endPacket();
|
||||
#endif
|
||||
#ifdef ESP32
|
||||
udp.broadcast(mqtt_data.c_str());
|
||||
udp.broadcast(mqtt_data.c_str());
|
||||
#endif
|
||||
Serial.println("[UDP<=] mqtt info send");
|
||||
udp_busy = false;
|
||||
Serial.println("[UDP<=] mqtt info send");
|
||||
udp_busy = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user