Bu uygulamamızda HM-TRLR-S RF modülü ile Arduino uygulaması gerçekleştireceğiz. HM-TRLR-S RF modülü HM-TRLR-DW ile aynı alt yapıda olup, HM-TRLR-DW’nin SMD versiyonudur. Kablosuz veri iletimi alanında yaygın olarak kullanılabilen kablosuz veri iletimi ürünlerini tasarlamak için ideal bir seçimdir. RFM96W ile aynı RF çipi kullanan modül kullanım kolaylığı sağlamaktadır. Seri data ile haberleşme (uart,rs232,ttl) ile 5 KM ve üzerinde mesafelere çıkmak mümkündür. Şehir içinde 1 KM, açık alanda 6 KM menzilde testleri yapılmıştır. HM-TRLR-SW serisi 433/470/868/915MHz’de çalışan düşük maliyetli, yüksek performanslı, RF modüldür. LoRa/FSK/GFSK/OOK modülasyon çeşitleri ile kullanılır. Küçük boyut, yüksek çıkış gücü, yüksek hassasiyet, uzun iletim mesafesi gibi özelliklere sahiptir ve parametrelerin çoğu komut aracılığıyla ayarlanabilir. Otomatik olarak seçim yaparak veri alın ve gönderin. Genel UART arayüzü kullanılır. Kablosuz veri iletimini yalnızca UART verisi sağlayarak gerçekleştirmek kolaydır. 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. 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 Kontrol, Uzaktan Ölçüm
  • Geçiş Kontrol Sistemleri
  • Veri Toplama Sistemleri
  • Akıllı ev teknolojileri
  • Tanımlama sistemleri
  • Bebek Telsizi Sistemleri

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

  • VCC: Güç kaynağı, 2.4-3.6 DC, önerilen 3.3VDC
  • TXD: TTL Data transmission
  • GND: Ground
  • RXD: TTL Data receiving
  • CONFIG: Konfigürasyon modu için Lojik 0 (Low), İletişim modu için Lojik 1 (High) ayarlanmalıdır.
  • SLEEP: Veri aktarımı için lojik 0 (Low), uyku modu için lojik 1 (High) olarak ayarlanmalıdır.
  • STATUS: Bağlı değilken (Lojik 1, output 3.3V )
  • RESET: Reset tetikleme girişi, lojik 0 (Low) aktif
  • ANT: 50 ohm anten ile Giriş/Çıkış arayüzü
  • GND: Ground

Kullanılan Malzemeler:

Verici Bağlantı Şeması:

Verici Arduino Kodu:

#include <HRFMessage.h>
HRFMessage server(&Serial1);
#define buton 2
void setup()
{
pinMode(buton, INPUT);
Serial.begin(9600);
Serial1.begin(9600);
}
void loop()
{
uint8_t buf[HRF_MAX_MESSAGE_LEN];
uint8_t len = sizeof(buf);
int buton1 = digitalRead(buton);
if (buton1 == 1)
{
if (server.recv((uint8_t*)&buf, &len))
{
server.send((uint8_t*)"Led Yak\n", 9);
Serial.print("Alinan: ");
Serial.println((const char*)buf);
}
}
if (buton1 == 0)
{
if (server.recv((uint8_t*)&buf, &len))
{
server.send((uint8_t*)"Led Sondur\n", 12);
Serial.print("Alinan: ");
Serial.println((const char*)buf);
}
}
delay(10);
}

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

Alıcı Arduino Kodu:

#include <HRFMessage.h>
#define led 2
HRFMessage client(&Serial1);
long lastSendTime = 0;
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(9600);
Serial1.begin(9600);
}
void loop()
{
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);
}
if(len==12)
{
Serial.print("Alinan: ");
Serial.println((const char*)buf);
client.send((uint8_t*)"Led Sondu\n", 11);
digitalWrite(led,LOW);
}
}
}

1 Yorum

CEVAP VER

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