commit 2bd1c8424b12b4bb0245275378e9531014b1f408 Author: skysamara Date: Thu Jun 3 19:52:39 2021 +0300 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..755b6ce --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/auth.h diff --git a/Hydro_DHT22_Blink.ino b/Hydro_DHT22_Blink.ino new file mode 100644 index 0000000..9e5d49e --- /dev/null +++ b/Hydro_DHT22_Blink.ino @@ -0,0 +1,160 @@ +////////////////////////////////////////////////////////////// +class Pump +{ + int pin; // Куда подключен + unsigned long lastTime; + int duration; // Время полива + + int maxDuration; // Максимальное время полива + int currentDuration; // Текущее время полива для отображения в приложении + + public: + Pump(int p) // Пин + { + pin = p; + pinMode(pin, OUTPUT); + digitalWrite(pin, HIGH); // При создании выключена // Инверсия + + lastTime = millis(); + currentDuration = 0; + } + + void Update() + { + if ((millis() - lastTime) > duration * 1000) + { + digitalWrite(pin, HIGH); // Инверсия + } + } + + void Start() + { + if (!IsON()) + { + Serial.print("Start! "); + Serial.println(duration); + lastTime = millis(); + digitalWrite(pin, LOW); // Инверсия + Update(); + } + } + + void Stop() + { + if (IsON()) + { + Serial.print("Stop! "); + Serial.println(duration); + lastTime = millis(); + digitalWrite(pin, HIGH); // Инверсия + Update(); + } + } + + boolean IsON() // Текущее состояние + { + if (digitalRead(pin) == LOW) // Инверсия + { + return true; + } + else + { + return false; + } + } + + int GetCurrentDuration() + { + if (IsON()) // Если помпа включена + { + return ((millis() - lastTime) / 1000); // Текущее время полива + } + else + { + return 0; + } + } + + void SetDuration(int d) + { + duration = d; + Serial.print("SetDuration "); + Serial.println(duration); + } +}; +////////////////////////////////////////////////////////////// + +#define BLYNK_PRINT Serial +#include +#include +#include "DHT.h" +#include "WEMOS_Motor.h" +#include + +//char auth[] = "Fdj2ndHfZmRirtgrgdrfh81fzPpfB0-"; // origin +//char ssid[] = "WIFI"; +//char pass[] = "132password"; + +#include "auth.h" + + +BLYNK_CONNECTED() { + // Request Blynk server to re-send latest values for all pins + Blynk.syncAll(); +} + +#define DHTTYPE DHT22 +#define DHTPin 0 //D3 DHT датчик +#define term_power 4 //D2 +#define led_pin 2 // D4 + //#define pump1_pin 3 // ??????????D4 + + boolean led_status = 0; + float Temperature; + float Humidity; + + DHT dht(DHTPin, DHTTYPE); // Инициализация датчика DHT + BlynkTimer timer; + + // Pump pump1(pump1_pin); + Pump pump1(led_pin); + + Motor M1(0x30,_MOTOR_A, 1000); // Помпа + + ///////////////////////////////////////////////////////////// + // BLYNK_WRITE() на первой вкладке, по-другому не работает // + ///////////////////////////////////////////////////////////// + + BLYNK_WRITE(V0) // Длительность полива первой помпы + { + int d = param.asInt(); + pump1.SetDuration(d); + Serial.print("Длительность: "); + Serial.println(d); + } + + BLYNK_WRITE(V1) // Таймер + { + // You'll get HIGH/1 at startTime and LOW/0 at stopTime. + // this method will be triggered every day + // until you remove widget or stop project or + // clean stop/start fields of widget + + Serial.print("Таймер: "); + Serial.println(pump1.GetCurrentDuration()); + + pump1.Start(); + } + + BLYNK_WRITE(V4) // Кнопка помпы 1 + { + pump1.Start(); + } + + //BLYNK_WRITE(V5) // Таймер + //{ + // int pinValue = param.asInt(); // assigning incoming value from pin V1 to a variable + // Serial.print("V1 Slider value is: "); + // Serial.println(pinValue); + // run_pump(); + //} diff --git a/r10_BlinkClasses.ino b/r10_BlinkClasses.ino new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/r10_BlinkClasses.ino @@ -0,0 +1 @@ + diff --git a/w10_BlinkWrite.ino b/w10_BlinkWrite.ino new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/w10_BlinkWrite.ino @@ -0,0 +1 @@ + diff --git a/w10_Class_Init.ino b/w10_Class_Init.ino new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/w10_Class_Init.ino @@ -0,0 +1 @@ + diff --git a/x10_setup.ino b/x10_setup.ino new file mode 100644 index 0000000..be2f458 --- /dev/null +++ b/x10_setup.ino @@ -0,0 +1,34 @@ +void setup(void) +{ + Serial.begin(115200); + delay(100); + + pinMode(term_power, OUTPUT); + digitalWrite(term_power, HIGH); + + pinMode(DHTPin, INPUT); + + // readSettings(); + + + dht.begin(); + Blynk.begin(auth, ssid, pass); + + timer.setInterval(1000L, timerEvent); + + bool b = 1; + float f = 100000; + int i = 5; + Serial.print("***** b *****"); + Serial.println(sizeof(b)); + + Serial.print("***** f *****"); + Serial.println(sizeof(f)); + + Serial.print("***** i *****"); + Serial.println(sizeof(i)); + + EEPROM.begin(512); + + readSettings(); +} diff --git a/y10_fun.ino b/y10_fun.ino new file mode 100644 index 0000000..dd4d3c4 --- /dev/null +++ b/y10_fun.ino @@ -0,0 +1,44 @@ +void timerEvent() +{ + read_DHT22(); + refreshApp(); +} + +void refreshApp() +{ + Blynk.virtualWrite(V5, pump1.GetCurrentDuration()); + Blynk.virtualWrite(V4, pump1.IsON()); +} + + + +void read_DHT22() +{ + Temperature = dht.readTemperature(); + Humidity = dht.readHumidity(); + + // Serial.print("Температура: "); + // Serial.println(Temperature, 2); + // Serial.print("Влажность: "); + // Serial.println(Humidity, 2); + + Blynk.virtualWrite(V3, Temperature); + Blynk.virtualWrite(V2, Humidity); +} + +// void writeSettings(){ // Для сохранения настроек в EEPROM +// EEPROM.update(0, pump1.GetCurentDuration(); +//} + +void readSettings() { +// int f = 0; +// EEPROM.get(0, f); +// pump1.setDuration(f); +// Serial.print("EEPROM.get(0, f): "); +// Serial.println(f, 2); +// +// EEPROM.write(0, 15); +// EEPROM.get(0, f); +// Serial.print("EEPROM.write(0, f): "); +// Serial.println(f, 2); +} diff --git a/z10_loop.ino b/z10_loop.ino new file mode 100644 index 0000000..62fa9a2 --- /dev/null +++ b/z10_loop.ino @@ -0,0 +1,7 @@ +void loop(void) +{ + int connected = Blynk.connected(); + Blynk.run(); + timer.run(); + pump1.Update(); +}