/433Utils

433Kit is a collection of code and documentation designed to assist you in the connection and usage of RF 433MHz transmit and receive modules to/with your Arduino and Rapberry Pi.

Primary LanguageC++

About 433Utils

433Kit is a collection of code and documentation designed to assist you in the connection and usage of RF 433MHz transmit and receive modules to/with your Arduino and Rapberry Pi.

It consists of two main sections- Arduino sketches and Raspberry Pi command line utilities. You'll find those in appropriately named folders.

Requirements

  1. An Arduino (two is ideal)
  2. A Raspberry Pi
  3. The git commandline tool, on both your Arduino IDE machine and your RPi
  4. RF 433MHz modules; a transmitter and receiver
  5. A Ninja Block and account

Installation

Arduino_Sketches

Place the Sketches in your normal Arduino Sketches location. Install any required libraries:

  1. Servo motor library (Should be included in the Arduino IDE)
  2. Arduino rc_switch library

RPi_utils

From your RPi, clone this archive:

  1. git clone git://github.com/justy/433Utils.git

  2. cd i433Kit/RPi_utils

  3. (As per the original rc_switch distribution) Follow the instructions to install the wiringpi library. After that you can compile the example programs by executing make.

Usage

send

sudo ./send systemCode unitCode command

This command is unaltered from the original rc_switch distribution.

codesend

sudo ./codesend decimalcode

This command uses a single Ninja Blocks compatible decimal code. Sniff out codes using the RF_Sniffer.ino Arduino sketch, included in this distribution.

You can use codesend to control the wireless servo on your Arduino. (The sketch is Servo_Receive_Demo.ino)

I've implemented the most bare-bones of controls here. Try:

sudo ./codesend 500000 # to move the servo up

sudo ./codesend 500001 # to move the servo down

sudo ./codesend 500002 # to move the servo left

sudo ./codesend 500003 # to move the servo right

sudo ./codesend 500004 # to move the servo home

Issues

Due to limitiations in the implementation of interrupt-driven routines in the underlying RCSwitch library, it is currently not possible to use both the send and receive functionality within the one program.