Arduino NRF24l01 ile Lcd Ekrana Sıcaklık Nem Verisi Gönderme

6 3.499

Arduino uygulamalarında rf haberleşme sık kullanılmakta. Bu projemizde de arduino ile NRF24l01 sıcaklık nem değerlerini lcd ekrana gönderecek. Projeye başlamadan önce NRF24l01 modül hakkında bilgi almak isterseniz buraya bakabilirsiniz. Projenin videosunu ilerleyen günlerde yayınlayacağım. Yukarıdaki video örnek amaçlı konulmuştur.

Malzemeler:

Verici Devresi:

  1. Arduino Uno

  2. NRF24l01 RF modül

  3. Dht11 Sıcaklık Nem Sensörü

  4. 9v Pil ( Arduino Jak Girişinden Beslemek İçin)

  5. 4.7k Direnç

Alıcı Devresi:

  1. Arduino Uno

  2. NRF24l01 RF modül

  3. I2C LCD 16 × 2 Ekran

  4. 9v Pil ( Arduino Jak Girişinden Beslemek İçin)

 

Verici Devre Şeması:

Alıcı Devre Şeması:

Bağlantı şemalarına göre devreyi kuralım. Gerekli açıklamalar devre şemaları üzerinde açıklandı. NRF24l01 3.3 v ile çalıştığından fazla voltaj verirseniz modüle zarar verebilirsiniz.

 

Kütüphaneler: RF24 dht11 ve LCD kütüphaneleri

Verici Devrenin Arduino Yazılımı:

// Robimek - Robotik Sistemler
// SICAKLIK NEM VERİCİ KODU
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DHT11.h>

int pin = A0;
DHT11 dht11(pin);
float deger[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);
deger[0] = sicaklik;
deger[1] = nem;
radio.write(deger, sizeof(deger));
delay(1000);
}

Alıcı Devrenin Arduino Yazılımı:

// Robimek - Robotik Sistemler
// SICAKLIK NEM ALICI KODU
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
float deger[2];

RF24 radio(9, 10);
const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(void) {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1, pipe);
radio.startListening();
lcd.begin();
lcd.backlight();
lcd.clear();
lcd.print("Nem - Sicaklik");
delay(1000);
lcd.clear();
lcd.print("Baglaniyor.....");
delay(1000);
}

void loop(void)
{
if ( radio.available() )
{
bool done = false;
while (!done)
{
done = radio.read(deger, sizeof(deger));
lcd.clear();
delay(500);
lcd.setCursor(0, 0);
lcd.print("Sicaklik:");
lcd.setCursor(0, 1);
lcd.print("Nem:");
lcd.setCursor(11, 0);
lcd.print(deger[0]);
lcd.print(" C");
lcd.setCursor(6, 1);
lcd.print(deger[1]);
lcd.print(" %");
delay(1000);
}
}
else
{
lcd.setCursor(0, 0);
lcd.print("İletisim Yok");
}
}

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 3.3 uF ile 10 uF  arası değerde kondansatör yerleştirerek tekrar deneyiniz.

Bunlar da İlgini Çekebilir

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  1. fırat birol

    arkdşlar merhaba bende bu modülle bi kablosuz ısı nem ölçer yapayım dedim elektronikten soğudum resmen. Size yardımcı olması açısından şöyle söyliyim aşağıda yorum yazan Onur Atakan Ulusoy kardeşimizin attığı linklerdeki parçayı almak gerekiyo heralde tam çalışması için, çünkü bu parçada voltaj uyumsuzluğu çok oluyor. Ama şöyle bişey bu parçayı almadan önce modülün gnd ile vcc kısımlarına yani + – kısımlarına 3.3uF 10uF fln kondansatör bağlayın eğer öyle çalışırsa o ek parçayı almaya gerek yok. Başka yardım almak isterseniz devrenizle ilgili f.brglu@gmail.com benim adresim oraya mail atın elimden bişey gelirse yardımcı olurum. Bu arada şunuda diyim sitedeki kodlar doğru. Kodlarda bi problem yok yani devreniz çalışmıyosa o nrf24 modülün haberleşmesinden ötürü bi problem var ya da kablo bağlantılarını doğru yapmamışsınızdır.

  2. Nizamettin

    Merhaba
    Ben devreyi kurdum ama sürekli iletişim yok diyor.
    Verici devresine seri portta baktım sıkıntı yok sıcaklık nem verisi veriyor ama alıcı devresinde bağlanıyor kısmından sonra direk iletişim yok yzaıyor bilgi verirseniz sevinirim.
    Teşekkürler…

    1. Çağla

      Aynı şeyi bende yaşıyorum nasıl çözümü olacak yazabilir misiniz? Acaba kanallar her nrf için ayrı mı?

  3. fırat

    merhabarl
    devreyi kurdum herşeyi yaptım kodları girdim 1 kere tek veri alıyor. sonra
    iletişimyok
    nem %60 fln (en son aldığı veride kalıyor)
    tekrar veri göndermesi için aurduinoları başlatıyorm bi kaç defa öyle gene 1 kere tek alıyor.
    kondansatör 100uF 3.3uF 10uF fln epey denedim sorun nedir acaba ?

    1. Onur Atakan Ulusoy

      Eğer sadece alıcı veya verici devresinde sorun varsa, Bu modüllerin taşıyıcı kartları var. Onlardan alırsanız sistem daha kararlı çalışacaktır.
      urun.n11.com/diger/nrf24l01-adaptor-nrf24l01-8pin-kablosuz-adaptor-modulu-P299560535?gclid=CjwKCAiA0ajgBRA4EiwA9gFOR_CHV4JocA-OgoOtT_HBa2tOsZH98F2PdmGg4ywwQOrOcNrk7mjbzhoCpdIQAvD_BwE&gclsrc=aw.ds
      Veya
      robolinkmarket.com/nrf24l01-tasiyici-kart.html?language=tr&currency=TRY&gclid=CjwKCAiA0ajgBRA4EiwA9gFORy4HECFtsR0Hw6UMdNGTd9dk7nUPfWfsCT_0yO5lSUNiVNMgq8sGBhoCOYsQAvD_BwE

  4. hayri

    merhabalar hocam öncelikle emeğinize teşekkür ederim
    alıcı devrede 2*16 lcd tek var elimde o bi ek bişey takılıyo ona 4pine düşüren. O parçayı bulamadım internette stokta yok çoğu yerde. paralel portlama şekliyle alıcı devreyi tekrardan yükleyebilrmisinz. birde bread boardda daha ayrıntılı olacak şekilde