Arduino Oda Sicaklik Kontrolu

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ayhun
    ayhun's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek

    internette birkac ornek gordum ancak 1 sensorle calisiyor benim istedigim 3-4 yerdeki sicakliklari kontrol edip ortalama sicakliga gore fan acmasi bildiginiz gordugunuz devre varmidir mesela su adamin yaptigi (http://www.electroschematics.com/9540/arduino-fan-speed-controlled-temperature/) tam istedigim gibi ancak programda 1-2 degisiklik yapip 4 sensor baglamak lazim bu konuda yardimci olabilecek bi arkads varsa cok sevinirim yada hazir bi devre mevcutsa onuda degistirip kulllanbilirim ancak bulamadim pek bi ornek 


    delimiyim ben?
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tabela Fatihi
    kaygusuz
    kaygusuz's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Erkek

    http://www.instructables.com/tag/type-id/?sort=none&q=arduino+temperature+control

     


    Aldananlar aldanmaktan zevk aldıkları için hile ortaya çıkmıyordu Tolstoy
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    n3xt
    n3xt's avatar
    Kayıt Tarihi: 07/Aralık/2009
    Erkek

    www.otokombi.com

    Bunlarla irtibata geç diycem ama zaten biz yapıyoz :D

     


    İş kurma işi biraz uzun sürdü. ben askere gitmicem demedim ki lan.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ayhun
    ayhun's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek

    hocam bu yaptiginiz urunde tek sensor mevcut benim yonetecegim sistemde en az 4 sensor gerekiyor yani durum su

    1.sensor: 23

    2.sensor: 22

    3.sensor: 25

    4.sensor: 22

    gereken sicaklik 23

    aldigi ortalama: 23 fan kapali

     

    1.sensor: 23

    2.sensor: 26

    3.sensor: 25

    4.sensor: 26

    gereken sicaklik 23

    aldigi ortalama: 25 fan %20 acik

     

    yani yukarida verdigim linkteki sisteme 3 sensor daha ekleyip bi ortalama aldirilacak bide kontrol eklenecek eger bu islerden anliyorsan kaca yaparsin verdigim sistemi


    delimiyim ben?
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    caagroup
    caagroup's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    edit yanlış şey paylaştım altta doğrusu mevcut alıntıyı düzeltin lütfen.

    caagroup tarafından 19/Eki/14 17:32 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ayhun
    ayhun's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek

    aşağıdaki kod jet hızıyla not defterinden düzenlenmiş olup, denenmemiştir eksik hata ve saçmalıklar mevcut olabilir

     

     #include <dht11.h> // dht11 kütüphanesini ekliyoruz.

     #define DHT11PIN1 2 // DHT11PIN olarak Dijital 2"yi belirliyoruz.

    #define DHT11PIN2 3 // DHT11PIN olarak Dijital 3"yi belirliyoruz.

    #define DHT11PIN3 4 // DHT11PIN olarak Dijital 4"yi belirliyoruz.

    #define DHT11PIN4 5 // DHT11PIN olarak Dijital 5"yi belirliyoruz.

    #define fanpin 6 // DHT11PIN olarak Dijital 6"yi belirliyoruz.

     

    dht11 DHT11;

    dht11 DHT12;

    dht11 DHT13;

    dht11 DHT14;

    void setup()

    {

      pinMode(fanpin, OUTPUT);

      Serial.begin(9600); // Seri iletişimi başlatıyoruz.

      Serial.println("Ölçümler başlatılıyor");

    }

    void loop()

    {

      float fancalismasicakligi = 25; // fanın calismaya baslayacagi sicaklik;

      // sensorlerin değiskenlerini tanimliyoruz

      float sensor1sicaklik; 

      float sensor2sicaklik; 

      float sensor3sicaklik; 

      float sensor4sicaklik; 

      // Sensörden gelen verileri serial monitörde yazdırıyoruz.

      sensor1sicaklik = (float)DHT11.temperature; 

      sensor2sicaklik = (float)DHT12.temperature;

      sensor3sicaklik = (float)DHT13.temperature;

      sensor4sicaklik = (float)DHT14.temperature;

     

     //şimdide sicaklik ortalamasini alip fani calistiracagiz

      float toplamsicaklik = sensor1sicaklik+sensor2sicaklik+sensor3sicaklik+sensor4sicaklik;

      float ortalama = toplamsicaklik/4; //sensor adedine bölerek ortalamayı bulduk şimdi karşılaştırma yapacagız

      if(ortalama>=fancalismasicakligi)

      {

      digitalWrite(fanpin, HIGH); 

      }

      else

      {

       digitalWrite(fanpin, LOW);

      } 

      // 2 saniye bekliyoruz. 2 saniyede bir kontrol yapılacak.

      delay(2000);

    }

    hocam pek koddan anlamam ancak verdigin koda gore ortalama deger aldirmayi nerede yaptiriyorsun mesela su verdigim ornekteki sisteme sadece diger sensorlerden ortlama aldirmaya kalksak cokmu zor olur videosu su asagidaki gibi 

    http://www.youtube.com/watch?v=R7lmpIAsoQQ

     

    kodlar icinde sitede gormussundur ama ben yinede ekliyorum bunda ortalamayi bi aldirsak tam istedigim sistem ama nasil aldirilir bilemiyorum.

    #include<LiquidCrystal.h>
    //source: http://www.electroschematics.com/9540/arduino-fan-speed-controlled-temperature/
    LiquidCrystal lcd(7,6,5,4,3,2);
    int tempPin = A1;// the output pin of LM35
    int fan =11;// the pin where fan is
    int led =8;// led pin
    int temp;
    int tempMin =30;// the temperature to start the fan
    int tempMax =70;// the maximum temperature when fan is at 100%
    int fanSpeed;
    int fanLCD;
     
    void setup(){
     pinMode(fan, OUTPUT);
     pinMode(led, OUTPUT);
     pinMode(tempPin, INPUT);
     lcd.begin(16,2);
    }
     
    void loop(){
     temp = readTemp();// get the temperature
    if(temp < tempMin){// if temp is lower than minimum temp
     fanSpeed =0;// fan is not spinning
     digitalWrite(fan, LOW);
    }
    if((temp >= tempMin)&&(temp <= tempMax)){// if temperature is higher than minimum temp
     fanSpeed = map(temp, tempMin, tempMax,32,255);// the actual speed of fan
     fanLCD = map(temp, tempMin, tempMax,0,100);// speed of fan to display on LCD
     analogWrite(fan, fanSpeed);// spin the fan at the fanSpeed speed
    }
    if(temp > tempMax){// if temp is higher than tempMax
     digitalWrite(led, HIGH);// turn on led 
    }else{// else turn of led
     digitalWrite(led, LOW);
    }
     lcd.print("TEMP: ");
     lcd.print(temp);// display the temperature
     lcd.print("C ");
     lcd.setCursor(0,1);// move cursor to next line
     lcd.print("FANS: ");
     lcd.print(fanLCD);// display the fan speed
     lcd.print("%");
     delay(200);
     lcd.clear();
    }
     
    int readTemp(){// get the temperature and convert it to celsius
     temp = analogRead(tempPin);
    return temp *0.48828125;
    }
     
    ayhun tarafından 20/Eki/14 17:55 tarihinde düzenlenmiştir

    delimiyim ben?
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    caagroup
    caagroup's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Yukarıdaki alıntıyı düzenle lütfen yanlış bilgilendirme olmasın, yanlışlıkla post olmuş Yönlendirme değil fikir vermesi açısından yazıyorum

    http://arduinoturkiye.com/dht11-sicaklik-ve-nem-sensorunun-arduino-ile-kullanimi/

    şimdi bak buradaki örnek güzel 

    sensörü buuradan satın alabilirsin 

    http://www.robotistan.com/DHT11-Isi-ve-Nem-Sensoru-Kart,PR-2171.html

    daha ucuz 4 liralık(analog) sensörlerde var onlarıda araştırabilirsin

    hatta 0.5 derece hassasiyeti olan sensörlerde mevcur

    bu sensör 0 ile 50°C arasında 2°C hata payı ile sıcaklık ölçer,20-90% RH arasında 5% RH hata payı ile nem ölçer.

    not : arduino uno için digital pin 2 ve pin 3  resimde görüldüğü üzere

    http://www.adafruit.com/blog/wp-content/uploads/2012/05/ArduinoUno_R3_Pinouts_600.png

    interrupt pinleridir diğer 4 ve 5. pinlerde sorun yaşayabilirsin bunu bir incelemen gerek. 

    eğer uygunsa örnekte verilen kodu şu şekilde modifiye edebiliriz 

     

    aşağıdaki kod jet hızıyla not defterinden düzenlenmiş olup, denenmemiştir eksik hata ve saçmalıklar mevcut olabilir

     

     #include <dht11.h> // dht11 kütüphanesini ekliyoruz.

     #define DHT11PIN1 2 // DHT11PIN olarak Dijital 2"yi belirliyoruz.

    #define DHT11PIN2 3 // DHT11PIN olarak Dijital 3"yi belirliyoruz.

    #define DHT11PIN3 4 // DHT11PIN olarak Dijital 4"yi belirliyoruz.

    #define DHT11PIN4 5 // DHT11PIN olarak Dijital 5"yi belirliyoruz.

    #define fanpin 6 // DHT11PIN olarak Dijital 6"yi belirliyoruz.

     

    dht11 DHT11;

    dht11 DHT12;

    dht11 DHT13;

    dht11 DHT14;

    void setup()

    {

      pinMode(fanpin, OUTPUT);

      Serial.begin(9600); // Seri iletişimi başlatıyoruz.

      Serial.println("Ölçümler başlatılıyor");

    }

    void loop()

    {

      float fancalismasicakligi = 25; // fanın calismaya baslayacagi sicaklik;

      // sensorlerin değiskenlerini tanimliyoruz

      float sensor1sicaklik; 

      float sensor2sicaklik; 

      float sensor3sicaklik; 

      float sensor4sicaklik; 

      // Sensörden gelen verileri serial monitörde yazdırıyoruz.

      sensor1sicaklik = (float)DHT11.temperature; 

      sensor2sicaklik = (float)DHT12.temperature;

      sensor3sicaklik = (float)DHT13.temperature;

      sensor4sicaklik = (float)DHT14.temperature;

     

     //şimdide sicaklik ortalamasini alip fani calistiracagiz

      float toplamsicaklik = sensor1sicaklik+sensor2sicaklik+sensor3sicaklik+sensor4sicaklik;

      float ortalama = toplamsicaklik/4; //sensor adedine bölerek ortalamayı bulduk şimdi karşılaştırma yapacagız

      if(ortalama>=fancalismasicakligi)

      {

      digitalWrite(fanpin, HIGH); 

      }

      else

      {

       digitalWrite(fanpin, LOW);

      } 

      // 2 saniye bekliyoruz. 2 saniyede bir kontrol yapılacak.

      delay(2000);

    }

     

     

     

     

    caagroup tarafından 19/Eki/14 17:36 tarihinde düzenlenmiştir
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    caagroup
    caagroup's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

     LM35 de kalibrasyon sıkıntısı yaşayabilirsin analog bir sensördür ama ucuzdur veridiğin örnekteki kodu bu şekilde fikir vermesi için düzenledim umarım hata yoktur hata olursa pm atarsın.

    #include <LiquidCrystal.h>
    //source: http://www.electroschematics.com/9540/arduino-fan-speed-controlled-temperature/
    LiquidCrystal lcd(7,6,5,4,3,2);
    int tempPin = A1; // the output pin of LM35 Sensör 1
    int tempPin2 = A2; // the output pin of LM35 Sensör 2
    int tempPin3 = A3; // the output pin of LM35 Sensör 3
    int tempPin4 = A4; // the output pin of LM35 Sensör 4
    int fan = 11; // the pin where fan is
    int led = 8; // led pin
    int temp;
    int temp2;
    int temp3;
    int temp4;
    int tempMin = 30; // the temperature to start the fan
    int tempMax = 70; // the maximum temperature when fan is at 100%
    int fanSpeed;
    int fanLCD;
    float kalibrasyon = 0.48828125;
    float ortalama;

    void setup() {
    pinMode(fan, OUTPUT);
    pinMode(led, OUTPUT);
    pinMode(tempPin, INPUT);
    pinMode(tempPin2, INPUT);
    pinMode(tempPin3, INPUT);
    pinMode(tempPin4, INPUT);
    lcd.begin(16,2);
    }

    void loop() {

    temp = analogRead(tempPin* kalibrasyon;
    temp2 = analogRead(tempPin2)* kalibrasyon;
    temp3 = analogRead(tempPin3)* kalibrasyon;
    temp4 = analogRead(tempPin4)* kalibrasyon;


    ortalama = temp+ temp2+ temp3+ temp4;

    ortalama = ortalama/4;

    if(ortalama < tempMin) { // if temp is lower than minimum temp
    fanSpeed = 0; // fan is not spinning
    digitalWrite(fan, LOW);
    }
    if((ortalama >= tempMin) && (ortalama <= tempMax)) { // if temperature is higher than minimum temp
    fanSpeed = map(ortalama, tempMin, tempMax, 32, 255); // the actual speed of fan
    fanLCD = map(ortalama, tempMin, tempMax, 0, 100); // speed of fan to display on LCD
    analogWrite(fan, fanSpeed); // spin the fan at the fanSpeed speed
    }

    if(ortalama > tempMax) { // if temp is higher than tempMax
    digitalWrite(led, HIGH); // turn on led
    } else { // else turn of led
    digitalWrite(led, LOW);
    }

    lcd.print("ORT TEMP: ");
    lcd.print(ortalama); // display the temperature
    lcd.print("C ");
    lcd.setCursor(0,1); // move cursor to next line
    lcd.print("FANS: ");
    lcd.print(fanLCD); // display the fan speed
    lcd.print("%");
    delay(200);
    lcd.clear();
    }

     

    caagroup tarafından 19/Eki/14 18:03 tarihinde düzenlenmiştir
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    musa-90
    musa-90's avatar
    Kayıt Tarihi: 30/Aralık/2011
    Erkek

    Hocam bende yeni merak sardım. Dün izledim bu videoyu tek sensörlü ama 3 e çıkarması zor değil gibi görünüyor. Belki işine yarar.

    http://www.youtube.com/watch?v=y6bVZ9_h514

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ayhun
    ayhun's avatar
    Kayıt Tarihi: 21/Temmuz/2005
    Erkek

    @musa o videoyu gordum ancak pek bise anladigim soylenemez raspberry pi ile yapayim dedim ancak pek bi videoda goremedim mantigi otutturabiliyorum ancak kodlama bilmedigimden yazamiyorum sikinti buyuk anliyacagin :(

     

    @caagroup peki en iyi sicaklik sensoru hangisi? hangisi uzerinde yogunlasmam dogru olur? birde veri okuyacagi mesafe uzakta olacak 40 metre uzaktan veri alabilecegi birsey olmasi lazim bu sensor yerine rht05 kullanmakmi faydali olur veya daha stabil sensor hangisi var?

     


    delimiyim ben?
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    caagroup
    caagroup's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    hatalı postu düzenlememişsin :)

    RHT05 için datasheet'te

    http://sensorguys.com/wp-content/uploads/2014/05/Digital-humidity-and-temperature-sensor-RHT05.pdf

    Long transmission distance, up to 100 meters  demiş senin için iyi gibi duruyor fiyatıda uygunsa alabilirsin

    yanınada bir adet Delta PLC alabilir ve kontrollerini gerçekleştirirsin.


    arduino için :

    uzun mesefelerde bu sensörleri kullanabilmen için güçlendirici transistör devresi hazırlaman ve kablo direnci gibi meseleler araya girecek bunları  iyi hesaplaman gerekli. çünkü ölçüm şeklin analog.
    http://www.cirris.com/learning-center/calculators/133-wire-resistance-calculator-table

    analog sensör kullanacaksan uzun mesafe de slave olarak


    arduino pro mini 
    http://www.robotistan.com/Arduino-Pro-Mini-328-5V16MHz-Headerli,PR-35.html


    ve şu 
    http://www.robotistan.com/Wireless-NRF24L01-24GHz-Transceiver-Modul-24GHz-Alici-Verici-Modul,PR-1485.html

    veya şu gibi

    http://www.robotistan.com/Wireless-NRF905-1GHz-Transceiver-Modul-1GHz-Alici-Verici-Modul-Antenli,PR-1738.html

    yada kafana yatan...

    ürüneler kullanarak kabolsuz haberleşme sağlayabilirsin ki ilkini kullanırsan kablo parasından ucuza gelir(40 m için ikisinede garanti veremem datasheet'lere iyi bak kullanacağın yere göre iyi hesapla ,ard. pro mini alırsan pinlerinide al arduino pro miniyi programlaya bilmekte bir iştir bunun için en azından bir adet arduino uno'ya ihtiyacın var http://www.instructables.com/id/Uploading-sketch-to-Arduino-Pro-Mini-using-Arduino/


    linklerini veridiğim siteyle alakam yoktur birkaç defa alışveriş yaptım sıkıntım olmadı.

    son olarak yaptığın bu proje eğer hobi projesi değilse hepsini boşver 
    git birazdaha fazla para verip endüstriyel otomasyon ürünleri al bunlarının hiçbirinin gerçek iş sahasında yerleri yoktur ve güvenilir değillerdir buna arduino ve raspberry de dahildir RHT05  gibi prof. ürünler kullanmanı tavsiye ederim.

    caagroup tarafından 19/Eki/14 19:35 tarihinde düzenlenmiştir
Toplam Hit: 2657 Toplam Mesaj: 14