Kablosuz Sensör Verisi Aktarımı

 Haberleşme sistemleri projeleri, veri transferi ve iletişim protokollerinin nasıl çalıştığını anlamak için harika bir alandır. Bu projelerle kablosuz iletişimden, veri şifrelemeye kadar birçok konuyu öğrenebilirsin. İşte adım adım bir haberleşme sistemi projesi yapma rehberi:

---

Proje Fikri


Kablosuz bir haberleşme sistemi yapalım: "Kablosuz Sensör Verisi Aktarımı". Bu projede bir sensörün (ör. sıcaklık, nem) verilerini bir mikrodenetleyici ile toplayacak ve kablosuz bir modül üzerinden başka bir mikrodenetleyiciye göndereceğiz.


---

1. Gerekli Malzemeler

Elektronik Malzemeler:

1. Mikrodenetleyici: 2 adet Arduino Uno veya benzeri


2. Kablosuz Haberleşme Modülü:

NRF24L01 (Ucuz ve etkili bir çözüm)

Alternatif: HC-05 (Bluetooth), ESP8266 (Wi-Fi)

3. Sensör: Örneğin, DHT11/DHT22 (Sıcaklık ve Nem Sensörü)

4. Breadboard, jumper kablolar, dirençler

---

2. Haberleşme Modülünün Seçimi

Bu projede NRF24L01 modülünü kullanacağız. Özellikleri:

2.4 GHz bandında çalışır.

Düşük güç tüketimi.

Veri transferi için SPI protokolü kullanır.

Alternatif olarak, daha basit projeler için Bluetooth (HC-05) veya Wi-Fi (ESP8266) tercih edilebilir.


---

3. Devre Şeması

Verici Devresi:

Arduino, NRF24L01 ve sensör birleştirilir.

Sensör, Arduino'nun bir analog veya dijital girişine bağlanır.

NRF24L01'in SPI pinleri:

VCC: 3.3V

GND: GND

CE: Pin 9

CSN: Pin 10

SCK: Pin 13

MOSI: Pin 11

MISO: Pin 12


Alıcı Devresi:

İkinci Arduino'ya bir NRF24L01 bağlanır.

İsteğe bağlı olarak bir LCD ekran (16x2) bağlanarak alınan veriler gösterilebilir.


---

4. Kodu Yaz ve Yükle

Verici Tarafı Kodu:


#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>

#include <DHT.h>


#define DHTPIN 2     // DHT11 sensör pini

#define DHTTYPE DHT11


DHT dht(DHTPIN, DHTTYPE);

RF24 radio(9, 10); // CE ve CSN pinleri


const byte address[6] = "00001"; // Haberleşme adresi


void setup() {

  Serial.begin(9600);

  dht.begin();

  radio.begin();

  radio.openWritingPipe(address);

  radio.setPALevel(RF24_PA_LOW);

}


void loop() {

  float temperature = dht.readTemperature();

  float humidity = dht.readHumidity();


  if (isnan(temperature) || isnan(humidity)) {

    Serial.println("Sensör okunamıyor!");

    return;

  }


  String dataToSend = String(temperature) + "," + String(humidity);

  radio.write(&dataToSend, sizeof(dataToSend)); // Veriyi gönder

  delay(1000); // 1 saniyede bir gönder

}


Alıcı Tarafı Kodu:


#include <SPI.h>

#include <nRF24L01.h>

#include <RF24.h>


RF24 radio(9, 10); // CE ve CSN pinleri

const byte address[6] = "00001"; // Haberleşme adresi


void setup() {

  Serial.begin(9600);

  radio.begin();

  radio.openReadingPipe(0, address);

  radio.setPALevel(RF24_PA_LOW);

  radio.startListening();

}


void loop() {

  if (radio.available()) {

    char receivedData[32] = "";

    radio.read(&receivedData, sizeof(receivedData)); // Gelen veriyi oku

    Serial.print("Gelen Veri: ");

    Serial.println(receivedData);

  }

}



---


5. Çalışma Prensibi

1. Verici: DHT11 sensöründen sıcaklık ve nem değerlerini alır ve bunları NRF24L01 ile kablosuz olarak gönderir.


2. Alıcı: NRF24L01 üzerinden veriyi alır ve seri portta veya LCD ekranda gösterir.


---

6. Test Et ve Sorun Gider

Bağlantılar: Her iki devredeki pin bağlantılarını kontrol et.

Veri Alımı: Eğer alıcı veri alamıyorsa:

Modüllerin haberleşme adreslerinin aynı olduğundan emin ol.

Veri hızını düşürmek için radio.setDataRate(RF24_250KBPS) komutunu ekle.


Güç Problemi: NRF24L01 düzgün çalışmıyorsa, bir kondansatör (ör. 10uF) kullanarak gücü stabilize et.


---

7. Projeyi Geliştir

1. Çoklu Sensör: Aynı alıcıya birden fazla vericiden veri gönder.


2. Daha Fazla Modül: Wi-Fi kullanarak veriyi bir web sayfasına aktar.


3. Şifreleme: Veriyi güvenli hale getirmek için AES şifreleme ekle.


4. Genişletilmiş Mesafe: Güçlendirici antenli NRF24L01 modülü kullan.


---


Yorumlar

Popüler Yayınlar