Merhaba arkadaşlar arduino ile projelerde olabildiğince hızlı ilerlemeye çalışıyoruz. Bugün ki konumuz Nrf24l01 ve Dht11 kullanarak bir arduinodan Dht11 aracılığıyla aldığımız Sıcaklık ve Nem değerlerini ikinci arduino üzerinden serial monitörde okuyacağız. 🙂 İyi güzelde bu ne işimize yarar diyen hacılar size sesleniyorum mesela eviniz var ve buna akıllı bir sistem kurmak istiyorsunuz. Özelliklerinden biride hava istasyonu olsun haliyle sensörü dışarıya koymanız gerekecek eğer alıcıızla aranızda 15 20 metre varsa kablo çekmek masraflı ve zahmetli olacaktır. Tabi kablo çekilse bile amper sorunları gerçekleşecektir işte böyle durumlarda bu proje imdadınıza yetişiyor umarım aydınlatıcı olmuştur. Çalışma mantığını biliyorsunuz zaten tabi bir önceki yazımı okuduysanız 😉
Kısa bir bilgilendirmeden sonra isterseniz projemize geçelim. 🙂
Her zamanki gibi birkaç tane vatandaşa ihtiyacımız var. 🙂
İçindekiler
Malzeme Listesi
1- Herhangi bir arduino modeli 2 Adet
2- Nrf24l01 2 Adet
3- Dht11 ve 4,7 K direnç
4- Gerekli ekipmanlar
Not: Tüm bu malzemeleri elektronik parça satan yerlerde bulabilirsiniz yada şu ve bu adreslerden internet üzerinden güvenle sipariş edebilirsiniz
Ayrıca eğer zamanım bol diyorsanız Çin’den de Aliexpress vasıtasıyla getirtebilirsiniz. Daha uygun fiyata gelecektir. 🙂
Devre Şeması
Alt tarafta çizdiğimiz devre şemasına bakarak uygun arduino modeline göre devremizi breadboard’umuza kuralım.
Alıcı Devresi
Verici Devresi
Dikkat: Bütün bağlantıları yapıp arduino kodlarını da yükledikten sonra modüller arasında iletişim sağlanmaz ise her iki modülün de VCC ve GND pinleri arasına 10 uF değerinde kondansatör yerleştirerek tekrar deneyiniz. 🙂 Yada daha önceki yazımda anlattığım gibi adaptör alınız 🙂
Yazılım
Bu modüllerle çalışabilmek için 2 Farklı kütüphaneye gerek duyuyoruz. Bunlardan birincisi DHT11 ikincisi ise RF24 kütüphanesi daha önceki yazılarımda vermiştim ama kurmayanlar için aşağıdan indirebilirsiniz.. 🙂
Öncelikle Nrf24l01 kütüphanesi;
İkinci olarak Dht11 kütüphanesi;
kütüphanelerimizi indirdikten sonra aşağıda belirtilen yoldaki klasöre rar dosyasından dan çıkarıp atın.
Rar Şifresi: donanimplus.com
Belgeler > Arduino > libraries
Bildiğiniz üzere iki devremiz var ve bunlar için gerekli iki yazılım hemen aşağıda 🙂
Alıcı Yazılımı
//DONAIM PLUS ELEKTRONİK // MODİFİKASYON TOLGA SOYTEPE // İNSTAGRAM TOLGASYTP // TWİTTER TSytpp // Arduino, Nrf24l01 ile DHT11 kullanarak Serial Monitörden Sıcaklık Bilgileri Okuma // 2019 // ALICI YAZILIMI #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> float veri[2]; RF24 radio(9, 10); const uint64_t pipe = 0xE8E8F0F0E1LL; void setup(void) { Serial.begin(9600); radio.begin(); radio.openReadingPipe(1, pipe); radio.startListening(); Serial.print("Nem - Sicaklik"); delay(1000); Serial.println("Baglaniyor....."); delay(1000); } void loop(void) { if ( radio.available() ) { bool done = false; while (!done) { done = radio.read(veri, sizeof(veri)); Serial.print("Sicaklik: "); Serial.print(veri[0]); Serial.println("Nem: "); Serial.print(veri[1]); delay(1000); } } }
Yazılım kodlarını aşağıdan indirebilirsiniz 🙂
Verici Yazılımı
//DONAIM PLUS ELEKTRONİK // MODİFİKASYON TOLGA SOYTEPE // İNSTAGRAM TOLGASYTP // TWİTTER TSytpp // Arduino, Nrf24l01 ile DHT11 kullanarak Serial Monitörden Sıcaklık Bilgileri Okuma // 2019 // VERİCİ YAZILIMI #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <DHT11.h> int pin = A0; DHT11 dht11(pin); float veri[2]; RF24 radio(9, 10); const uint64_t pipe = 0xE8E8F0F0E1LL; void setup(void) { Serial.begin(9600); radio.begin(); radio.openWritingPipe(pipe); } void loop(void) { float sicaklik, nem; dht11.read(nem, sicaklik); veri[0] = sicaklik; veri[1] = nem; radio.write(veri, sizeof(veri)); delay(1000); }
Yazılım kodlarını aşağıdan indirebilirsiniz 🙂
Herşey yaptıktan sonra serial monitörü açın..
Dikkat: Bütün bağlantıları yapıp arduino kodlarını da yükledikten sonra modüller arasında iletişim sağlanmaz ise her iki modülün de VCC ve GND pinleri arasına 10 uF değerinde kondansatör yerleştirerek tekrar deneyiniz. 🙂 Yada daha önceki yazımda anlattığım gibi adaptör alınız 🙂
Sıcaklık değerleri karşınızda olacaktır.. 🙂
Arkadaşlar sanırsam bir yazının daha sonuna geldik umarı faydalı olmuştur. Umarım bir şeyler katabilmişimdir size anlamadığınız yada kafanıza takılan bir yer olduysa yada bir proje üzerinde çalışıyorsunuzdur yardım falan gerek olursa biz buradayız çekinmeden yorumdan yada kişisel sosyal medya hesaplarımdan sorabilirsiniz.. Bir sonraki yazıda görüşmek üzere.. Kolay Gelsin 🙂
Kolay gelsin.
arduino pro mini 5v 16mhz ile aynı devreyi yapmama rağmen çalışmıyor. sebep ne olabilir?
devremde 5v regülatör arduino ya bağlanıyor. aynı regülatörden 3.3v luk başka bir regulatöre bağlanarak nrf24l01 e güç veriyorum. kütüphaneler de aynı ama hiç bir veri gönderimi yapamıyorum?
Merhaba Kaan, Anladığım kadarıyla arduino için ayrı, modül için ayrı regülatörler kullanıyorsun. Regülatörler ayrı olduğu için devre tam anlamıyla bütün çalışamıyor, eksi kutuplarının hepsinin ortak olması gerekiyor muhtemelen bundan kaynaklanıyordur. eğer devreni çekip upload edersen sorunu daha iyi anlayabiliriz. 🙂 Saygılarımla.
iyi günler iyi çalışmalar ben paylaştığınız kodları ve bağlantı şemasını yapmama rağmen ekrana sadece nem ve sıcaklık yazısından başka yazı yada değer yazdıramadım. Yardımcı olursanız çok mutlu olurum.
Merhaba Bekir Bey tam olarak ne yapmaya çalıştığınızı anlatırsanız daha iyi yardımcı olabiliriz. 🙂
Kardeşim kolay gelsin.Kodun aynısını yazdım fakat alıcı kısmında while kısmıın içindeki done = radio.read(veri, sizeof(veri)); kısmını işaret ederek void value not ignored as it ought to be hatası veriyor. Yardımcı olabilir misin ?
Merhaba Erhan bey kodu kontrol ettim bir sorun gözükmüyor kütüphaneleri doğru yüklediğiniz den emin olunuz. Ayrıca bazen bazı tarayıcılardan kodu kopyalarken tırnak işaretlerini tam almaya yada yanlış alabiliyor kodu verdiğim linkten indirip tekrar denemenizi tevsiye ederim. 🙂