NodeMCU ile DHT11 Kullanımı

NodeMCU DHT11

Arduino üzerine 1-2 çalışma yapmıştım ve artık kablosuz haberleşme üzerine farklı şeyler yapmaya çalışıyorum. Bunun içinde en büyük yardımcım ESP8266 modülü oluyor.

Ama Arduino kullanırken şöyle bir sıkıntı çekiyorum. Uno’nun ve Nano’nun hafızaları bazı şeyler için küçük geliyor ve Mega’nın da boyutu yaptığım işler için büyük geliyor. Bunun için hem boyut hem hafızadan kazanç, hem de ESP8266 bağlantısındaki kablo kalabalığından kurtulmak için NodeMCU‘ya geçiş yaptım ve projelerimde onu da kullanmaya çalışıyorum.

Bu yazımda DHT11 Sıcaklık ve Nem sensörünün kullanımı hakkında bilgi vereceğim.

Sensörün özelliği, havanın sıcaklığını ve nemini ölçerek bize ulaştırıyor. Bu verileri belirli aralıklarla yaparak daha net bilgiye ulaşmamıza yardımcı oluyor.

Github sayfama eklediğim repo’da sensörün kullanımına ait detayları anlatmaya çalıştım. Gerekli olan kütüphane dosyası için ve kodu indirmek için aşağıdaki adrese gitmeniz yeterli.

https://github.com/erenkeskin/nodemcu-dht11-nem-sicaklik-sensoru-kullanimi

https://gist.github.com/d5d00dc0d31867e7a63ef8f9c6ed5aa5

Bir sonraki yazımda, DHT11 ile alınmış olan, odamdaki verileri nasıl internet üzerine taşıyarak değerlerini kontrol edebildiğimi anlatacağım.

Arduino ve Android Telefon ile Bluetooth Kontrollü Araba Yapımı


Bir önceki yazımda yazmış olduğum MIT: App Inventor ile geliştirdiğim bir Android uygulaması ile Arduino kullanarak hazırlamış olduğum arabamı kontrol etmeyi başardım. Yazının içerisinde arabanın çalışma mantığından ve yazılım kısmından elimden geldiğince ayrıntılı olarak bahsetmeye çalışacağım. Arabamız, ileri, geri, sağ, sol, durma, sağ sinyal, sol sinyal, dörtlü yakma ve korna özelliklerine sahip. Bu özelliklerin hepsini bluetooth ile telefonumuz üzerinden kontrol edebiliyoruz.

Daha önceki yazımda sadece entegre olarak elinizde bulunan L288N sürücüsünü nasıl kullanacağınızı anlatmıştım.

2 tekeri Eskişehir’de unuttuğum için şuan fotoğraf ve video ekleyemiyorum. Ama en kısa sürede ekleyeceğim.

Kullandığım komponentler:

  • Arduino Uno
  • HC-06 Bluetooth modülü
  • L298N Motor Sürücüsü
  • 4 adet DC Motor
  • Harici Güç Kaynağı (Pil)
  • Led’ler
  • Jumper kablolar

İlk olarak aracımızın devre şeması ile başlayalım. Benim oluşturduğum aracın devre şeması tamamen aşağıdaki gibidir. Eğer daha çok özellik ekleyerek geliştirmek isterseniz Arduino Mega 2560‘da kullanabilirsiniz. Devre şeması biraz karışık gelebilir, ilk defa Fritzing üzerinden devre çizdim. Bunun hakkındaki sorularınızı yorum olarak belirtebilirsiniz.

Arduino-Android-Telefon-ile-Bluetooth-Kontrollü-Araba-Devre-Çizimi

Arduino Kodumuzu İnceleyelim

Devremizi sıkıntısız şekilde kurduysak aşağıdaki arduino içerisine atarak küçük bir deneme yapalım. Eğer benim gibi motor sürücü kartı değil de motor sürücü modülü kullanırsanız devreniz biraz karışık görünebilir. O yüzden çalışma sırasında küçük sorunlar ortaya çıkabilir, bu deneme kodunu o yüzden çalıştırıp denemeniz sorunlar çözmek için en kolay yoldur. Kodları burada paylaşınca yazılımsal bir sıkıntı ile karşılaştığım için Github Linkleri üzerinden erişim sağlayabilirsiniz.

Github: Araba Motor Sürücü Deneme Kodu

Denedik ve çalışıyor ise artık arabamızı araba yapan kodları içerisine atabiliriz. Benim arabam için kullandığım Pin yapısı devre şemasındakinin aynısıdır, o yüzden kodlar benim devre şemama göre yazılmıştır. Eğer siz pinlerde değişiklik yaparsanız kodların en üst kısmında yer alan kısımdan düzeltebilirsiniz.

Github: Araba Kontrol Dosyası

Son olarak MIT: App Inventor ile oluşturduğum Android uygulamasını telefona kurmanız gerekmektedir. Bu yazıda uygulamanın nasıl yazıldığı hakkında ayrıntılı bilgi vermeyeceğim. Dosyalar içerisinde uygulamanın App Inventor dosyasını da paylaşacağım, incelemek isteyenler o dosyayı import ederek inceleyebilirler. Uygulama hakkındaki her türlü soru ve geliştirme önerilerinizi bana iletebilirsiniz.

Arduino-Android-Telefon-ile-Bluetooth-Kontrollü-Araba-Telefon-Uygulaması

Uygulamanın tüm dosyalarına ulaşmak için aşağıdaki linki kullanabilirsiniz.

Uygulamaya gelen geri dönüşler ile birlikte güncellemeler gelecektir. Lütfen hatalı veya daha iyi olmasını istediniz kısımları yorum olarak belirtiniz.

Github: Arduino ve Android telefon ile bluetooth kontrollü araba yapımı

Gelecek Güncellemeler:

  • Uygulama ile Motorların Hız Kontrolü Yapılacak.
  • Kullandığımız kod daha tutarlı hale getirilecek. Kod içerisinde yapılandırmalar olacak.

MIT: App Inventor

Artık elektroniğe biraz daha yönelmemden dolayı bazı şeylere ihtiyacım oldu. Bunlar arasında – özellikle kablosuz haberleşme için – mobil uygulamalar da yer alıyordu. Şuan sıfırdan bir Android uygulama yazma için bilgim olmadığı için hazır olarak uygulama oluşturmama yardımcı olacak araçlar arayışına girdim. MIT: App Inventor ile karşılaştım.

Önce, App Inventor hakkında internetteki yorumları okuyunca biraz şaşırdım ve çok basit olduğunu düşündüm. Çünkü o yorumlar arasında, “Çocuklar bile yapabilir. Sürükle-bırak ile istediğiniz uygulamayı yazabiliyorsunuz. Hiç kod bilginiz olmasına gerek yok.” gibi yorumlar görmüştüm. Bu aslında bende hem merak uyandırdı hem de uygulamadan uzaklaştırdı ama merakım daha ağır bastı ve araştırıp öğrenmeye karar verdim.

Yorumlarda bahsedildiği gibi sürükle bırak yöntemiyle uygulamanızı tasarlayıp programlıyorsunuz. Ama öyle hiç programlama bilmeden de yapılabilecek bir şey değil. En basitinden kod bloklarının ne işe yaradığını bilmeniz gerekiyor. Ama eğer programalama mantığına hakimseniz gerçekten de tek bir kod yazmadan sadece sürükle bırak ile uygulamanızı oluşturuyorsunuz.

Ben şuan için başlangıç seviyesinde sayılırım, kendimi geliştiriyorum. Çok yakın zamanda oluşturacağım uygulama ile telefonum ile yaptığımız arabayı kontrol etmeyi planlıyorum. Uygulamayı yaptıktan sonra buradan paylaşacağım.

Şuan Bluetooth ile ilk kontrolümü gerçekleştirdim. Uygulamaya aşağıdaki linkten ulaşabilirsiniz. Uygulamayı HC-06 modülü ile birlikte kullanıyorum. Uygulama içerisinden modüle bağlanıp led yakıp söndürüyorsunuz. Oldukça basit, başlangıç seviyesi bir uygulama ama oldukça kullanışlı olduğunu söyleyebilirim. Bunu yakın zaman içerisinde geliştireceğim.

App Inventor – Bluetooth ile Led Yakma

Arduino L298N Motor Sürücü Entegresi Kullanımı

Daha önceki yazılarımda bir araba projem olduğundan bahsetmiştim. Bu yazımda ise araba projemde kullandığım motor sürücü entegresinin nasıl kullanılacağını anlatacağım. Bunu anlatma sebebim tamamen Türkçe kaynak eksikliğinden kaynaklanıyor. Ben kullanmak için uzun süre uğraştım ve sonunda entegreyi çözmeyi başardım.

İlk olarak entegreden biraz bahsetmek istiyorum. Motor sürücü entegreleri, çeşitli bağlantılarını gerçekleştirerek motorunuzu kodlar yardımıyla kontrol etmenize yarayan entegrelerdir. Ben ilk olarak L293D modelini denedim ama ondan istediğim verimi alamadım o yüzden L298N modeli ile yoluma devam ediyorum. İçerisinde çift H köprüsü barındıran bu model ile aynı anda 2 motoru kontrol edebiliyorsunuz ve bu size çok avantaj sağlıyor.

Entegremiz 8 uzun ve 7 kısa olmak üzere 15 bacaktan oluşuyor. İnternet üzerinde bulduğum çok güzel bir resim ile anlatımıma devam edeceğim.

Arduino L298N Entegre Datasheet

Kaynak: http://electronics.stackexchange.com/questions/5043/l298-motor-driver-spinning-motor-only-one-way

Yukarıda yazan bacakların açıklamasını yapıyorum.

  • Current Sensing: Tam olarak çözemesem de sanırım Enable bacaklarını nötr hale getirmek için toprak hattına bağlamamız gerekiyor.
  • Output: Motorumuzdan gelen kabloları bağlayacağımız bağlantı noktası.
  • Input: Arduino’muzdan çıkan digital pinlerimizin bağlantı noktası.
  • Enable: PWM sinyali alabileceğimiz bir pine bağlanarak motorun hız kontrolünü yapacağımız bağlantı noktası.
  • Logic Supply Voltage: Arduino’muzdan gelen 5v.
  • GND: Toprak Hattı (Ground)
  • Supply Voltage: Besleme Voltajımız, dışardan yapacağımız destek.

Bağlantılarımızı yaparken resimdeki uzun olan bacaklar, entegremizdeki kısa bacakları, resimdeki kısa bacaklar ise entegremizdeki uzun bacakları temsil ediyor. Bunu akılda tutmak zor olur derseniz entegredeki ve resimdeki uzun bacak sayılarını sayarak farkı o şekilde akılda tutabilirsiniz.

Evet. Resimde bağlantıları çok güzel anlatmış ancak ben de anlatmak istiyorum. Current Sensing bacaklarımızı direk olarak toprak hattımızı çektiğimiz noktaya yani GND hattımıza takıyoruz. Output noktalarımıza ise motorumuzun bacaklarını yerleştiriyoruz. Arduino’muzun herhangi bir Digital Pin‘inden gelen kablomuzu ise Input bacaklarının olduğu yere takıyoruz. Ardından Enable bacaklarından çıkarttığımız kabloyu Arduino’muzun PWM sinyali veren pinlerinden birisine bağlayarak motorumuzun hız kontrolünü gerçekleştireceğiz. Logic Supply Voltage‘ı da aynı şekilde + hattına takabilirsiniz. Bildiğiniz gibi zaten GND kablomuz toprak hattına takılmak zorunda ve ardında dışardan (örneğin 9v bir pil ile) yapacağımız beslememizi ise Supply Voltage kısmına takıyoruz, pilin artı ucu Supply Voltage’ı takılacağı için eksi ucunu da breadboard üzerindeki GND noktasına takabilirsiniz.

Entegremizin bağlantısı bu şekilde. Kodlaması ise oldukça basit.

https://gist.github.com/1dee1e0e92f55350349b3208a89a2ac7

Eğer loop kısmında 4. pini LOW, 3. pini HIGH yaparsanız bu sefer motor tam tersi yönde dönecektir.

Entegremizin kullanımı bu şekilde, umarım faydalı bir yazı olmuştur. İleriki günlerde bu entegrenin PIC ile nasıl kullanılacağını, nasıl programlanacağını anlatan bir yazı yazmayı da planlıyorum.

Arduino ile ilgili daha yazılacak çok yazı var ama ben sadece Türkçe kaynak sıkıntı olan yazıları yazmaya çalışacağım. Eğer sizinde sorunlarınızı olursa ve ya Türkçe kaynak sıkıntısı çektiğiniz bir kullanım olursa yorum olarak belirtin, o eksiği tamamlamaya çalışacağım.

Arduino ve Android ile Bluetooth’lu araç kontrolü yazımı okuyabilirsiniz.