Şimdi Ara

RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
24
Cevap
7
Favori
5.448
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
3 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Evet arkadaşlar raspi ve Arduino kullanarak ev otomasyonu yapmaya hazır mıyız ?Aslında otomasyon demek biraz garip ama biz genede öyle analım.
    Öncelikle yazı yazmayı veya konu anlatmaktan pek anlamam o yüzden kelime ve anlatım hatalarından dolayı şimdiden af oluna.
    Elimden geldiği kadar basit anlatmaya çalışacağım,o yüzden takılan arkadaşlar olursa müsait olduğum müddetçe yardımcı olmaya çalışırım.

    Raspberry pi olarak B+ modeli kullandım,zannedersem raspi 2 de sıkıntı çıkarmaz.
    Öncelikle Raspi mize server yazılımını kurmamız gerekmekte.Normalde raspiye Rasbian imajı atıp üzerine EasyIoT Server kurmamız gerekir ama biz bunu yapmak yerine hem rasbian,hemde server yazılımının olduğu hazır imaj dosyasını yüklemek daha kolay olur.Bunun için aşağıdaki linkten imaj dosyasını indirip Win32 Disk Imager programı ile raspiye atıyoruz.
    Hazır imaj dosyası :http://iot-playground.com/swdownload/EasyIoT_server_v0_8.rar

    Raspi ilk çalıştırmada ekrana takıp bazı ayarla yapmamız gerekmektedir.
    Öncelikle karşımıza raspi-config gelmeli gelmezse raspiye bağlı klavyeden
    sudo raspi-config
    yazıp gelen konfigürasyon menüsünden SSH ve SPI yı aktif ediniz.SSH uzaktan raspiye bağlanmamız için gereken servis,SPI haberleşme için gerekli servistir.
    ayarlamadan sonra raspi yeniden başlayacaktır isterseniz klavye ve ekranı çıkartabilir bilgisayarınızla SSH üzerinden bağlayabilirsiniz.
    raspi yeniden başladığında ilk yapmamız gereken raspimizin güncellemelerini yüklemek olsun bunu için şu komutları kullanın

    sudo apt-get update
    sudo apt-get upgrade

    bu işlemler internet hızınıza göre biraz zaman alabilir,yüklemeler devam ederken bence kendinize bir kahve koyun

    şimdi sıra mono kurmaya geldi(mono servermızı raspi üzerinden izlemek için gerekli)

    sudo apt-get install mono-complete

    şimdi sıra kablosuz iletişim için raspiye ekleyeceğimiz donanıma geldi.Ucuz olması ve çekim performansı iyi olmasından dolayı NRF24L01+ modülünü kullanacağız.Aşağıdaki bağlantıya göre Mysensör driver (ileride anlatılacak) için
    bağlantımızı yapıyoruz.

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Raspide şu komutu çalıştıralım
    sudo mono EasyIoT.exe
    donanım kurulumunu düzgün yapmışsak raspiye şu komutu verdiğimizde
    aşağıdakine benzer bir ekranla karşılaşmamız gerekir.
    Eğer komut dizin ve dosya bulunamadı gibi bir hata verirse easyiot dizininde değilsiniz demektir bunun için cd /home/easyiot komutu ile dizine giriniz



     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Pc ekranında serverın çalışıp çalışmadığını kontrol edelim raspinin adresini tarayıcımıza girince karşımıza şifre ekranı gelecek kullanıcı adı admin şifre ise test tir,Artık karşımıza şöyle bir ekran gelmesi gerekiyor.

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Bu ekrandan istersek şifremizi değiştirebiliriz.
    Şimdi her şey yolunda ise salonumuza koyacağımız sıcaklık ve nem sensör verilerini görebileceğimiz bir çalışma yapalım.
    Bunun için gerekli malzemeler

    1 adet NRF24L01+

    1-DHT11

    1Adet Arduino pro (3.3V olanı tavsiye ederim)

    1 adet LM1117 3.3V 1A regulator (NRF24 wifi adaptörümüz 3.3v ile çalışacağı için gereklidir,aşağıdaki resimde regülatörün radio arası bağlantı gösterilmektedir)

    Gelelim bağlantılara önce NRF24 wifi adaptörümüzü Arduinoya şu şekilde bağlıyoruz.

    Renklere bakarak rahatlıkla yapabilirsiniz.

    Arduino NRF24...
    GND GND
    5V Reg
    3.3V VCC
    9 CE
    10 CSN/CS
    13 SCK
    11 MOSI
    12 MISO
    2 IRQ

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU
     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Şimdi de DHT sensörümüzü bağlıyoruz

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU
     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Arduinomuzu programlamadan önce bazı libraryleri indirmemiz gerek yoksa programlama esnasında hata verecektir.
    https://github.com/mysensors/Arduino/archive/master.zip mysensör library dosyalarını indiriyoruz.
    inen zip dosyasının içindeki dosyaları arduino dizinine atın,burada bize lazım olan libraries dizinin arduino library klasörümüzün içine kopyalıyoruz.

    Şimdi arduinoya yükleyeceğimiz programa geldi bilgisayarımızdan arduino programını çalıştırıyoruz ve aşağıdaki programı arduinoya yüklüyoruz..

    #include <SPI.h> 
    #include <MySensor.h>
    #include <DHT.h>

    #define CHILD_ID_HUM 0
    #define CHILD_ID_TEMP 1
    #define HUMIDITY_SENSOR_DIGITAL_PIN 3
    unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)

    MySensor gw;
    DHT dht;
    float lastTemp;
    float lastHum;
    boolean metric = true;
    MyMessage msgHum(CHILD_ID_HUM, V_HUM);
    MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);


    void setup()
    {
    gw.begin();
    dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN);

    // Send the Sketch Version Information to the Gateway
    gw.sendSketchInfo("Humidity", "1.0");

    // Register all sensors to gw (they will be created as child devices)
    gw.present(CHILD_ID_HUM, S_HUM);
    gw.present(CHILD_ID_TEMP, S_TEMP);

    metric = gw.getConfig().isMetric;
    }

    void loop()
    {
    delay(dht.getMinimumSamplingPeriod());

    float temperature = dht.getTemperature();
    if (isnan(temperature)) {
    Serial.println("Failed reading temperature from DHT");
    } else if (temperature != lastTemp) {
    lastTemp = temperature;
    if (!metric) {
    temperature = dht.toFahrenheit(temperature);
    }
    gw.send(msgTemp.set(temperature, 1));
    Serial.print("T: ");
    Serial.println(temperature);
    }

    float humidity = dht.getHumidity();
    if (isnan(humidity)) {
    Serial.println("Failed reading humidity from DHT");
    } else if (humidity != lastHum) {
    lastHum = humidity;
    gw.send(msgHum.set(humidity, 1));
    Serial.print("H: ");
    Serial.println(humidity);
    }

    gw.sleep(SLEEP_TIME); //sleep a bit
    }


    Yükleme işlemi bittikten sonra raspide çalışan server a kurmuş olduğumuz sensörü tanıtmamız gerekiyor.
    Bunun için raspinin aldığı ip adresimizi tarayıcımıza yazıp gelen ekranda kullanıcı adımızı admin şifremizi test dedikten sonra sol altta configure/drivers/MySensors Driver ekranına geliyoruz. sağ tarafta enable butonunun aktif olduğunu kontrol ettikten sonra altta add node butonuna tıklıyoruz.burada 30 saniye bize arduinoyu çalıştırmamız için zaman sayıyor, dht sensör ve nrf24 adaptörü bağlı arduinomuza besleme veriyoruz zaten çalışıyorsa arduino üzerindeki reset butonuna basıyoruz(ben genelde reset kullanıyorum),bu sırada raspiye bağlı nrf24 ve arduinoya bağlı nrf24 arasında iletişim kurulmaya çalışıyor.Herşey yolunda ise add N1S1 gibi bir ekleme yapıldığına dair mesaj alacağız(çıkan ekrandaki eklenen N1S1 gibi node numarasını aklımızda tutalım).Eğer bağlantı sağlanamazsa TIME OUT mesajı alınır bu durumda add node butonuna tekrar basıp arduinomuzu hemen resetleyip tekrar deneyebilirsiniz.Hala hata mesajı alıyorsak nrf24 ün arduino ve raspi bağlantılarını kontrol ediyoruz. şimdi ana sayfaya geri dönerek eklenen sensörümüzü sayfada görüntüleyelim.
    configure/group and modules/Living room ekranına gelelim burada isterseniz Living room ismini değiştirebilirsiniz ben salon yazdım.sensörleri eklemek için sağ altta more butonuna tıklayalım ve add module diyelim gelen pencerede otomatik olarak eklenen sensörlerimizin kodu yazar(node numarası) kontrol ettikten sonra add deyip onaylayalım artık sensörlerimiz eklendi.Ana sayfadan ilgili oda ismine(Living room) tıklayarak sensör değerlerini görebiliriz.

    DIŞARIDAN SİSTEMİMİZE ERİŞİM NASIL YAPARIZ ?
    Arkadaşlar sistemimize lokal ip den erişebiliyoruz peki başka bir yerden nasıl erişim sağlarız.Hemen girelim konuya

    Bunun için ücretsiz DNS hizmeti veren sitelere başvurmamız gerekiyor.Ben önceden no-ip gibi siteleri kullanıyordum ama bunlarda zamanla ücretli olmaya başladı.Bu konuyu araştırırken karşıma DUCKDNS çıktı.Kurulumun pratik olması ve raspberry pi yi desteklemesi üstelik ücretsiz hizmet vermesi sebebiyle tercihim bu yönde oldu.
    Başlayalım...
    Önceliklehttps://www.duckdns.org/ ye gidelim.Açılan sayfada üst tarafta Twitter, Facebook, Reddit ve Google+ ile giriş yapabileceğimizi gösteren ikonlardan size uygun olanını seçin.Mesela facebook la giriş yapabilirsiniz.
     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU
     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU
     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Giriş yaptıktan sonra alttahttp://****.duckdns.org yıldızların olduğu boşluğa siteniz için bir isim verin ve yanında bulunan add domain yazan butona tıklayın.Domain ekledik şimdi raspiye kurmaya geldi.

    duckdns sitesinde yukarıda install butonuna tıklıyoruz.

    Operating Systems kısmından pi yazana tıklıyoruz.

    Hemen altta first step - choose a domain yazan yerden az önce eklemiş olduğumuz domain ismini seçiyoruz.

    Raspiye ssh üzerinden uzak erişim yapıp kullanıcı adımızı ve şifremizi girdikten sonra alttaki kodları(yeşil ile belirtilen) sırayla raspberry pi de yapıyoruz.

    Duckdns.org sitesine gidip giriş yaptıktan sonra alt kısımda ip adresimiz,site ismi ve en son ne zaman güncellendiğine dair bilgiler görüntülenir.

    Sistemimize dışarıdan erişmek için ayrıca modemimizi raspi nin kullandığı ip ye yönlendirmemiz gerektiğini unutmayalım.

    Şimdi başka bir ortamdaki bilgisayardan veya akıllı telefonumuzun tarayıcısından siteismi.duckdns.org yazdığımızda otomasyon kontrol sayfamız olan easyiot sayfasına erişebilirsiniz.

    ESP8266 İLE KABLOSUZ KONTROL

    Daha önce NRF24L01+ ile yaptığımız bağlantımızı bir başka modül olan ESP8266 modülüyle yapacağız.Öncelikleelimizde bulunan ESP8266 modülümüze firmware güncellemesi yapmamız gerekiyor,ESP yi bilgisayarımıza bağlamak için FDTI adaptörü kullanıyoruz.Bağlantımız şu şekilde olmalı

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Burada dikkat etmemiz gereken nokta ESP 3.3V ile çalışıyor ve kullandığımız FDTI adaptörümüzün 3.3V bağlantısı varsa VCC yi direk bağlayabilirsiniz eğer yoksa 3.3V regüle kullanmalısınız.

    Bağlantımız tamamsa şuradan xtcom utulity programını indiriyoruz.Program çalıştırdıktan sonra Tools->Config device dan FDTI adaptörünün kullandığı com portu seçiyoruz. ve connect diyoruz.Program com 1-6 portlarını desteklediği için eğer bunların dışında bir com numarası varsa denetim masasından com 1-6 arası olacak şeklinde değişiklik yapmamız gerekiyor.

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU



    Daha sonra API TEST den Flash image download seçim aşağıda linkini verdiğim en son ESP firmware ini yüklüyoruz.
    http://iot-playground.com/swdownload/ESPfirmware/v0.9.5.2%20AT%20Firmware.bin

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    ESP nin default ayarında baudrate ayarı 115200 dür herhangi bir terminal programıyla baudrate ini 9600 olarak ayarlamak için AT+CIOBAUD=9600 komutunu kullanabilirsiniz.


    ESP8266 ile wifi sıcaklık ve nem ölçmek


    Donanım gereksinimi:

    ESP8266 module
    Arduino Pro Mini 8Mzh 3.3V
    3.3V power supplay
    DHT22 temperature and humidity sensor(DHT11 e göre daha doğru sonuç verir)
    EasyIoT server yüklü Raspberry Pi
    WiFi modem

    Bağlantı şu şekilde olmalı (3.3V arduino ya göre)

    ESP8266 module Arduino pro mini module Power supply
    VCC......................VCC............................. 3.3V VCC power supply
    GND.....................GND.............................. GND power suppy
    RST.......................3
    UTXD .....................10
    URXD.....................11
    CH_PHD............................................................3.3V VCC power supply

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    SHT22 nin data pinini Arduinonun 2 nolu pinine bağlıyoruz.VCC 3.3V a GND ise GND ye bağlayacağız.

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Aşağıdaki programı Arduinoya yükleyelim

     /* 
    V1.0 - first version

    Created by Igor Jarc <igor.jarc1@gmail.com>
    Seehttp://iot-playground.com for details

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    version 2 as published by the Free Software Foundation.
    */
    #include <Esp8266EasyIoT.h>
    #include <SoftwareSerial.h>
    #include <DHT.h>

    #define CHILD_ID_HUM 0
    #define CHILD_ID_TEMP 1
    #define HUMIDITY_SENSOR_DIGITAL_PIN 2


    Esp8266EasyIoT esp;

    SoftwareSerial serialEsp(10, 11);


    DHT dht;
    float lastTemp;
    float lastHum;

    Esp8266EasyIoTMsg msgHum(CHILD_ID_HUM, V_HUM);
    Esp8266EasyIoTMsg msgTemp(CHILD_ID_TEMP, V_TEMP);


    void setup()
    {
    serialEsp.begin(9600);
    Serial.begin(115200);

    Serial.println("EasyIoTEsp init");


    esp.begin(NULL, 3, &serialEsp, &Serial);
    //esp.begin(NULL, &serialEsp);
    dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN);

    pinMode(13, OUTPUT);

    // Serial.println("present S_HUM");
    esp.present(CHILD_ID_HUM, S_HUM);

    // Serial.println("present S_TEMP");
    esp.present(CHILD_ID_TEMP, S_TEMP);

    }

    void loop()
    {
    while(!esp.process());

    delay(dht.getMinimumSamplingPeriod());

    while(!esp.process());

    float temperature = dht.getTemperature();
    if (isnan(temperature)) {
    Serial.println("Failed reading temperature from DHT");
    }
    else if (temperature != lastTemp)
    {
    lastTemp = temperature;
    esp.send(msgTemp.set(temperature, 1));
    Serial.print("T: ");
    Serial.println(temperature);
    }

    float humidity = dht.getHumidity();
    if (isnan(humidity)) {
    Serial.println("Failed reading humidity from DHT");
    }
    else if (humidity != lastHum)
    {
    lastHum = humidity;
    esp.send(msgHum.set(humidity, 1));
    Serial.print("H: ");
    Serial.println(humidity);
    }
    }






    Yeni sensörümüzü eklemek için Easyiot server da
    Configure->Drivers->ESP8266 EasyIoT driver ini enable yapıyoruz ve add node diyoruz.

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Geri gelip Groups and modules ten add new group diyelim karşımıza gelen grup ismi kısmına resimde olduğu gibi ESP8266 yerine mekan ismi(oda,mutfak vb.)yazabilirsiniz.

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Daha sonra add module diyelim

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Burada ESP8266 nın hemen altında eklenmiş sensörler var(S_HUM,S_TEMP) onları tek tek tanıtalım

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU

     RASPBERRY Pİ VE ARDUİNO İLE AKILLI EV OTOMASYONU


    Yeni sensörümüz hayırlı olasun





    Devam edecek.............

    EASYIOT server yazılımı CC BY-NC 3.0 lisansın da belirtilen şartlarda kullanılmakta olup TİCARİ amaçlar için kullanılılamaz.

    NOT:Bu yazının hazırlamasındahttp://iot-playground.com/ vehttp://www.mysensors.org/ sitelerinden yararlanılmıştır.Daha fazla bilgi için siteyi ziyaret edebilirsiniz.



    < Bu mesaj bu kişi tarafından değiştirildi tecman -- 29 Ağustos 2015; 15:29:23 >







  • Hocam ipnizi nasıl halettiniz ?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • takip
    Hocam peki bunu web hosting uzerinden yapabiliriyiz yada baglandigimiz ip illa ayni modemmi olmasi lazim



    < Bu mesaj bu kişi tarafından değiştirildi Guest-1B9CEBC50 -- 31 Temmuz 2015; 15:47:56 >
    < Bu ileti tablet sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: Apollon

    Hocam ipnizi nasıl halettiniz ?

    Localden erişim ip sinden bahsediyorsanız onu raspi den sabitledim.Eğer uzaktan erişimden bahsediyorsanız şimdilik bir şey yapmadım bu konuda önerisi olan varsa beraber değerlendirebiliriz.
  • quote:

    Orijinalden alıntı: Majardoma

    takip
    Hocam peki bunu web hosting uzerinden yapabiliriyiz yada baglandigimiz ip illa ayni modemmi olmasi lazim

    Raspinin almış olduğu ip yi yayın yapabilirsek tabiki olur.şu an ben sadece lokalden aynı modeme bağlı telefon veya laptopdan erişiyorum.Modem servis sağlayıcıdan almış olduğu ip yi bilirsem uzaktan web üzerinden erişebiliyorum zaten.
  • quote:

    Orijinalden alıntı: tecman

    quote:

    Orijinalden alıntı: Apollon

    Hocam ipnizi nasıl halettiniz ?

    Localden erişim ip sinden bahsediyorsanız onu raspi den sabitledim.Eğer uzaktan erişimden bahsediyorsanız şimdilik bir şey yapmadım bu konuda önerisi olan varsa beraber değerlendirebiliriz.

    En basiti port açmak ancak güvenlik sıkıntı. Onun dışında vpn ya da hamachi denenebilir



    < Bu mesaj bu kişi tarafından değiştirildi CarnageTR -- 31 Temmuz 2015; 16:59:59 >
    < Bu ileti mini sürüm kullanılarak atıldı >
  • güzel konu

    < Bu ileti tablet sürüm kullanılarak atıldı >
  • güzel konu seneye bende böyle bir sistem yapıcam inş üni sınavından sonra takipteyim
  • Hocam takiple devamını bekliyoruz. Saygılar
  • güzel bir çalışma ustam başarılarının devamını diliyorum daha iyilerine hep birlikte
  • Benim elimde dht11 var ama hassasiyetini hiç beğenmedim, +-2C de nedir ? Bu sıcaklarda bizim için 0,1C nin bile ehemmiyeti var.
  • Sanırım iss den statik ip almak gerekli. Fiyatları cüzi bir miktardı, yanlış hatırlamıyorsam aylık 3 lira gibi bir ücret alıyorlardı.



    < Bu mesaj bu kişi tarafından değiştirildi fbkaya -- 4 Ağustos 2015; 7:22:05 >
  • quote:

    Orijinalden alıntı: KaraXan

    Benim elimde dht11 var ama hassasiyetini hiç beğenmedim, +-2C de nedir ? Bu sıcaklarda bizim için 0,1C nin bile ehemmiyeti var.

    Evet dht11 pek hassas değil dht22 biraz daha hassa diyorlar oda biraz pahalı.



    < Bu mesaj bu kişi tarafından değiştirildi tecman -- 4 Ağustos 2015; 8:39:53 >
  • devamı yokmu hocam
  • quote:

    Orijinalden alıntı: Majardoma

    devamı yokmu hocam

    Biraz yoğunluk vardı,Bugün yarın konuya yeni eklemeler yapabilirim sanırım.
  • Güncelleme....Sisteme dışarıdan erişim konusu eklenmiştir
  • quote:

    Orijinalden alıntı: tecman

    Güncelleme....Sisteme dışarıdan erişim konusu eklenmiştir

    Takip elinize saglık hocam
  • up
  • Güncelleme ESP8266 İLE KABLOSUZ KONTROL konusu eklenmiştir.
  • Arkadaşlar Raspberry Pi ile proje geliştirmek istiyorum ancak kafama takılan bir soru var. Yaptığım sistemi sürekli olarak ben değil tekniğinden anlamayan bir vatandaş kullanacak. Dolayısıyla herhangi bir elektrik kesintisinde, sistem yeniden başladığında v.s. daha önceki kurguda çalışmasına kendi kendine devam eder mi? Yoksa böyle bir durumda ilk başta yapılan ayarları ve işlemleri tekrar mı yapmamız gerekir?



    < Bu mesaj bu kişi tarafından değiştirildi ikinumara -- 7 Eylül 2017; 12:46:35 >
  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.