#include <TimerOne.h>
#include <virtuabotixRTC.h>
virtuabotixRTC saat(7,8,9);
#include <EEPROM.h>
#include <SoftwareSerial.h>
SoftwareSerial bt(2,3);
char data;
#include <Arduino.h>
#include <FastLED.h>
#define NUM_LEDS 5 //Led Sayısı
#define DATA_PIN 4 //Led Din giriş pini
CRGB leds[NUM_LEDS]; //Led Dizisi oluşturduk
#define sensor_ab 10
#define sensor_yb 11
#define selanoid 5
#define motor 6
int addr =0;
int addr1=0;
#define kacaksensor A0
int buzzer = 13;
int zamanfarki,sonokuma=0;
int buzzerdurum=0;
unsigned long simdikizaman ;
unsigned long ilkzaman = 0;
void setup() {
Serial.begin(115200);
bt.begin(9600);
pinMode(kacaksensor,INPUT);
pinMode(DATA_PIN,OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(kacaksensor,INPUT);
pinMode(sensor_ab,INPUT) ;
pinMode(sensor_yb,INPUT) ;
pinMode(selanoid,OUTPUT);
pinMode(motor,OUTPUT);
digitalWrite(buzzer,HIGH);
digitalWrite(buzzer,LOW);
//saat.setDS1302Time(00,00,00,1,01,01,2023);
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); //Fastlede led dizimizi ekledik
FastLED.setBrightness(255); //Parlaklık ayarı 0-255
EEPROM.write(addr,saat.dayofmonth);
Serial.println(F("EEPROM yazıldı : "));
Serial.println(EEPROM.get(addr, saat.dayofmonth));
delay(100);
EEPROM.write(addr1,saat.month);
Serial.println(F("EEPROM yazıldı : "));
Serial.println(EEPROM.get(addr1,saat.month));
delay(100);
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); //Fastlede led dizimizi ekledik
FastLED.setBrightness(255); //Parlaklık ayarı 0-2
for(int i=0;i<5;i++)
{
leds[0].setRGB(0, 0, 255); //ilk 5 ledi MAVİ
FastLED.show();
leds[1].setRGB(0, 0, 255); //yakıyoruz
FastLED.show();
leds[2].setRGB(0, 0, 255);
FastLED.show();
leds[3].setRGB(0, 0, 255);
FastLED.show();
leds[4].setRGB(0, 0, 255); //üçlü filtre
FastLED.show();
leds[5].setRGB(0, 0, 255); //son karbon
FastLED.show();
}
attachInterrupt(1, data, CHANGE);
attachInterrupt(0, data, CHANGE);
//saat.setDS1302Time(00,00,00,1,01,01,2023);
}
void loop(){
rtc();
filtredegisimi();
bluetooth();
sukacagi();
siwich();
}
void rtc()
{
saat.updateTime();
Serial.println(" ");
Serial.print(saat.hours); //Saat
Serial.print(":");
Serial.print(saat.minutes); //Dakika
Serial.print(":");
Serial.print(saat.seconds); //Saniye
Serial.print(" ");
Serial.print(saat.dayofmonth); //Gün
Serial.print("/");
Serial.print(saat.month); //Ay
Serial.print("/");
Serial.println(saat.year); //Yıl
for ( addr = 0 ; addr < 31 ; addr++)
{
EEPROM.put(addr,saat.dayofmonth);
Serial.println(EEPROM.get(addr, saat.dayofmonth));
delay(50);
if(addr==31)
{addr=0;
}
}
for ( addr1 = 32 ; addr1 < 12 ; addr1++)
{
EEPROM.put(addr1,saat.month);
Serial.println(EEPROM.get(addr,saat.month));
delay(50);
if(addr==12)
{addr=0;
}
}
}
void filtredegisimi(){
saat.updateTime();
zamanfarki=saat.year-sonokuma;
if(bt.available())
{
Serial.write(bt.read());
data = bt.read();
Serial.println(data);
data!=data;
if(data=='a')
{
sonokuma=(saat.year==sonokuma);
leds[3].setRGB(0, 0, 255); //ilk 5 ledi MAVİ
FastLED.show();
leds[4].setRGB(0, 0, 255); //ilk 5 ledi MAVİ
FastLED.show();
digitalWrite(buzzer,LOW);
}
}
if(zamanfarki==1)
{
leds[3].setRGB(255, 0, 0); //ilk 5 ledi MAVİ
FastLED.show();
leds[4].setRGB(255, 0, 0); //ilk 5 ledi MAVİ
FastLED.show();
digitalWrite(buzzer,HIGH);
delay(1000);
digitalWrite(buzzer,LOW);
delay(1000);
}
}
void bluetooth()
{
bt.begin(115200);
if(bt.available())
{
Serial.write(bt.read()); // Bluetooth gelen veriyi oku
}
if (Serial.available()) // Bilgisayar bağlantısı var mı?
{
bt.write(Serial.read()); //Bilgisayardan gelen mesajı Bluetooth dan oku.
}
while (bt.available()>0)
{
Serial.write(bt.read());
char data = bt.read();
Serial.println(data);
}
}
void sukacagi()
{
int kacak;
int esikdegeri=300;
kacak = analogRead(A0);
if(kacak < 300)
{
Serial.println("kacak yok ");
buzzerdurum = 0;
leds[1].setRGB(0, 0, 255); //ilk 5 ledi MAVİ
FastLED.show();
digitalWrite(buzzer,LOW);
}
if(kacak > 300)
{
Serial.println("kacak var ");
buzzerdurum = 1;
leds[1].setRGB(255, 0, 0); //ilk 5 ledi MAVİ
FastLED.show();
digitalWrite(buzzer,HIGH);
delay(1000);
digitalWrite(buzzer,LOW);
delay(1000);
}
}
void siwich()
{
boolean status_ab = 0;
boolean status_yb = 0;
status_ab = digitalRead(sensor_ab) ;
status_yb = digitalRead(sensor_yb) ;
if(status_ab == HIGH)
{
Serial.println("sebeke suyu var");
leds[0].setRGB(0, 0, 255);
FastLED.show();
}
else
{
Serial.println("sebeke suyu yok");
leds[0].setRGB(255, 0, 0);
FastLED.show();
}
if (status_yb == LOW)
{
Serial.println("depo dolu");
leds[2].setRGB(0, 0, 255);
FastLED.show();
}
else
{
Serial.println("depo boş");
leds[2].setRGB(0, 255, 0);
FastLED.show();
}
if ((status_ab == HIGH) && (status_yb == HIGH) )
{
digitalWrite(selanoid,HIGH);
digitalWrite(motor,HIGH);
}
else
{
digitalWrite(selanoid,LOW);
digitalWrite(motor,LOW);
}
}