Files
IoTManager/set.h

217 lines
5.4 KiB
C
Raw Normal View History

2020-05-26 17:42:50 +02:00
/*******************************************************************
**********************FIRMWARE SETTINGS****************************
******************************************************************/
2020-05-19 21:13:54 +02:00
String firmware_version = "2.3.3";
2020-04-05 01:52:02 +02:00
boolean mb_4_of_memory = true;
2020-03-01 20:41:16 +03:00
//#define OTA_enable
//#define MDNS_enable
//#define WS_enable
//#define layout_in_ram
2020-05-20 02:16:23 +02:00
#define UDP_enable
2020-05-26 17:42:50 +02:00
/*==========================SENSORS===============================*/
2020-05-26 18:08:55 +02:00
//#define level_enable
//#define analog_enable
//#define dallas_enable
//#define dht_enable //подъедает оперативку сука
//#define bmp_enable
2020-05-20 02:16:23 +02:00
#define bme_enable
2020-05-26 17:42:50 +02:00
/*=========================LOGGING================================*/
2020-05-20 02:16:23 +02:00
#define logging_enable
2020-05-26 17:42:50 +02:00
/*==========================GEARS=================================*/
2020-05-20 02:16:23 +02:00
#define stepper_enable
#define servo_enable
2020-05-26 17:42:50 +02:00
/*=========================OTHER==================================*/
2020-05-20 02:16:23 +02:00
#define serial_enable
#define push_enable
2020-05-26 17:42:50 +02:00
/*================================================================*/
2020-05-20 02:16:23 +02:00
#define wifi_mqtt_reconnecting 20000
#define blink_pin 2
2020-05-02 12:20:30 +02:00
#define tank_level_times_to_send 10 //после скольки выстрелов делать отправку данных
#define statistics_update 1000 * 60 * 60 * 2
2020-05-26 17:42:50 +02:00
/*================================================================*/
//===============библиотеки и объекты для ESP8266=======================
2019-12-24 11:53:26 +03:00
#ifdef ESP8266
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
2020-03-01 20:41:16 +03:00
#include <ESP8266httpUpdate.h>
#include <ESP8266HTTPUpdateServer.h>
ESP8266HTTPUpdateServer httpUpdater;
#include <WiFiUdp.h>
WiFiUDP Udp;
2020-04-25 16:39:36 +02:00
#include <Servo.h>
Servo myServo1;
Servo myServo2;
#ifdef MDNS_enable
#include <ESP8266mDNS.h>
2019-12-24 11:53:26 +03:00
#endif
#endif
2020-05-26 17:42:50 +02:00
//===============библиотеки и объекты для ESP32===========================
2019-12-24 11:53:26 +03:00
#ifdef ESP32
#include <WiFi.h>
2020-04-25 16:39:36 +02:00
#include <HTTPClient.h>
#include <HTTPUpdate.h>
2019-12-24 11:53:26 +03:00
#include <SPIFFS.h>
#include <AsyncTCP.h>
#include <analogWrite.h>
#include "AsyncUDP.h"
AsyncUDP udp;
2020-05-02 12:20:30 +02:00
#include <ESP32_Servo.h>
2020-04-25 16:39:36 +02:00
Servo myServo1;
Servo myServo2;
#ifdef MDNS_enable
#include <ESPmDNS.h>
2019-12-24 11:53:26 +03:00
#endif
#endif
2020-05-26 17:42:50 +02:00
//===============общие библиотеки и объекты===============================
2020-03-16 00:00:59 +01:00
#include <Arduino.h>
2020-02-13 20:20:34 +03:00
#include "time.h"
2019-12-24 11:53:26 +03:00
#ifdef OTA_enable
#include <ArduinoOTA.h>
#endif
2019-12-24 11:53:26 +03:00
#include <FS.h>
#include <ArduinoJson.h>
#include <ESPAsyncWebServer.h>
2019-12-24 11:53:26 +03:00
#include <SPIFFSEditor.h>
AsyncWebServer server(80);
2019-12-24 11:53:26 +03:00
#ifdef WS_enable
AsyncWebSocket ws("/ws");
#endif
2019-12-24 11:53:26 +03:00
AsyncEventSource events("/events");
2020-04-02 22:56:01 +02:00
#include <time.h>
2019-12-24 11:53:26 +03:00
#include <TickerScheduler.h>
2020-05-02 12:20:30 +02:00
enum {ROUTER_SEARCHING, WIFI_MQTT_CONNECTION_CHECK, SENSORS, STEPPER1, STEPPER2, LOG1, LOG2, LOG3, LOG4, LOG5, TIMER_COUNTDOWN, TIME, TIME_SYNC, STATISTICS, UDP, UDP_DB, TEST };
TickerScheduler ts(TEST + 1);
2019-12-24 11:53:26 +03:00
#include <PubSubClient.h>
WiFiClient espClient;
2020-05-02 12:20:30 +02:00
PubSubClient client_mqtt(espClient);
2019-12-24 11:53:26 +03:00
#include <StringCommand.h>
StringCommand sCmd;
2019-12-24 11:53:26 +03:00
#include <Bounce2.h>
#define NUM_BUTTONS 6
boolean but[NUM_BUTTONS];
Bounce * buttons = new Bounce[NUM_BUTTONS];
2020-05-20 02:16:23 +02:00
#ifdef level_enable
2019-12-24 11:53:26 +03:00
#include "GyverFilters.h" //настраивается в GyverHacks.h - MEDIAN_FILTER_SIZE
GMedian medianFilter;
2020-05-20 02:16:23 +02:00
#endif
2020-05-20 02:16:23 +02:00
#ifdef dallas_enable
2019-12-24 11:53:26 +03:00
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire *oneWire;
DallasTemperature sensors;
2020-05-20 02:16:23 +02:00
#endif
2020-05-20 02:16:23 +02:00
#ifdef dht_enable
2020-04-02 22:56:01 +02:00
#include <DHTesp.h>
2020-02-15 20:17:25 +03:00
DHTesp dht;
2020-05-20 02:16:23 +02:00
#endif
2019-12-24 11:53:26 +03:00
2020-04-25 16:39:36 +02:00
#include <Wire.h>
2020-05-02 12:20:30 +02:00
2020-05-20 02:16:23 +02:00
#ifdef bmp_enable
2020-05-02 12:20:30 +02:00
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bmp; // use I2C interface
Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor();
Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor();
2020-05-20 02:16:23 +02:00
#endif
2020-05-02 12:20:30 +02:00
2020-05-26 17:42:50 +02:00
#ifdef bme_enable
2020-05-02 12:20:30 +02:00
#include <Adafruit_BME280.h>
Adafruit_BME280 bme; // use I2C interface
Adafruit_Sensor *bme_temp = bme.getTemperatureSensor();
Adafruit_Sensor *bme_pressure = bme.getPressureSensor();
Adafruit_Sensor *bme_humidity = bme.getHumiditySensor();
2020-05-20 02:16:23 +02:00
#endif
2020-05-04 15:57:54 +02:00
2020-05-19 21:13:54 +02:00
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(14, 12);
2020-05-26 17:42:50 +02:00
//===============FIRMWARE VARS========================
2020-03-22 01:50:31 +01:00
boolean just_load = true;
2020-03-01 20:41:16 +03:00
const char* hostName = "IoT Manager";
//JSON
2020-05-02 12:20:30 +02:00
String configSetup = "{}";
String configJson = "{}";
2019-12-24 11:53:26 +03:00
String optionJson = "{}";
//MQTT
2019-12-24 11:53:26 +03:00
String chipID = "";
String prex;
2020-03-24 19:01:11 +01:00
String all_widgets = "";
2019-12-24 11:53:26 +03:00
String scenario;
String order_loop;
//SENSORS
2020-05-02 12:20:30 +02:00
String analog_value_names_list;
int enter_to_analog_counter;
String level_value_name;
2020-05-04 15:57:54 +02:00
2020-05-02 12:20:30 +02:00
String dhtT_value_name;
String dhtH_value_name;
2020-05-04 15:57:54 +02:00
2020-05-02 12:20:30 +02:00
String bmp280T_value_name;
String bmp280P_value_name;
2020-05-04 15:57:54 +02:00
2020-05-02 12:20:30 +02:00
String bme280T_value_name;
2020-05-04 15:57:54 +02:00
String bme280P_value_name;
String bme280H_value_name;
String bme280A_value_name;
int sensors_reading_map [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
//============================0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14
2020-05-02 12:20:30 +02:00
//LOGGING
String logging_value_names_list;
int enter_to_logging_counter;
//NTP and TIME
2019-12-24 11:53:26 +03:00
String current_time;
//SCENARIO
2019-12-24 11:53:26 +03:00
int scenario_line_status [] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
//ERRORS
2020-02-19 03:14:21 +03:00
int wifi_lost_error = 0;
2020-03-18 09:57:46 +01:00
int mqtt_lost_error = 0;
String last_version;
//ASYNC ACTIONS
2020-04-05 01:52:02 +02:00
boolean upgrade_url = false;
boolean upgrade = false;
boolean mqtt_connection = false;
boolean udp_data_parse = false;
boolean mqtt_send_settings_to_udp = false;
2020-05-02 12:20:30 +02:00
boolean i2c_scanning = false;
//UDP
2020-04-05 01:52:02 +02:00
boolean udp_busy = false;
unsigned int udp_port = 4210;
#ifdef ESP8266
2020-04-05 01:52:02 +02:00
IPAddress udp_multicastIP (255, 255, 255, 255);
#endif
#ifdef ESP32
IPAddress udp_multicastIP (239, 255, 255, 255);
#endif
2020-04-05 01:52:02 +02:00
String received_ip;
String received_udp_line;
2020-04-22 20:35:50 +02:00
int udp_period;
2020-05-02 12:20:30 +02:00
//i2c
String i2c_list;