Merhabalar Arkadaşlar, bu uygulamamızda Arduino ile HM-TRLR-DW-433MHZ RF modülünü kullanarak verici tarafından basılan buton ile alıcı tarafındaki ledin kontrolünü sağlayacağız. Bu RF modülü ile seri data haberleşmesi (uart, rs232, ttl) ile 5KM ve üzerinde mesafelere çıkmak mümkündür. Şehir içinde 1KM, açık alanda 6KM menzilde testleri yapılmıştır. HM-TRLR-D serisi 433/470/868/915 MHz’de çalışan düşük maliyetli, yüksek performanslı bir alıcı vericidir. LoRa/FSK/GFSK/OOK modülasyon çeşitliliği, çoklu arayüz modu (TTL/RS232/RS485), yüksek çıkış gücü, yüksek hassasiyet,  uzun iletim mesafesi ve parametrelerin çoğu komut aracılığıyla ayarlanabilir.  Otomatik olarak veri alıp göndermeyi kontrol edebilirsiniz. Geniş bir çalışma voltajına ve düşük uyku akımına sahiptir.  Kullanıcıların UART baud hızını, çıkış gücünü, veri hızını, frekans seçimini, modülasyon modu seçimini vb. parametreleri ayarlamaları esnektir.  Kablosuz veri iletimi alanında yaygın olarak kullanılabilen kablosuz veri iletim ürünleri tasarlamak için ideal seçimdir. Daha detaylı bilgi için ürün datasheet’ini inceleyebilirsiniz. Modül için gerekli Arduino kütüphanesini indirelim. İndirmiş olduğumuz kütüphanemizi Arduino IDE’ye ekleyelim.

Uygulama Alanları:

  • Uzaktan kumanda, uzaktan ölçüm
  • Erişim kontrolü
  • Veri toplama
  • Akıllı ev aletleri
  • Kablosuz ölçüm cihazı
  • Kimlik sistemi
  • Bebek izleme sistemi

HM-TRLR-D Serisi Pin Açıklaması:

STATUS:  Bağlı değilken (Lojik 1, output 3.3V )

CONFIG: Konfigürasyon modu için Lojik 0 (Low), İletişim modu için Lojik 1 (High) ayarlanmalıdır.

GND: Ground

5V: Güç kaynağı, 3.3V-5.5V DC

RXD: TTL Data receiving

TXD: TTL Data transmission

GND: Ground

A_TX: RS485 A (RS232 TX)

B_RX: RS485 B (RS232 RX)

SLEEP: Veri aktarımı için lojik 0 (Low), uyku modu için lijik 1 (High) olarak ayarlanmalıdır.

RESET: Reset tetikleme girişi, lojik 0 (Low) aktif

Kullanılan Malzemeler:

Verici Bağlantı Şeması:

Verici Arduino Kodu:

Alıcı Bağlantı Şeması:

Alıcı Arduino Kodu:

2 YORUMLAR

  1. Merhaba. Bu modülde bu kısmı biraz değiştirdim buton kısmını filan kaldırıp sürekli veri göndermeyi denedim.
    uint8_t buf[HRF_MAX_MESSAGE_LEN];
    uint8_t len = sizeof(buf);
    if (server.recv((uint8_t*)&buf, &len))
    {
    server.send((uint8_t*)”Led Yak\n”, 9);
    Serial.print(“Alinan: “);
    Serial.println((const char*)buf);
    }
    }
    voil loop’un iç kodları sadece bu kadar (verici için)

    alıcı kısımda
    long thisTime = millis();
    if (thisTime > lastSendTime + 1000)
    {
    client.send((uint8_t*)”Robolink\n”, 11);
    lastSendTime = thisTime;
    }
    uint8_t buf[HRF_MAX_MESSAGE_LEN];
    uint8_t len = sizeof(buf);
    if (client.recv((uint8_t*)&buf, &len))
    {
    if(len==9)
    {
    Serial.print(“Alinan: “);
    Serial.println((const char*)buf);
    client.send((uint8_t*)”Led Yandi\n”, 11);
    digitalWrite(led,HIGH);
    }
    }
    şeklinde kullandım. Pin bağlantıları aynı şekilde fakat vericide seri ekran boş görülüyor “server.recv((uint8_t*)&buf, &len)” değeri de 0 olarak dönüyor acaba yardımcı olabilir misiniz ?

    • Vericideki if kısmını kaldırınca dönen değer: Alinan: ⸮D şeklinde. Vericide RXD led sürekli (yeşil) yanık (if kaldırdığım için) alıcıda TXD ledi aralıklı olarak düşük güçte (kırmızı) yanıp sönüyor

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz