Kablosuz Ev Otomasyonu Cihazları ve nRF24L01

WIRELESS HOME AUTOMATION MODULE

Şurada birkaç cevap var.

XBEE

XBEE’lerin kullanımı birkaç kitapta ve Sparkfun’daki şu linkte detaylıca bahsedilmiş. Ayrıca Openhomeautomation’daki şu yazıda da var. Robotistan ve F1Depo’daki fiyatları şöyle.

Seri1 olarak tavsiye edilen şu cihazdı. Örnek Relay’li kod olarak forum.arduino.cc’de bulmuştum. Bir de ayrı  nrf24l01 – Xbee’li bir röle var piyasada.

CC3000 WiFi chip

https://learn.adafruit.com/wireless-power-switch-with-arduino-and-the-cc3000-wifi-chip/introduction

nrf905se

Bu da birkaç yer tarafından tavsiye edildi ama hiç girişmedim.

http://www.yesilkoyelektronik.com/arduino-karakoy/2012-wireless-modul-nrf905se.html?search_query=433mhz&results=4

http://www.robotistan.com/arama?B=Arama&Kid=T%C3%9CM+KATEGOR%C4%B0LERDE&q=nrf905&St=1

nRF24L01

En çok tavsiye edilen kablosuz modül bu. 2006 civarında piyasaya çıkmış. Şurada basit bir tutorial’ı var. Ayrıca Playground.Arduino.CC’de bahsedilmiş. Fiyatları harika ucuz. Sayfasında detaylıca bahsedeceğim. Yesilköy elektronik ve Robotistan’da da var.

esp8266

https://learn.adafruit.com/home-automation-in-the-cloud-with-the-esp8266-and-adafruit-io/hardware-and-software-requirements

Diğer:

http://www.sahibinden.com/teknik-elektronik?query_text=arduino+433mhz

nRF24L01 & RF24 Library

http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01

Bağlantısı çoğu yerde yanlış. Sağlıklı bağlantı değil. Kapasitör ihtiyacı olması oldukça baydı.

Leyimlemek zorunda kaldım…

Getting Started with nRF24L01+ on Arduino

nRF24 walk through – Building the sensors

A few issues:

EEPROM nRF24L01 node

nRF24L01 & pipes

nRF24L01 Genel Plan:

  1. Adres ve node tanımlama ve Eeprom’a kaydetme
    1. Adres tanımlama
    2. Adres öğrenme
  2. Pipe tanımlama
    1. Transmitter
      1. Write Data to Receiver (Reading pipe for receiver)
        1. radio.openWritingPipe(ADDR_FAMILY);
      2. Read Data from Receiver
        1. radio.openReadingPipe(1, ADDR_FAMILY + nodeId);
        2. radio.stopListening();
  3. Receiver ve Transmitter tanımlama stopListening , startListening ve arası iletişim

one common pipe address (autoacknowledge-disabled)
could be used for all nodes, one sending, all other listening.
It is also possible to disable the autoacknowledge for a single send, or even global

http://forum.arduino.cc/index.php?topic=261258.0

nRF24L01 ve Pipe’lar (hatlar) Hakkında Bilinmesi Gerekenler:

  1. Sensörlere, nodelara, alıcılara yazmak için tek bir yazma pipe’ı var. Ama bu pipe’ın değerini konuşmak istediğimiz adresin değerine değiştirebiliriz
  2. Okumak için 6 okuma pipe’ı var. 40bit Adresler (ie. 0xFACEC0DE00) ile sadece 2 okuma pipe'ı (0 ve 1) ilgileniyor. 0 otomatikman yazılan adres (ve bu adresten kabul almak için kullanılıyor. Bu demekki 1'den 5'e kadar olan Pipe'lar aynı upper 32bit'i paylaşıyor ama okuma pipe'larının adreslerini değiştirebiliyoruz. 
  3. 0x0000000000, 0xFFFFFFFFFF gibi adresler dışında hepsi ok.
  4. ack packet payload ile hub’dan receiver’lara veri gönderebiliyoruz.
  5. Okuma PIPE’ları sizin konuştuğunuz adrese göre değil. Dinlemek istediğiniz adrese göre. Posta kutunuz ya da kutularınız gibi….

Become the primary transmitter (ping out)

Node: 0xfacec0de00

Adresler: 0xfacec0de01  – 0xfacec0de02 – 0xfacec0de03 – 0xfacec0de04

Sensor: https://raw.githubusercontent.com/rlogiacco/nRF24-Walk-Through/master/sensor/sensor.ino

Hub: https://raw.githubusercontent.com/rlogiacco/nRF24-Walk-Through/master/hub/arduino/hub.ino

role = role_ping_out;

PUSH BUTTON

Send attempt from node C was successful
Hub response packet received with value 1
Got response from hub: total click count is 1

Send attempt from node C was successful

DEBUG(“Send attempt from node %c was %s”, nodeId + 64, write ? “successful” : “UNSUCCESSFUL”);
Hub response packet received with value 4

DEBUG(“Hub response packet received with value %u”, clickcount);
Got response from hub: total click count is 8

DEBUG(“Got response from hub: total click count is %u”, clickcount);

ADIM ADIM

1. SENSOR KODU ARDUINO’YA YÜKLE.

Sensor = Sender = Transceiver

2. Serial Monitor ü Aç ve Adres Kurulumunu Yap

“Invalid node id 255 found: use S## with a value between 1 and 26 to configure the board ”

mesajını görmen lazım. Gördükten 1. Sensör için S01 yazacağız. 2. Sensör için S02 yazacağız vesaire.

3.  Hub kodunu Hub arduino’ya yükle. Hub = Receiver

4. Gerekli Düğme ve Led Bağlantılarını yap.

Sensor node olacak arduino’larda D3’e düğme bağlıyoruz.

Hub olacak Arduino’da D7’ye LED bağlıyoruz.

Arduino’ları açtığımızda Sensör Arduino’larda düğmeye her bastığımızda Hub’daki ışığın yanması ve Serial Monitor’da

Sending of counter 1 to node B was successful
Got event from node B, click count is 1

Sending of counter 6 to node E was successful
Got event from node E, click count is 6

Received 8 clicks in the past 30 second(s)
* 8 click(s) from node E

mesajlarını görmemiz lazım. Kurulum başarı ile sonuçlandı.

5. Sensor Arduino’lardan HUB’a veri yollanması:

int theMessagetosend = 111

radio.openWritingPipe(ADDR_FAMILY + i); // Sets the destination address for transmitted packets to the hub address
radio.stopListening(); // Put transceiver in transmit mode
bool write = radio.write(&theMessagetosend, 2); // Transmit this node id to the hub

0 Comments Add yours

Leave a Reply

Your email address will not be published.