From 5bec53e6c24e71259f777222412c5c036508176a Mon Sep 17 00:00:00 2001 From: Yuri Trikoz Date: Fri, 19 Jun 2020 01:50:19 +0300 Subject: [PATCH] global vars --- include/Consts.h | 236 +++++--------------------------------- include/Global.h | 195 +++++++++++++++++++++++++++++-- include/push_pushingbox.h | 2 +- src/Global.cpp | 100 ++++++++++++++++ src/Init.cpp | 10 +- 5 files changed, 321 insertions(+), 222 deletions(-) create mode 100644 src/Global.cpp diff --git a/include/Consts.h b/include/Consts.h index e6ced715..e7ede351 100644 --- a/include/Consts.h +++ b/include/Consts.h @@ -1,223 +1,45 @@ -#include +#pragma once + +#define firmware_version "2.3.3" + +/* +* Firmware settings +*/ +#define mb_4_of_memory 1 +#define wifi_mqtt_reconnecting 20000 +#define blink_pin 2 +#define tank_level_times_to_send 10 //после скольки выстрелов делать отправку данных +#define statistics_update 1000 * 60 * 60 * 2 -/******************************************************************* - **********************FIRMWARE SETTINGS**************************** - ******************************************************************/ -String firmware_version = "2.3.3"; -boolean mb_4_of_memory = true; //#define OTA_enable //#define MDNS_enable //#define WS_enable //#define layout_in_ram #define UDP_enable -/*==========================SENSORS===============================*/ + +/* +* Sensor +*/ //#define level_enable //#define analog_enable //#define dallas_enable -//#define dht_enable //подъедает оперативку сука +//#define dht_enable //#define bmp_enable //#define bme_enable -/*=========================LOGGING================================*/ + +/* +* Logging +*/ #define logging_enable -/*==========================GEARS=================================*/ + +/* +* Gears +*/ #define stepper_enable #define servo_enable -/*=========================OTHER==================================*/ + +/* +* Other +*/ #define serial_enable #define push_enable -/*================================================================*/ -#define wifi_mqtt_reconnecting 20000 -#define blink_pin 2 -#define tank_level_times_to_send 10 //после скольки выстрелов делать отправку данных -#define statistics_update 1000 * 60 * 60 * 2 -/*================================================================*/ - -//===============общие библиотеки и объекты=============================== -#include -#include -#include -#include -#include -#include - -//===============библиотеки и объекты для ESP8266======================= -#ifdef ESP8266 -#include -#include -#include -#include -ESP8266HTTPUpdateServer httpUpdater; -#include -WiFiUDP Udp; -#include -Servo myServo1; -Servo myServo2; -#ifdef MDNS_enable -#include -#endif -#endif - -//===============библиотеки и объекты для ESP32=========================== -#ifdef ESP32 -#include -#include -#include -#include -#include -#include -#include -AsyncUDP udp; -#include -Servo myServo1; -Servo myServo2; -#ifdef MDNS_enable -#include -#endif -#endif - -#ifdef OTA_enable -#include -#endif - -AsyncWebServer server(80); - -#ifdef WS_enable -AsyncWebSocket ws("/ws"); -#endif - -AsyncEventSource events("/events"); -#include -#include -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); - -#include -WiFiClient espClient; -PubSubClient client_mqtt(espClient); - -#include -StringCommand sCmd; - -#include -#define NUM_BUTTONS 6 -boolean but[NUM_BUTTONS]; -Bounce *buttons = new Bounce[NUM_BUTTONS]; - -#ifdef level_enable -#include "GyverFilters.h" //настраивается в GyverHacks.h - MEDIAN_FILTER_SIZE -GMedian medianFilter; -#endif - -#ifdef dallas_enable -#include -#include -OneWire *oneWire; -DallasTemperature sensors; -#endif - -#ifdef dht_enable -#include -DHTesp dht; -#endif - -#include - -#ifdef bmp_enable -#include -Adafruit_BMP280 bmp; // use I2C interface -Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor(); -Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor(); -#endif - -#ifdef bme_enable -#include -Adafruit_BME280 bme; // use I2C interface -Adafruit_Sensor *bme_temp = bme.getTemperatureSensor(); -Adafruit_Sensor *bme_pressure = bme.getPressureSensor(); -Adafruit_Sensor *bme_humidity = bme.getHumiditySensor(); -#endif - -//#include -//SoftwareSerial mySerial(14, 12); - -//===============FIRMWARE VARS======================== -boolean just_load = true; -const char *hostName = "IoT Manager"; -//JSON -String configSetup = "{}"; -String configJson = "{}"; -String optionJson = "{}"; -//MQTT -String chipID = ""; -String prex; -String all_widgets = ""; -String scenario; -String order_loop; -//SENSORS -String analog_value_names_list; -int enter_to_analog_counter; - -String level_value_name; - -String dhtT_value_name; -String dhtH_value_name; - -String bmp280T_value_name; -String bmp280P_value_name; - -String bme280T_value_name; -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 - -//LOGGING -String logging_value_names_list; -int enter_to_logging_counter; -//NTP and TIME -String current_time; -//SCENARIO -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 -int wifi_lost_error = 0; -int mqtt_lost_error = 0; -String last_version; -//ASYNC ACTIONS -boolean upgrade_url = false; -boolean upgrade = false; -boolean mqtt_connection = false; -boolean udp_data_parse = false; -boolean mqtt_send_settings_to_udp = false; -boolean i2c_scanning = false; -//UDP -boolean udp_busy = false; -unsigned int udp_port = 4210; -#ifdef ESP8266 -IPAddress udp_multicastIP(255, 255, 255, 255); -#endif -#ifdef ESP32 -IPAddress udp_multicastIP(239, 255, 255, 255); -#endif -String received_ip; -String received_udp_line; -int udp_period; -//i2c -String i2c_list; diff --git a/include/Global.h b/include/Global.h index e4b84378..4f224d5a 100644 --- a/include/Global.h +++ b/include/Global.h @@ -1,9 +1,191 @@ #pragma once #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "Consts.h" +/* +* ESP8266 +*/ +#ifdef ESP8266 +#include +#include +#include +#include +ESP8266HTTPUpdateServer httpUpdater; +#include +WiFiUDP Udp; +#include +#ifdef MDNS_enable +#include +#endif +#endif + +/* +* ESP32 +*/ +#ifdef ESP32 +#include +#include +#include +#include +#include +#include +#include +extern AsyncUDP udp; +#include +#ifdef MDNS_enable +#include +#endif +#endif + +extern Servo myServo1; +extern Servo myServo2; + +#ifdef OTA_enable +#include +#endif + +extern AsyncWebServer server; + +// Global vars +extern boolean just_load; +extern const char *hostName; + +extern String configSetup; +extern String configJson; +extern String optionJson; + +extern String chipID; +extern String prex; +extern String all_widgets; +extern String scenario; +extern String order_loop; + +extern String analog_value_names_list; +extern int enter_to_analog_counter; + +extern String level_value_name; + +extern String dhtT_value_name; +extern String dhtH_value_name; + +extern String bmp280T_value_name; +extern String bmp280P_value_name; + +extern String bme280T_value_name; +extern String bme280P_value_name; +extern String bme280H_value_name; +extern String bme280A_value_name; + +extern String logging_value_names_list; +extern int enter_to_logging_counter; + +extern String current_time; + +extern int scenario_line_status[40]; + +extern int wifi_lost_error; +extern int mqtt_lost_error; + +extern String last_version; + +extern boolean upgrade_url; +extern boolean upgrade; +extern boolean mqtt_connection; +extern boolean udp_data_parse; +extern boolean mqtt_send_settings_to_udp; +extern boolean i2c_scanning; + +#ifdef WS_enable +extern AsyncWebSocket ws; +#endif + +extern AsyncEventSource events; + +extern int sensors_reading_map[15]; + +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 }; + +extern TickerScheduler ts; + +extern WiFiClient espClient; +extern PubSubClient client_mqtt; +extern StringCommand sCmd; + +#define NUM_BUTTONS 6 +extern boolean but[NUM_BUTTONS]; +extern Bounce *buttons; + +extern boolean udp_busy; +extern unsigned int udp_port; +extern IPAddress udp_multicastIP; +extern String received_ip; +extern String received_udp_line; +extern int udp_period; + +#ifdef level_enable +#include "GyverFilters.h" //настраивается в GyverHacks.h - MEDIAN_FILTER_SIZE +GMedian medianFilter; +#endif + +#ifdef dallas_enable +#include +#include +OneWire *oneWire; +DallasTemperature sensors; +#endif + +#ifdef dht_enable +#include +DHTesp dht; +#endif + +#include + +#ifdef bmp_enable +#include +Adafruit_BMP280 bmp; // use I2C interface +Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor(); +Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor(); +#endif + +#ifdef bme_enable +#include +Adafruit_BME280 bme; // use I2C interface +Adafruit_Sensor *bme_temp = bme.getTemperatureSensor(); +Adafruit_Sensor *bme_pressure = bme.getPressureSensor(); +Adafruit_Sensor *bme_humidity = bme.getHumiditySensor(); +#endif + +//#include +//SoftwareSerial mySerial(14, 12); + // Cmd extern void CMD_init(); extern void button(); @@ -61,12 +243,12 @@ extern void choose_log_date_and_send(); // Main void getMemoryLoad(String text); -extern String jsonReadStr(String& json, String name); -extern int jsonReadInt(String& json, String name); -extern String jsonWriteInt(String& json, String name, int volume); -extern String jsonWriteStr(String& json, String name, String volume); +extern String jsonReadStr(String &json, String name); +extern int jsonReadInt(String &json, String name); +extern String jsonWriteInt(String &json, String name, int volume); +extern String jsonWriteStr(String &json, String name, String volume); extern void saveConfig(); -extern String jsonWriteFloat(String& json, String name, float volume); +extern String jsonWriteFloat(String &json, String name, float volume); extern String getURL(String urls); @@ -85,11 +267,10 @@ extern String selectFromMarkerToMarker(String str, String found, int number); extern void servo_(); extern boolean isDigitStr(String str); -extern String jsonWriteStr(String& json, String name, String volume); +extern String jsonWriteStr(String &json, String name, String volume); extern void led_blink(String satus); extern int count(String str, String found); - // Mqtt extern void MQTT_init(); extern boolean MQTT_Connecting(); diff --git a/include/push_pushingbox.h b/include/push_pushingbox.h index 1d03b9ca..a96626ef 100644 --- a/include/push_pushingbox.h +++ b/include/push_pushingbox.h @@ -2,7 +2,7 @@ #include "Global.h" -inline void Push_init() { +void Push_init() { server.on("/pushingboxDate", HTTP_GET, [](AsyncWebServerRequest* request) { if (request->hasArg("pushingbox_id")) { jsonWriteStr(configSetup, "pushingbox_id", request->getParam("pushingbox_id")->value()); diff --git a/src/Global.cpp b/src/Global.cpp new file mode 100644 index 00000000..9a24eeda --- /dev/null +++ b/src/Global.cpp @@ -0,0 +1,100 @@ +#include "Global.h" + +TickerScheduler ts(TEST + 1); + +WiFiClient espClient; +PubSubClient client_mqtt(espClient); +StringCommand sCmd; + +// Web +AsyncWebServer server(80); + +#ifdef WS_enable +AsyncWebSocket ws("/ws"); +#endif + +AsyncEventSource events("/events"); + +// Global vars +boolean just_load = true; +const char *hostName = "IoT Manager"; + +// Json +String configSetup = "{}"; +String configJson = "{}"; +String optionJson = "{}"; + +// Mqtt +String chipID = ""; +String prex; +String all_widgets = ""; +String scenario; +String order_loop; + +// Sensors +String analog_value_names_list; +int enter_to_analog_counter; + +String level_value_name; + +String dhtT_value_name; +String dhtH_value_name; + +String bmp280T_value_name; +String bmp280P_value_name; + +String bme280T_value_name; +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}; + +// Logging +String logging_value_names_list; +int enter_to_logging_counter; + +// Ntp and time +String current_time; + +// Scenario +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 +int wifi_lost_error = 0; +int mqtt_lost_error = 0; + +String last_version; + +// Async actions +boolean upgrade_url = false; +boolean upgrade = false; +boolean mqtt_connection = false; +boolean udp_data_parse = false; +boolean mqtt_send_settings_to_udp = false; +boolean i2c_scanning = false; + +// Servo +Servo myServo1; +Servo myServo2; + +//Buttons +boolean but[NUM_BUTTONS]; +Bounce *buttons = new Bounce[NUM_BUTTONS]; + +// Udp +boolean udp_busy = false; +unsigned int udp_port = 4210; +#ifdef ESP8266 +IPAddress udp_multicastIP(255, 255, 255, 255); +#endif +#ifdef ESP32 +IPAddress udp_multicastIP(239, 255, 255, 255); +AsyncUDP udp; +#endif +String received_ip; +String received_udp_line; +int udp_period; + +// i2c +String i2c_list; diff --git a/src/Init.cpp b/src/Init.cpp index 9a81f8a8..2cac31c4 100644 --- a/src/Init.cpp +++ b/src/Init.cpp @@ -66,7 +66,7 @@ void Device_init() { int array_sz = sizeof(sensors_reading_map) / sizeof(sensors_reading_map[0]); - for (int i = 0; i < array_sz; i++) { + for (int i = 0; i < array_sz; i++) { sensors_reading_map[i] = 0; } @@ -219,20 +219,16 @@ void statistics() { urls += "iot-manager_esp32"; #endif urls += "&"; - //----------------------------------------------------------------- #ifdef ESP8266 urls += ESP.getResetReason(); - //Serial.println(ESP.getResetReason()); #endif #ifdef ESP32 urls += "Power on"; #endif urls += "&"; - //----------------------------------------------------------------- - urls += "ver: " + firmware_version; - //----------------------------------------------------------------- + urls += "ver: "; + urls += String(firmware_version); String stat = getURL(urls); - //Serial.println(stat); } }