Merhaba arkadaşlar!
Sizlerle daha önce birçok proje yapmıştık, bugün de bir yenisini daha ekliyoruz.

Daha önce Arduino ve ESP8266 modülüne detaylı bir şekilde değinmiştik. Bugün yalnızca ESP82266 modülünü programlayarak BLynk uygulaması üzerinden uzaktan kontrollü çiçek sulama sistemimizden bahsedeceğim.

Kuruluma ve projeye başlamadan önce yapılması gerekenleri kısaca anlatmak isterim:

  1. İlk olarak ESP8266 modülü için gerekli olan kütüphanemizi eklememiz gerekiyor. Bunu burada bulacağınız linkten indirebilirsiniz. Aynı zamanda proje süresince Blynk uygulamasını kullanacağımız için Blynk uygulaması kütüphanelerini eklememiz gerekiyor. Ona da buradan ulaşabilirsiniz.
  2. Gerekli kütüphanelerimizi indirdikten sonra Arduino uygulamamızı açmamız gerekiyor. Eğer hala edinmediyseniz burada açıklamasını ve linkini bulabilirsiniz.
  3. Arduino’yu indirip kurulumunu yaptıktan sonra Taslak >> Kütüphane Ekle >> Kütüphaneleri Yönet kısmına bastıktan sonra arama alanına paylaştığım kütüphanelerin isimlerini yazarak indirin.
  4. Daha sonra Dosya >> Tercihler kısmında bulunan Ek Devre Kartları Yöneticisi alanına http://arduino.esp8266.com/stable/package_esp8266com_index.json adresini yapıştırın.
  5. Daha sonra Araçlar >> Kart >> Kart Yöneticisi alanına gelerek EPS8266 kart yüklemesini yapabilirsiniz.
  6. Telefonunuzda bulunan uygun uygulama marketini kullanarak ücretsiz bir şekilde BLynk uygulamasını da indirdiyseniz artık yazılıma başlayabiliriz.

Sizlere kısaca Blynk uygulamasından bahsetmek istiyorum. Bu uygulama ESP8266 modülü ile nesneleri kontrol etmemizi sağlıyor. Yani siz uygulamayı telefona indirip bu uygulamadaki projenizi sistemle entegre ettiğiniz anda dünyanın her yerinden erişim sağlayabiliyorsunuz. Blynk uygulaması aynı zamanda farklı birçok projeyi yönetmemize de olanak sağlamaktadır.

İlerledikçe aşağılarda sizlere daha çok bilgi vereceğim.

Öncelikle uygulamamızı indirdikten sonra artık kurulum işlemlerine başlayabiliriz.

Sizlere daha iyi anlamanız açısından bu proje kapsamında adım adım anlatacağım bu adımlar Kurulum kısmı, Devre kısmı, Yazılım kısmı olmak üzere üç bölümden oluşacaktır.

Kurulum kısmı

1-)  Uygulamayı telefonunuza indirdikten sonra ilk olarak karşınıza bu sayfa çıkıyor. Buradan hızlıca bir hesap açabilir ya da Facebook hesabınız ile giriş yapabilirsiniz. Ben hesap açmanızı tavsiye ederim çünkü oldukça kolay bir işlem.

2-) Hemen bir hesap oluşturuyoruz. Ve next butonuna dokunuyoruz.

3-) Hesabınızı açtıktan sonra bu sayfa karşınıza çıkıyor burada yeni proje başlatabilir uygulama hakkında bilgi alabilirsiniz. Çok basit bir arayüze sahip olduğu için biraz kurcalarsanız zaten her şeyi daha iyi anlayacaksınız.

Projemize başlamak için  New Project’e basıyoruz.

4-) New Project kısmına bastıktan sonra karşımıza bu sayfa çıkacak. Burada projemize bir isim verip hangi modülü kullanacağımızı da seçiyoruz.Biz ESP8266 kullanacağımız için onu seçtik iletişim tipi olarak uzaktan kontrol olmasını istediğimiz için WİFİ kullandık. Siz isterseniz burada farklı bi kart seçerek farklı iletişim tiplerini seçebilirsiniz. Diğer projeler olarak da evinize Arduino seçerek Blynk üzerinden Arduino’nuzu kontrol edebilir Bluetooth kullanarak yapacağınız projelerde de büyük faydalar sağlayabilir. Her neyse biz projemize dönelim. ESP8266 seçip WİFİ iletişimi seçtikten sonra Create Project’e basıyoruz.

5-) Create Project’e bastığımızda karşımıza böyle bir ekran gelecektir. Burada uygulama bize iletişimimizin bir nevi şifresi olarak kullanacağımız Token’ı mail adresimize gönderiyor.

Token’i aynı zamanda proje içerisinde ayarlar bölümünden de görebiliyoruz.

Unutulmaması gereken önemli bir nokta da şu her proje için uygulama bize farklı Token numaraları verecektir. Bu sayede daha önce de belirttiğim gibi aynı anda birçok projeyi de yönlendirebilirsiniz.

Bilgilendirmeyi aldıktan sonra OK kısmına basarak devam ediyoruz.

6-) Karşımıza çıkan bu sayfa bizim projelerimizi kontrol edeceğimiz ara yüz. Blynk bize bu şekilde bir nevi platform vermiş oluyor.Tasarımını ve boyutlandırmasını kendimiz yapabiliyoruz.

Bu sayfa karşımıza çıktıktan sonra sağ üst köşede projemizi başlamasını sağlayan butonumuz ve onun yanında ayarlar kısmımız bulunuyor.

Ayarlar kısmından proje adı değiştirebilir ve Token’inizi öğrenebilirsiniz. Biz burada ihtiyaç duyduğumuz Wingetleri platformumuza koyacağız. Bunun için siyah alana basmamız yeterli olacaktır

7-) 6. Seçenekteki siyah alana bastığımızda yan taraftan böyle aşağı doğru ilerleyen bir sayfa içerisinde gerekli olan Control panelleri, Wingetler vs. görebilir ve ekleme yapabilirsiniz.Blynk bize projeler için bir enerji sağlıyor oda yukarıda pil şeklinde göreceğiniz şeydir.

Görüyorsunuz ki her elemanın altında bir maliyeti vardır ve sizin bütçeniz de 1400 olarak belirlenmiştir. Bu size yeterli olmayacaksa pil kısmına basarak oradan arttırabilirsiniz ama tabi ki buda ücretli.

Deneyimlerimden yola çıkarak şunu söyleyebilirim 1400 size fazlasıyla yetmekte merak etmeyin.Çiçek sulama projemizde su motorunu kontrol için bir Button ve Toprak Nem değerlerini okuyabilmek için bir Gauge eklememiz gerekiyor.

İlk olarak butonumuzu ekleyelim.

İkinci olarak ise Guagemizi ekleriz.

8 -)  Button elementine bastığımızda karşımıza şu sayfa çıkacaktır. Burada butona isim ve renk verebiliriz.

Bizim asıl işimizi yapacağımız OUTPUT olarak kullanacağımız yerdir. Burada yeşil olarak gösterilen yerde devremizde bağladığımız Pini doğru seçmemiz gerekmektedir.

Bu konu hakkında ESP8266 modülün Datashit’ini devremizi kurarken vereceğim.Siz nasıl bir bağlantı yaptıysanız burada ona uygun olanı seçmeniz çok önemlidir.

Örneğin ben modül üzerinde bulunan D1 pininden çıkış aldım ve bu pin GPIO5 olarak kullandığım için GP5 seçtim.Burada aynı zamanda butonumuzun tipini de PUSH yada SWİTCH olarak belirleyebilirsiniz . Ben projemde butona bastığımda suyun açık kalmasını istediğim için SWITCH olarak belirledim .

9-) Gauge ekledikten sonra yine burada bir sayfa karşımıza çıkıyor. Burada nem sensöründen gelen verileri göstermek için kullanacağımız Gauge nin ayarları bulunuyor. Buradan değer okuma yapacağımız için bizim INPUT’umuz oluyor .

Veriler bize analog olarak geleceği için analog okuma yapacağız. Fakat biz uygulama üzerinden analog pinini seçtiğimizde bize istediğimiz aralıkta bir değer gösteremeyecek. Bu sebep ile bizde sanal pin olarak seçerek (V1) değer göstermemizi sanal olarak ayarlıyoruz.

Nem sensörümüz bize normalde 0-1023 arası bir değer verecektir. Gauge de eklediğimizde karşımıza bu sayı aralığı çıkacaktır. Nem aralığı olarak bu aralığı görmek istemediğimiz için yazılımda bunu istediğimiz değer aralığına dönüştüreceğiz.

Bu  0-1023 ile 0-100 arasındaki ilişkiyi yazılım kısmında yapacağız ve V1 pininden de okuma yapacağız.Dikkat etmeniz gereken durum şu analog okuma yapacağımız için nem sensörünü A0 pinine bağlamamız gerekiyor.

10-) Elementlerimizi ekleyip pinlerini belirledikten sonra artık yapmamız gereken şey devre ve yazılım kısmına geçmek.

Devre Kısmı

Uygulamamızı kurup yükleme işlemlerini hallettiğimize göre artık devremizi kurmaya başlayabiliriz. Devreye başlamadan önce devre elemanlarımızı tanıyalım.

  1. Dalgıç pompa.
  2. ESP8266 Wemos WİFİ Geliştirme kartı.
  3. Toprak nem sensör.
  4. Jumper kablo (10 adet D-D).
  5. L9110 Çift motor sürücü.
  6. Breadboard.

Malzemelerimizi aldıktan sonra hemen devreyi yapmaya başlayabiliriz.

  1. İlk olarak nem sensörü içerisinden çıkan bağlantılarımızı yapıyoruz. 2 dişi tarafı sensörün dişisine gelecek şekilde bağladıktan sonra sensör 4 dişi kısmında bulunan GND (-) ,VCC (+) breadboard üzerine ve analog okuma yapacağımız için A0 numaralı pini kart üzerindeki A0 pinine yerleştiriyoruz.
  • İkinci olarak da motor ve motor sürücüsü bağlantılarımızı tamamlamamız gerekiyor. Bunları yaparken motor üzerinde bulunan kabloları motor sürücü üzerinde MOTOR A kısmında bulunun yerlere yerleştirip sıkıyoruz. Böylece motor ve sürücü bağlantısı gerçekleşti. Daha sonra motor sürücü enerjisi ve kullanım yapmak için yine VCC (+), GND (-) ve A1-B pin uçlarına kablolarımızı yerleştirip kenara koyuyoruz.

Toprak nem senörü ve motor bağlantı kablolarını hazırladığımıza göre devremize devam edelim.

  • Breadboard’ımızı önümüze alıp ESP8266 kartımızdan VCC (+), GND (-) hatlarımızı board üzerindeki + ve – hatlarına çekiyoruz.
  • Daha sonra motor sürücümüzün A1-B pinine bağladığımız kabloyu kart üzerindeki D1 pinine bağlıyoruz. Bu bizim uygulamada belirlediğimiz buton pinimiz olan GPIO5(görsel 1) numaralı pinimize eş olacaktır. Buradan durdur başlat komutlarımız ile motorumuzu kontrol edebileceğiz.
  • Motor sürücü bağlantımızı tamamlamak için motorumuzun VCC ve GND hatlarını board üzerinde çektiğimiz sırasıyla + ve – hatlara bağlıyoruz. (Böylece motorumuzun bağlantısını halletmiş olduk.)
  • Daha sonra Toprak nem sensörümüzün A0 numaralı pininden aldığımız kabloyu kart üzerinde bulunan A0 isimli analog girişimize bağlıyoruz. Uygulama üzerinden sanal pin belirlememize rağmen A0 pininden okuma yapmamız gerekiyor.

Devremiz bu şekilde tamamlanmış olacaktır. Şematik gösterimi olarak ;

Görsel 1

Devremizi kurarken bağlantılarımızı ve uygulama üzerinden seçtiğimiz pine bağlantı yaptığımıza dikkat etmemiz gerekmekte. Bunu Görsel 1 den teyit edebilirsiniz.  Aksi takdirde projemiz istenildiği gibi çalışmayacaktır.

Devreyi çalıştırdığımızda ve kartımıza USB bağlantısı ile güç verdiğimiz zaman kart üzerinde ısınma oluyorsa hemen USB bağlantısını sökmeyi unutmayın. Bu gibi durumlar motor sürücünüzün anlık olarak akım çekmesinden dolayı oluşur. Motor sürücünüsü USB bağlantısı yaptıktan sonra pini takınız. Düzelmediği taktirde dışarıdan Board üzerine doğrudan 5V vererek de sistemi besleye bilirsiniz.

Bağlantıların ve sistemin düzgün çalıştığından emin olduktan sonra artık yazılım kısmına geçebiliriz.

Yazılım Kısmı

Yazılım kısmına başlamadan önce hatırlatmak isterim ki yazımızın başında belirttiğim gibi bazı kütüphaneler eklemeniz ve kart kurulumuzu yapmanız gerekiyor. Bu yüklemeleri yaptıktan sonra Arduino uygulamamızı açıyoruz. ESP kartımıza aynı Arduino ile yaptığımız gibi yazılım işleme yapabiliyoruz o yüzden ayrı olarak başka kart kullanmamıza gerek kalmıyor.

Uygulamamızı açıktam sonra Void setup kısmımızın üzerine #define komutu ile (BLYNK_PRINT Serial) yazıyoruz. Bu komut ile Serial olarak telefonumuz ve ESP kartımız iletişimde olacaktır.

Alt satıra geçerek yine aynı komutu (#define) komutunu kullanarak #define sensor A0 yazıyoruz.

Bu bizim sensör okumamızı A0 pininden yapacağımızı belirttiğimiz anlamına geliyor.

Daha sonra #include komutu ile ( <ESP8266WiFi.h> ) ve aynı komut ile <BlynkSimpleEsp8266.h> kütüphanelerimizi ekliyoruz.

Daha sonra char komutu ile belirlenmiş olan token, ağ adımızı ve ağ şifremizi eksiksiz bir şekilde belirliyoruz. Örnek olarak;

char  token [] = “Ugulamanın size mail atmış olduğu kod”;

char agAdi [] = “Bağlanmak istediğiniz WİFİ adı”;  ve

char agSifre [] = “Bağlanmak istediğiniz ağın şifresi”;

Şeklinde yazdıktan sonra artık setup kısmımıza geçebiliriz..

Setup kısmında ilk olarak bir Serial haberleşme başlatmamız gerekiyor. Bunu da Serial.begin (9600);

Komutu ile yapıyoruz. 9600 olmasının sebebi bizim kartımızın bu aralık ile haberleşme sağlamasından kaynaklıdır.

Daha sonra yine setup kısmımızda Blynk.begin (token, agAdi, agSifre); şeklinde tokeninizi bağlanmak istediğiniz ağ adını ve o ağa ait WİFİ şifresini yukarıda char olarak belirttiğiniz şekilde yazmamız gerekiyor. Aksi taktirde ESP8266 kartımız internet bağlantısı sağlamayarak projemizi çalıştırmayacaktır. (agAdi , agSifre olarak yazmamın sebebi yukarıda char olarak bu isimleri kullandığım içindir Blynk.begin komutu içerisinde yazdığımız isimler yukarıda ki char la aynı olmak zorundadır. )

Setup kısmını hallettiğimize göre artık asıl projemizi çalıştıracak olan loop kısmına geçebiliriz.

Burada ilk olarak Toprak sensöründen okuyacağımız bir değer olacağı için bizde bir int deger olarak bir değişken belirleyelim bu değişken içerisine analogRead komutu ile A0 (sensör bağlantısı yaptığımız pin) okumasını gerçekleştiriyoruz.

Daha sonra bu değeri  daha önce de söylediğim gibi dönüştürme işlemini yapmak için map komutu içerisine okuduğumuz değeri,değer aralığını, ve dönüşmesini istediğimiz aralığı yazıyoruz.

Örneğin; map(değer,0,1023,0,100); olarak yazıyoruz. Böylece Toprak nem sensöründen gelen 0-1023 aralığındaki değeri 0-100 arası da dönüştürmüş oluyoruz. Bu yapmış olduğumuz işlemi de int donuşum olarak bir değişken haline getiriyoruz.

Bu işlemler sonucu iki tane değişkenimiz olmuş olacaktır biri sensör değerini okuduğumuz deger değişkenimiz diğeri ise de donusum olarak belirlediğimiz okunan değerin istediğimiz hale gelmiş durumu olacaktır.

Daha sonra bu donusum değerini biz uygulamamızda Guage de görmek için,

Blynk.virtualWrite (V1, donusum);  şeklinde yazarak uygulamamıza yazdırıyoruz.

Daha sonra da Blynk.run () ; komutunu kullanarak da uygulama haberleşmemizi başlatıyoruz.

Artık yazılım kısmının sonuna geldik yukarıda araçlar kısmından doğru kartı (Generic ESP8266 Module) ve doğru port’u seçtikten sonra hata almadan yazılımımızı kartımıza yazdırıyoruz.

İşlem gerçekleştikten sonra artık çalıştırma kısmına gelebiliriz.

Kod ksımını da görsel olarak şu şekilde olacaktır;

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>  //Gerekli kütüphanelerimizi ekliyoruz.
#include <BlynkSimpleEsp8266.h>

char token[] = "BxfIK5znmUTk3WPAPMBcntLR5rFVh5aS";
char agAdi[] = "Robotistan"; //Blynk uygulamasının bize vermiş olduğu token ve bağlanmak istediğimiz wifi ve şifresini char komutu ile belirliyoruz.
char agSifre[] = "bmc34RbT124";
int deger ;      // okuma yapacağımız nem değerini deger değişkeni olarak belirliyoruz.

#define sensor A0  // Sensor okuma yapacağımız pini burada belirliyoruz. 
void setup() {
  
  
  Serial.begin(9600);   //Blynk ve ESP iletişimi için serial monitörü başlatıyoruz.
  
  Blynk.begin(token, agAdi, agSifre);  // blynk uygulaması ve ESP bağlantısı sağlanması açısından Blynk.begin komutu içerisine token ve ag adı,şifremizi yazıyoruz.
  
}

void loop() {
    deger = digitalRead(A0);     //toprak nem sensöründen digital okuma yapıyoruz.
  map(deger ,0,1023,0,100);      // okunan bu değer 0-1023 değeri arasında olacağı için burada map komutu ile istediğimiz 0-100 aralığına çeviriyoruz.
  Blynk.run();            //Blynk uygulamasını başlatıyoruz.
 

}

Aksiyon kısmı olarak da deneme kısmını anlatmak istiyorum. Bu kısımda uygulama kurulum yazılım ve devre işlemlerini eksiksiz halde yaptıysanız projemizi çalıştırmayı anlatacağım.

İlk olarak devremizi tamamladıktan sonra ESP8266 katımızı USB bağlantısı yapıp devremize elektik veriyoruz.

Telefonumuzdan uygulamayı açıyoruz ve projemizin platform olarak adlandırdığımız bölümüne geliyoruz.

 Bu kısma geldikten sonra da sağ üst köşede bulunan üçgen şeklindeki ibareye basıyoruz. Böylelikle ESP8266 kartımız ve telefonumuz iletişime geçmek için hazırlanacaktır.

Artık toprak nem senörümüzden çiçeğimizin nem değerini görüp dilediğiniz zaman uzaktan sulamasını gerçekleştirebiliriz.

Tebrikler 🙂

 

Çiçek sulama projemiz hazır 🙂

2 Yorumlar

    • Merhabalar Kaan Bey,

      Tabikide kullanabilirsiniz. Wemos sadece bir kart markası aynı işlemi NodeMCU gibi farklı kartlar da kullanabilirsiniz.

      Başarılar diliyorum 🙂

CEVAP VER

Please enter your comment!
Please enter your name here