433Utils 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.
Despite the name, 433Utils also works with 315MHz transmit and receive modules (tested).
- An Arduino (two is ideal)
- A Raspberry Pi
- The git commandline tool, on both your Arduino IDE machine and your RPi
- RF 433MHz modules; a transmitter and receiver
- A Ninja Block and account
Place the Sketches in your normal Arduino Sketches location. Install any required libraries:
- Servo motor library (Should be included in the Arduino IDE)
- Arduino rc_switch library
From your RPi, clone this archive:
-
git clone --recursive git://github.com/ninjablocks/433Utils.git
(recursive ensure that the rc-switch submodule gets populated which is needed by RPi_utils) -
cd 433Utils/RPi_utils
-
(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.
sudo ./send systemCode unitCode command
This command is unaltered from the original rc_switch distribution.
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
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.