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
Yorum Gönder