[code]
//#define BLYNK_PRINT Serial
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
char auth[] = "**************";
#define W5100_CS 10
#define SDCARD_CS 4
#define BLYNK_RED "#D3435C"
#define BLYNK_GREEN "#23C48E"
BlynkTimer timer;
#include <Wire.h>
#include "RTClib.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,4,5,6,7);
RTC_DS1307 rtc;
int SR = (A9);
int MR = (A8);
int NR = (A10);
int MM = (A11);
boolean atidaryti = true;
boolean uzdaryti = true;
boolean laistOn = true;
boolean laistOff = true;
boolean outlasitOn = true;
boolean outlaistOff = true;
int inpu1 = 22;
int inpu2 = 23;
int inpu3 = 24;
int inpu4 = 25;
int inpu5 = 26;
int inpu6 = 27;
int bdoor = 0;
int bin = 0;
int bout = 0;
const int reverse = 30;
const int door = 31;
const int window = 32;
const int laistymas = 33;
const int wout = 34;
char daysOfTheWeek[7][12] = {"Sekmad","Pirmad", "Antrad", "Trečiad", "Ketvirtad", "Penktad", "Šeštad"};
void myTimerEvent()
{
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, millis() / 100);
}
void setup () {
Serial.begin(9600);
pinMode(SDCARD_CS, OUTPUT); //blynk
digitalWrite(SDCARD_CS, HIGH);
Blynk.begin(auth);
timer.setInterval(1000L, myTimerEvent);
pinMode(reverse ,OUTPUT);
pinMode(door ,OUTPUT);
pinMode(window ,OUTPUT);
pinMode(laistymas ,OUTPUT);
pinMode(wout, OUTPUT);
pinMode(inpu1,INPUT_PULLUP);
pinMode(inpu2,INPUT_PULLUP);
pinMode(inpu3,INPUT);
pinMode(inpu4,INPUT);
pinMode(inpu5, INPUT);
pinMode(inpu6, INPUT);
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
//rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2020, 04, 28, 21, 23, 0)); // <----------------------SET TIME AND DATE: YYYY,MM,DD,HH,MM,SS
}
delay(100);
lcd.begin(16,2);
rtc.adjust(DateTime(2020, 05, 5, 20, 20, 5)); // <----------------------SET TIME AND DATE: YYYY,MM,DD,HH,MM,SS
}
BLYNK_WRITE(V2)
{
bin = param.asInt();
if (param.asInt()== 1){
bin == HIGH;
} else { bin == LOW;
}
}
BLYNK_WRITE(V3)
{
bout = param.asInt();
if (param.asInt()== 1){
bout == HIGH;
} else { bout == LOW;
}
}
BLYNK_WRITE(V4)
{
bdoor = param.asInt();
if (param.asInt()== 1){
bdoor == HIGH;
} else { bdoor == LOW;
}
}
void loop () {
int dig = digitalRead(inpu1);
int dig1 = digitalRead(inpu2);
int dig2 = digitalRead(inpu3);
int dig3 = digitalRead(inpu4);
int dig4 = digitalRead(inpu5);
int dig5 = digitalRead(inpu6);
Blynk.run();
if (dig==HIGH) //jei durys atidarytos galinukas atidarytu duru (NC) 1 kont
{
Blynk.virtualWrite(V11,255);
Blynk.setProperty(V11, "color", BLYNK_GREEN);
Blynk.setProperty(V11, "label", "DURYS ATIDARYTOS");
}
if (dig1==HIGH) //jei durys uzdarytos galinukas atidarytu duru (NO) 2 kont
{
Blynk.virtualWrite(V11,255);
Blynk.setProperty(V11, "color", BLYNK_RED);
Blynk.setProperty(V11, "label", "DURYS UŽDARYTOS");
}
if ((dig==LOW) && (dig1==LOW)) //Jei nesuveikes JOKs galinukas (duru) 1kont - NO && 2kont NC
{
Blynk.virtualWrite(V11,0);
Blynk.setProperty(V11, "label", "VYKDOMA");
}
if (dig2==HIGH)
{
Blynk.virtualWrite(V12,255);
Blynk.setProperty(V12, "color", BLYNK_GREEN);
Blynk.setProperty(V12, "label", "LANGAS ATIDARYTAS");
}
if (dig3==HIGH) {
Blynk.virtualWrite(V12,255);
Blynk.setProperty(V12, "color", BLYNK_RED);
Blynk.setProperty(V12, "label", "LANGAS UŽDARYTAS");
}
if ((dig3==LOW) && (dig2==LOW)) //Jei nesuveikes JOKs galinukas (lango) 1kont - NO && 2kont NC
{
Blynk.virtualWrite(V12,0);
Blynk.setProperty(V12, "label", "VYKDOMA");
}
if (dig4==LOW)
{
Blynk.virtualWrite(V13,255);
Blynk.setProperty(V13, "color", BLYNK_GREEN);
Blynk.setProperty(V13, "label", "LAISTOMA VIDUJE");
}
else
{ (dig4==HIGH);
Blynk.virtualWrite(V13,0);
Blynk.setProperty(V13, "label", "VIDUJE NELAISTOMA");
}
if (dig5==LOW)
{
Blynk.virtualWrite(V14,255);
Blynk.setProperty(V14, "color", BLYNK_GREEN);
Blynk.setProperty(V14, "label", "LAISTOMA LAUKE");
}
else
{ (dig5==HIGH);
Blynk.virtualWrite(V14,0);
Blynk.setProperty(V14, "label", "LAUKE NELAISTOMA");
}
if ( (dig == HIGH) && (dig2 == HIGH)) {
digitalWrite(reverse, HIGH);
}
if ( (dig1 == HIGH) && (dig3 == HIGH)) {
digitalWrite(reverse, LOW);
}
DateTime now = rtc.now();
Serial.print(now.day(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.year(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
delay(200); //Print date and time every 1 sec
lcd.setCursor(0, 0);
lcd.print(now.year(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print ('/');
lcd.print(now.day(), DEC);
lcd.setCursor(0, 1);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
atidaryti = (now.hour() == 20 && now.minute() == 12 && now.second() == 5 || bdoor ==HIGH);
uzdaryti = (now.hour() == 20 && now.minute() == 20 && now.second() == 30 );
if ((atidaryti == true)||(uzdaryti == true)) {
digitalWrite(door, LOW);
digitalWrite(window, LOW);
}
else {
digitalWrite(door, HIGH);
digitalWrite(window, HIGH);
}
laistOn = (now.hour() >= 20 && now.minute() >= 21 || bout == HIGH);
laistOff = (now.hour() >= 20 && now.minute() >= 24 );
if (laistOn == true) {
digitalWrite(wout, LOW);
}
if ((laistOn != true) && (laistOff == true)) {
digitalWrite(wout, HIGH);
}
int NR = analogRead(A10); // Agurkai vidus
int SR = analogRead(A9); // Ridikai, salotos
int MR = analogRead(A8); // Laukas
int MM = analogRead(A11); // Vandens lygis
SR = map(SR, 650, 340, 0,100); // Ridikai, salotos
SR = constrain(SR, 0, 100);
MR = map(MR, 650, 340, 0,100); // Laukas
MR = constrain(MR, 0, 100);
NR = map(NR, 650, 340, 0,100); // Agurkai vidus
NR = constrain(NR, 0, 100);
MM = map(MM, 86, 36, 0,100); // Agurkai vidus
//int vala= analogRead(A9);
//SR = map(vala, 340, 650, 100, 0);
lcd.setCursor(12,1);
lcd.println(SR);
lcd.setCursor(15,1);
lcd.println('%');
Blynk.virtualWrite(V20, SR); // blynk Ridikai, salotos
Blynk.virtualWrite(V21, MR); // Laukas
Blynk.virtualWrite(V22, NR); // Agurkai vidus
Blynk.virtualWrite(V23, MM); // Vandens lygis
}
[/code]