dominoFiber     domiRobot     Forum


Projeler: Bulanıklılık alarmı

Bu projemizde arduino ve Analog Turbidity Sensor (Bulanıklık Sensörü) kullanarak, sıvılardaki bulanıklık seviyesini ölçme işleminin ve bulanıklık seviyesinin önceden belirlenmiş bir seviyenin üzerine çıktığında sesli ve görsel uyarılar almanın nasıl yapıldığını göreceğiz.

Amaç:
Ortamdaki bulanıklık seviyesi belirlenen seviyenin üzerine çıktığında sistemin sesli ve görsel uyarı ile kullanıcının uyarılmasını sağlamak.

Teknik özellikler:
Ortamdaki bulanıklık seviyesi belirli aralıklarla düzenli aralıklarla ölçülerek ölçülen değer % cinsinden lcd ekranda okunur. Alarmın devreye gireceği bulanıklık seviyesi kullanıcı tarafından bir portansiyometre ile ayarlanabilir. Bulanıklık seviyesi kullanıcı tarafından belirlenen seviyenin üstüne çıktığında sistem görsel (ledli ve lcd gösterge) ve sesli (buzzer) uyarı verip, arzu edilen telefon numarası otomatik olarak aranarak kullanıcı durumdan haberdar edilir. Alarmın devreye girmesi durumunda alarm kullanıcı tarafından android cihaz aracılığı ile devreye sokulup devreden çıkarılabilir.

Seviye: Orta seviye

Malzeme listesi:

Fotoğraf 1: Devreye ait fotoğraf


Fotoğraf 1: Devreye ait fotoğraf


Fotoğraf 1: Devreye ait fotoğraf


Şema 1: Devreye ait fritzing şeması

Arduino kodu:
Kod: [Seç]
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
    int sensor_analog_cikisiPin = A1; // sensorun analog cikisi A1 pinine baglanir
    int sensor_cikisiValue = 0; // sensor_analog_cikisiValue isminde değişken tanımlandı
    int sensor_cikisi=0; // sensor_cikisi isminde değişken tanımlandı
    int ayarPin = A2; // ayar potu A2 pinine baglanir
    int ayarValue = 0; // ayarValue isminde değişken tanımlandı
    int ayar=0; // sensor_cikisi isminde değişken tanımlandı
    int led = 13; // 13 nolu pine led adini verdik
    int buzzer = 2; // 2 nolu pine led adini verdik
    int telefon = 3; // 3 nolu pine telefon adini verdik 
    int ses         = 11; // 11 nolu pine ses adini verdik
    int gelen_bilgi;
    int sustur=12;

void setup()
  {
    pinMode(led, OUTPUT); // led isimli pin (13) cikis yapildi
    pinMode(buzzer, OUTPUT); // buzzer isimli pin (2) cikis yapildi
    pinMode(telefon, OUTPUT); // telefon isimli pin (12) cikis yapildi   
    pinMode(sustur, OUTPUT); // telefon isimli pin (12) cikis yapildi
    pinMode(ses, OUTPUT); // ses isimli pin (11) cikis yapildi
    Serial.begin(9600);
    lcd.begin(16, 2);
    lcd.clear(); 
    lcd.setCursor(0,0);
    lcd.print("  BULANIKLILIK"); 
    lcd.setCursor(0,1);                           
    lcd.print("     ALARMI"); 
    delay(2000); 
    lcd.clear();           
    lcd.setCursor(0,0);
    lcd.print(" domirobot  .com"); 
    lcd.setCursor(0,1);                           
    lcd.print("DominoElektronik");
    delay(2000);
    lcd.clear(); 
    lcd.setCursor(0,0);
    lcd.print("     ORTAK"); 
    lcd.setCursor(0,1);                           
    lcd.print("   YAPIMIDIR"); 
    delay(2000);   
    lcd.clear(); 
    lcd.setCursor(0,0);
    lcd.print("      EKiM"); 
    lcd.setCursor(0,1);                           
    lcd.print("      2016"); 
    delay(2000);   
  }

void loop()
  {
    sesi_kes();
    guncelleniyor();
    veriyi_oku_yazdir();
    if( sensor_cikisi > ayar)
    {
      alarm_calistir();
      telefonu_ac();
      dokuz_tusla();
      sifir_tusla();
      bes_tusla();
      dort_tusla();
      dort_tusla();
      uc_tusla();
      dort_tusla();
      iki_tusla();
      sifir_tusla();
      bir_tusla();
      uc_tusla();
      sekiz_tusla(); 
      numara_arandi(); 
      sesi_gonder();
      bluetooth_kontrol(); 
      sistem_reset();     
    }
    else {alarm_durdur();}
  }


 void sesi_kes()
 {
   digitalWrite(ses, LOW); 
 }
 
 void guncelleniyor()
 {
  lcd_yaz(2,2,"VERiLER","GUNCELLENiYOR",0,3000);
 }

  void veriyi_oku_yazdir()
 {
    sensor_cikisiValue = analogRead(sensor_analog_cikisiPin); // sensor cikisindaki deger okundu
    sensor_cikisi= map(sensor_cikisiValue, 540, 550, 100, 0); // sensorden okunan 0-1023 arasindaki deger 0 - 100 arası yuzdeye dönüştürüldü
    ayarValue = analogRead(ayarPin); // ayar potundaki deger okundu
    ayar= map(ayarValue, 0, 1023, 0, 100); // ayar potundan okunan 0-1023 arasindaki deger 0 - 100 arası yuzdeye dönüştürüldü
    Serial.print("Bulaniklilik: %");
    Serial.print(sensor_cikisi);
    Serial.print("   Alarm seviyesi: %");
    Serial.print(ayar);
    Serial.print("\n");
    if( sensor_cikisi < 100 && sensor_cikisi > 0 )
     { 
      lcd.clear(); 
      lcd.setCursor(0,0);
      lcd.print("ORTAM: %");
      lcd.print(sensor_cikisi);
      lcd.setCursor(0,1);                           
      lcd.print("ALARM: %"); 
      lcd.print(ayar);   
      delay(1000);   
     }   

   
    if( sensor_cikisi < 0)
     { 
lcd_yaz(2,2,"ORTAM: %0",ayarValue,1500,1500); 
 
     }   
    if( sensor_cikisi > 100)
     { 
      lcd.clear(); 
      lcd.setCursor(0,0);
      lcd.print("ORTAM: %");
      lcd.print("100");
      lcd.setCursor(0,1);                           
      lcd.print("ALARM: %"); 
      lcd.print(ayar);   
      delay(1000);
     }
 }

  void alarm_calistir()
 {
    digitalWrite(led, HIGH);   // 13. pindeki ledi yaktik
    digitalWrite(buzzer, HIGH);   // 2. pindeki buzzeri otturduk
 }

  void alarm_durdur()
 {
    digitalWrite(led, LOW);   // 13. pindeki ledi sondurduk
    digitalWrite(buzzer, LOW);   // 2. pindeki buzzeri susturduk 
 }

  void telefonu_ac()
 {
     lcd.clear(); 
     lcd.setCursor(0,0);
     lcd.print("NUMARA  ARANIYOR");
     lcd.setCursor(0,1);                           
     lcd.print(" 0544 342 01 38");
     digitalWrite(telefon, LOW);   // telefon acildi
     delay(2000);
 }

   void sifir_tusla()
 {
   for (int domirobot = 1; domirobot <= 10;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void bir_tusla()
 {
   for (int domirobot = 1; domirobot <= 1;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void iki_tusla()
 {
   for (int domirobot = 1; domirobot <= 2;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void uc_tusla()
 {
   for (int domirobot = 1; domirobot <= 3;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void dort_tusla()
 {
   for (int domirobot = 1; domirobot <= 4;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void bes_tusla()
 {
   for (int domirobot = 1; domirobot <= 5;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void alti_tusla()
 {
   for (int domirobot = 1; domirobot <= 6;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void yedi_tusla()
 {
   for (int domirobot = 1; domirobot <= 7;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void sekiz_tusla()
 {
   for (int domirobot = 1; domirobot <= 8;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

    void dokuz_tusla()
 {
   for (int domirobot = 1; domirobot <= 9;  domirobot ++)
       {
          digitalWrite(telefon, HIGH);
          delay(50); 
          digitalWrite(telefon, LOW);
          delay(50);
       }
          delay(450);   
 }

     void numara_arandi()
 {
   lcd.clear(); 
   lcd.setCursor(0,0);
   lcd.print(" NUMARA  ARANDI ");
   lcd.setCursor(0,1);                           
   lcd.print("SESKAYDI DEVREDE");
 }

      void sesi_gonder()
 {
   digitalWrite(ses, HIGH);
 }

       void bluetooth_kontrol()
 {
       for (int domirobot = 1; domirobot <= 60;  domirobot ++)   
        {       
          delay(500); // telefonun acik kalma suresi default 1/2 saniye

     
       if(Serial.available())
        {
          int gelen_bilgi = Serial.read();
          delay(100);
     
          if(gelen_bilgi=='1')
           {
            digitalWrite(sustur,1);
            digitalWrite(led, LOW);   // 13. pindeki ledi yaktık
            digitalWrite(buzzer, LOW);   // 2. pindeki buzzeri otturduk           
           }
       
          if(gelen_bilgi=='0')
           {
            digitalWrite(sustur,0);
            digitalWrite(led, HIGH);   // 13. pindeki ledi sondurduk
            digitalWrite(buzzer, HIGH);   // 2. pindeki buzzeri susturduk           
           }   
          delay(50);
        } 
    }

 }

      void sistem_reset()
 {
   digitalWrite(telefon, HIGH);   // telefon kapandi
   digitalWrite(led, LOW);   // 13. pindeki ledi sondurduk
   digitalWrite(buzzer, LOW);   // 2. pindeki buzzeri susturduk
   lcd.clear(); 
   lcd.setCursor(0,0);
   lcd.print("TELEFON  KAPANDI");
   lcd.setCursor(0,1);                           
   lcd.print(" SiSTEM   RESET ");
   delay(2000);
 }

 char lcd_yaz (int lcdtip,int satir,char alper[16],char alper2[16],int bekle,int bekle1)
{
  lcd.clear();
  lcd.setCursor(0,lcdtip-satir);
  lcd.print(alper);
  delay (bekle);
  lcd.setCursor(0,lcdtip-(satir-1));                           
  lcd.print(alper2); 
  delay (bekle1);
  return;
}

Projeye ait download dosyaları:
İhtiyaç duyulması halinde projeye ait dosyaları buraya tıklayıp indirebilirsiniz.


Bulanıklılık sensörü satın al

Untitled
  • Bulanıklılık Sensörü<br />Satın AlBulanıklılık Sensörü<br />Satın AlBulanıklılık Sensörü<br />Satın Al