Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Garažo programa su vonios kaitinimu
- 4 vnt temperatūros jutikliu
- vieno laipsnio tikslumu temperaturos atvaizdavimas blynk
- Vonios išjungimas pasiekus perkaitimu skaiciu
- */
- #include <ESP8266WiFi.h>
- #include <BlynkSimpleEsp8266.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #include <SimpleTimer.h>
- // BLYNK SPALVOS
- #define BLYNK_GREEN "#23C48E"
- #define BLYNK_BLUE "#04C0F8"
- #define BLYNK_YELLOW "#ED9D00"
- #define BLYNK_RED "#D3435C"
- #define BLYNK_DARK_BLUE "#5F7CD8"
- //f2a9c05ce8424633968c11a99a937db4 // Viliaus telefone
- //f22248caf6924878aae411ce93deb463 // Pauliaus garazo programa
- // Wi-Fi Ryšys BLYNK
- //Paulius
- char auth[] = "f22248caf6924878aae411ce93deb463";
- char ssid[] = "ScaryLab";
- char pass[] = "1GarazaS";
- //
- /*Vilius
- char auth[] = "f2a9c05ce8424633968c11a99a937db4";
- char ssid[] = "Horse_home";
- char pass[] = "samsung1993";
- */
- // Pinai
- byte ds_temp = 5; //D1 Visi trys termometrai
- byte dht_temp = 4; //D2 Oro termometras ir drėgnomatis
- byte gaisro_pin = 0; //D3 Gaisro jutiklis
- byte led = 2; //D4 Vidinis ledas
- byte teno_valdymas = 15; //D8 Teno įjungimas/ išjungimas
- // Kintamieji
- float dvt = 0;
- float mvt = 0;
- float tt = 0;
- float garazas_t = 0;
- float T_riba_virs = 45; // reles isjungimo riba pagal temperatūra
- float T_riba_apac = 20; // reles įjungimo riba pagal temperatūra
- float perkaitimo_temperatura = 0;
- float dvt_suma = 0;
- float mvt_suma = 0;
- float tt_suma = 0;
- float garazas_t_suma = 0;
- boolean ged_dvt = 0;
- boolean ged_mvt = 0;
- boolean ged_tt = 0;
- boolean ged_garazas_t = 0;
- boolean sistema_veikia; //įvyko gedimas, užgesinamas vidinis led
- boolean tenas_ijungtas = true;
- boolean ivyko_perkaitimas = false;
- boolean suveike_gaisras = false;
- boolean nebuvo_gaisro = true;
- boolean buves_led = false;
- byte surastu_ds18_kiekis = 0;
- byte perkaitimu_sk = 0;
- byte perkaitimu_auto_reset = 5; // kiek sykiu pabandyti automatiškai ijungti teną nukritus temperatūrai iki apatines ribos
- byte praleidimo_nr = 0;
- byte perkaitimo_kodas = 0; // 0 - nera perkaitimo, 1 - >T-riba, 2 - tt_gedimas, 3 - ir perkaito ir gedimas (neįvykdoma dėl -127)
- byte praleidimo_nr_t= 0;
- int reset_mygtukas = 0;
- int suma_n = 0;
- // BLYNK "buve" kintamieji
- int delta_t=-1; // minimalus temperatūros pokytis prieš siunčiant
- int buvo_v0=0;
- int buvo_v1=0;
- int buvo_v2=0;
- int buvo_v3=0;
- boolean buvo_v4=0;
- boolean buvo_v5=0;
- boolean buvo_v6=0;
- boolean buvo_v8=0;
- boolean buvo_v9=0;
- boolean buvo_v10=0;
- /*-----( Declare objects )-----*/
- // Setup a oneWire instance to communicate with any OneWire devices
- OneWire oneWire(ds_temp);
- // Pass our oneWire reference to Dallas Temperature.
- DallasTemperature sensors(&oneWire);
- /*-----( Declare Variables )-----*/
- // Assign the addresses of your 1-Wire temp sensors.
- // See the tutorial on how to obtain these addresses:
- // http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html
- DeviceAddress Did_v_t = { 0x28, 0x33, 0xE5, 0x5C, 0x06, 0x00, 0x00, 0xB9 };
- DeviceAddress Maz_v_t = { 0x28, 0xFE, 0xBA, 0x5B, 0x06, 0x00, 0x00, 0x10 };
- DeviceAddress Ten_t = { 0x28, 0xE6, 0x2B, 0x5C, 0x06, 0x00, 0x00, 0x16 };
- DeviceAddress Garazo_t = { 0x28, 0x8A, 0xB2, 0x6A, 0x06, 0x00, 0x00, 0xAD };
- WidgetLED led1(V4); //ivyko gaisras ledas
- WidgetLED led2(V5); //Veikia teno rele
- WidgetLED led3(V6); //Pasiekta automatiniu po perkaitime atstatymų riba
- BLYNK_WRITE (V7) {
- reset_mygtukas = param.asInt();
- }
- SimpleTimer timer_blynk;
- SimpleTimer timer_serial_print;
- void setup() {
- digitalWrite(led, HIGH);
- digitalWrite(led, LOW);
- delay(1000);
- digitalWrite(led, HIGH);
- Serial.begin(250000);
- // put your setup code here, to run once:
- Serial.println("blynk auth");
- Blynk.begin(auth, ssid, pass); //pradedamas ryšys su blynk
- Serial.println("TS auth ok");
- timer_blynk.setInterval(5000L, To_Blynk);
- timer_serial_print.setInterval(2000L, Serial_spausdinimas);
- Serial.print("Initializing Temperature Control Library Version ");
- Serial.println(DALLASTEMPLIBVERSION);
- // Initialize the Temperature measurement library
- sensors.begin();
- // set the resolution to 10 bit (Can be 9 to 12 bits .. lower is faster)
- sensors.setResolution(Did_v_t, 10);
- sensors.setResolution(Maz_v_t, 10);
- sensors.setResolution(Ten_t, 10);
- sensors.setResolution(Garazo_t, 10);
- // PinMode nustatymai
- pinMode(gaisro_pin, INPUT);
- pinMode(led, OUTPUT);
- pinMode(teno_valdymas, OUTPUT);
- digitalWrite(led, HIGH);
- digitalWrite(led, LOW);
- delay(100);
- digitalWrite(led, HIGH);
- }
- void loop() {
- // put your main code here, to run repeatedly:
- //Serial.println("pradejo loop");
- sistema_veikia = true;
- Blynk.run(); // Initiates Blynk
- timer_blynk.run();
- timer_serial_print.run();
- // Tikrinama ar prisijungė, įjungiamas vidinis led
- if ( !Blynk.connected() ) {
- sistema_veikia = false;
- }
- Temperaturos();
- suma_n++;
- dvt_suma += dvt;
- mvt_suma += mvt;
- tt_suma += tt;
- garazas_t_suma += garazas_t;
- // reles valdymas
- if (reset_mygtukas == 1) {
- perkaitimu_sk = 0;
- }
- suveike_gaisras = !digitalRead(gaisro_pin); //invertuojamas, kai 0 tai suveike jutiklis
- if (Perkaitimas() == true || suveike_gaisras == true ) {
- tenas_ijungtas = false ;
- } else {
- tenas_ijungtas = true ;
- }
- if (tenas_ijungtas == true ){
- digitalWrite(teno_valdymas, HIGH);
- } else {
- digitalWrite(teno_valdymas, LOW);
- }
- // gedimu pavaizdavimas su vidiniu led
- if (sistema_veikia == true) {
- digitalWrite(led, LOW);
- } else {
- digitalWrite(led, HIGH);
- }
- }
- int apvalinimas_i_int(float x){
- int y=0;
- if (x > 0){
- x = x+0.5;
- }
- if (x < 0)
- {
- x = x-0.5;
- }
- x=round(x);
- y = int(x);
- return y;
- }
- boolean Perkaitimas() {
- boolean perkaito = false;
- // apsauga nuo perkaitimu
- if (ivyko_perkaitimas == true) { // tikrinama ar galima vel ijungti
- if ( tt < T_riba_apac && ged_tt == false && perkaitimu_sk <= perkaitimu_auto_reset ) {
- perkaito = false;
- ivyko_perkaitimas = false;
- //Serial.println("tikrinama ar galima vel ijungti");
- }
- } else { //tikrinama ar reikia isjungti
- /*
- if ( tt > T_riba_virs || ged_tt == true ) {
- perkaito = true;
- perkaitimu_sk = perkaitimu_sk + 1;
- ivyko_perkaitimas = true;
- //Serial.println("tikrinama ar reikia isjungti");
- }*/
- if (tt > T_riba_virs) {
- perkaitimo_kodas = 1;
- perkaitimo_temperatura = tt;
- perkaito = true;
- perkaitimu_sk = perkaitimu_sk + 1;
- ivyko_perkaitimas = true;
- }
- if (ged_tt == true) {
- perkaitimo_kodas = 2;
- perkaito = true;
- perkaitimu_sk = perkaitimu_sk + 1;
- ivyko_perkaitimas = true;
- }
- if ( tt > T_riba_virs && ged_tt == true ) {
- perkaitimo_kodas = 3;
- }
- }
- return perkaito;
- }
- void To_Blynk() {
- /*
- V0 DVT
- V1 MVT
- V2 TT
- V3 garazas_t
- V4 //ivyko gaisras ledas
- V5 //Veikia teno rele
- V6 //Pasiekta automatiniu po perkaitime atstatymų riba
- V7
- V8
- V9
- V10
- */
- String Pranesimas = "Klaidos: ";
- boolean siusti_pranesima = false;
- byte praleidmu_sk = 5; // praleidimu_sk*5s - kas kiek siunciami notification
- // * Išvedimas i BLYNK
- /*---------------------------------------- LED --------------------------------*/
- if (true){
- if (suveike_gaisras ) {
- led1.on();
- siusti_pranesima = true;
- Pranesimas = String(Pranesimas + " Gaisras | " );
- } else {
- led1.off();
- }
- if (tenas_ijungtas ) {
- led2.on();
- } else {
- siusti_pranesima = true;
- // Pranesimas = String(Pranesimas + " Tenas_OFF | " );
- led2.off();
- }
- if (perkaitimu_sk >= perkaitimu_auto_reset ) {
- led3.on();
- siusti_pranesima = true;
- Pranesimas = String(Pranesimas + "Prtksito " + perkaitimu_sk + " kartus | " );
- } else {
- led3.off();
- }
- }
- /*---------------------------------------- TEMPERATŪROS --------------------------------*/
- if (praleidimo_nr_t > 6) {
- praleidimo_nr_t = 0;
- if(true){
- int skirtumas = 0;
- int vid_dvt = 0;
- int vid_mvt = 0;
- int vid_tt = 0;
- int vid_garazas_t = 0;
- vid_dvt = apvalinimas_i_int(dvt_suma / suma_n);
- vid_mvt = apvalinimas_i_int(mvt_suma / suma_n);
- vid_tt = apvalinimas_i_int(tt_suma / suma_n);
- vid_garazas_t = apvalinimas_i_int(garazas_t_suma / suma_n);
- dvt_suma=0;
- mvt_suma=0;
- tt_suma=0;
- garazas_t_suma=0;
- suma_n=0;
- if (ged_dvt) {
- siusti_pranesima = true;
- Pranesimas = String(Pranesimas + " DVT |" );
- } else {
- skirtumas = vid_dvt - buvo_v0;
- if ( abs(skirtumas) > delta_t ){
- Blynk.virtualWrite(V0, vid_dvt);
- buvo_v0=vid_dvt;
- }
- //Blynk.virtualWrite(V0, dvt);
- }
- if (ged_mvt) {
- siusti_pranesima = true;
- Pranesimas = String(Pranesimas + " MVT |" );
- } else {
- skirtumas = vid_mvt - buvo_v1;
- if ( abs(skirtumas) > delta_t ){
- Blynk.virtualWrite(V1, vid_mvt);
- buvo_v1=vid_mvt;
- }
- //Blynk.virtualWrite(V1, mvt);
- }
- if (ged_tt) {
- siusti_pranesima = true;
- Pranesimas = String(Pranesimas + " TT |" );
- } else {
- skirtumas = vid_tt - buvo_v2;
- if ( abs(skirtumas) > delta_t ){
- Blynk.virtualWrite(V2, vid_tt);
- buvo_v2=vid_tt;
- }
- //Blynk.virtualWrite(V2, tt);
- }
- if (ged_garazas_t) {
- siusti_pranesima = true;
- Pranesimas = String(Pranesimas + " GaT |" );
- } else {
- skirtumas = vid_garazas_t - buvo_v3;
- if ( abs(skirtumas) > delta_t ){
- Blynk.virtualWrite(V3, vid_garazas_t);
- buvo_v3=vid_garazas_t;
- }
- //Blynk.virtualWrite(V3, garazas_t);
- }
- }
- } else {
- praleidimo_nr_t++;
- }
- /*---------------------------------------- KITI PRANEŠIMAI --------------------------------*/
- if(true){
- if (praleidimo_nr > praleidmu_sk) {
- praleidimo_nr = 0;
- if (siusti_pranesima) {
- Blynk.notify(Pranesimas);
- }
- } else {
- praleidimo_nr = praleidimo_nr + 1;
- }
- }
- }
- void Temperaturos() {
- ged_dvt = 0;
- ged_mvt = 0;
- ged_tt = 0;
- ged_garazas_t = 0;
- float gedimo_riba = -127;
- //float gedimo_t=333;
- // Command all devices on bus to read temperature
- sensors.requestTemperatures();
- surastu_ds18_kiekis = sensors.getDeviceCount();
- dvt = sensors.getTempC(Did_v_t);
- mvt = sensors.getTempC(Maz_v_t);
- tt = sensors.getTempC(Ten_t);
- garazas_t = sensors.getTempC(Garazo_t);
- if (dvt == gedimo_riba) {
- ged_dvt = 1;
- //dvt=gedimo_t;
- }
- if (mvt == gedimo_riba) {
- ged_mvt = 1;
- //mvt=gedimo_t;
- }
- if (tt == gedimo_riba) {
- ged_tt = 1;
- //tt=gedimo_t;
- }
- if (garazas_t == gedimo_riba) {
- ged_garazas_t = 1;
- //garazas_t=gedimo_t;
- }
- }
- void Serial_spausdinimas() {
- //apie temperatūras
- Serial.println();
- Serial.print("1. Surasta prietaisu: ");
- Serial.println(surastu_ds18_kiekis);
- Serial.print("2. Surasti termometrai: ");
- Serial.print("Did.v.t: ");
- Serial.print(ged_dvt);
- Serial.print(" | Maz.v.t: ");
- Serial.print(ged_mvt);
- Serial.print(" | Teno.t: ");
- Serial.print(ged_tt);
- Serial.print(" | Garazo.t: ");
- Serial.println(ged_garazas_t);
- Serial.print("3. Did.v.t: ");
- Serial.print(dvt);
- Serial.print(" | Maz.v.t: ");
- Serial.print(mvt);
- Serial.print(" | Teno.t: ");
- Serial.print(tt);
- Serial.print(" | Garazo.t: ");
- Serial.println(garazas_t);
- Serial.println("4.");
- Serial.print("5. Perkaitimu skaicius ");
- Serial.println(perkaitimu_sk);
- Serial.println("6.");
- Serial.print("7. Perkaitimo priezastis ");
- Serial.print(perkaitimo_kodas);
- switch (perkaitimo_kodas) { // 0 - nera perkaitimo, 1 - >T-riba, 2 - tt_gedimas, 3 - ir perkaito ir gedimas (neįvykdoma dėl -127) perkaitimo_temperatura
- case 0:
- break;
- case 1:
- Serial.print(" Temperatura - ");
- Serial.println(perkaitimo_temperatura);
- perkaitimo_kodas = 0;
- break;
- case 2:
- Serial.println("Dingo Teno termojutiklis");
- perkaitimo_kodas = 0;
- break;
- case 3:
- Serial.println("Dingo Teno termojutiklis ir virsyta riba ");
- perkaitimo_kodas = 0;
- break;
- }
- /*
- Serial.println("8.");
- Serial.println("9.");
- Serial.println("10.");
- Serial.println("11.");
- Serial.println("12.");
- Serial.println("13.");
- Serial.println("14.");
- */
- Serial.println();
- Serial.println();
- Serial.println();
- Serial.println();
- Serial.println();
- Serial.println();
- Serial.println(".");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement