Skip to content

ke4roh/RPiNWR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Raspberry Pi Weather Radio

This library adapts the Raspberry Pi SAME decoder board to user-level functionality so that you can focus on your application. It has error handling! It has unit tests! It has events! Callbacks!

See the Presentation slides.

Build status

build status Coverage Status

Features

  • Receive, prioritize, and act on SAME alerts
  • Extensive error correction for poorly-received messages
  • Quick (<.5 sec) response to received messages
  • Multi-threaded event model

Make one!

Here's what you need to do to turn this repository into something that works for you.

Parts list

You need a few parts:

Installation steps

  1. Install Raspbian on the SD card.
  2. Put all the parts together. They only fit one way.
  3. Hook it up to a TV and set up WiFi if you wish. Get it so you can SSH in.
  4. Optionally set up Dataplicity so you can log in from anywhere
  5. Log in as pi and clone this repo.
  6. Set up dependencies:
sudo apt-get update
sudo apt-get install git python-dev python-smbus i2c-tools python-rpi.gpio python3-rpi.gpio libxml2-dev libxslt1-dev python-shapely
# Follow instructions to install i2c kernel support:
#   https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c
git clone https://github.com/nioinnovation/Adafruit_Python_GPIO.git
(cd Adafruit_Python_GPIO; sudo python3 setup.py install)
# now CD to where you cloned this project
sudo ./setup.py test
  1. Running the radio is simple:
python3 -m RPiNWR.demo --transmitter WXL58

You can specify the transmitter or not, but if you do and the transmitter is listed in nwr_data.py, error correction is more robust.

See demo.py and its tests for information about command line options.

At the moment, this radio implementation lets you subscribe to events and observe status of the radio over time. Further development will add functionality and bring the demo code up to a more practical implementation.

Where is the internet message stuff and tornado-only alerting?

It's on the dev branch. It's fresh, really fresh. So you're encouraged to help with development and testing or just to try it out, but the examples there aren't fully baked yet or else they'd be on the master branch! As of October 24, 2016, It's pretty close, so stay tuned.

Helping

Check out the issues in WaffleIO: Stories in Ready

Please submit your log files as issues! Messages and RSSI reports are especially useful at the moment.

Also, see the next section...

Developing

Have a look at # TODO items in the code and the issues to see what needs to be done. Pull requests and issues are most welcome!

Adding an Si4707 in a new environment (not RPi, or not the AIWI board) is straightforward. Just create a new context that provides the same functionality as AIWIBoardContext.py for your environment. Name that context when you start the radio, and you're up and running. Please consider contributing your context via a pull request.

License

GNU GPL v. 3 - see the LICENSE file for details

About

Raspberry Pi NOAA Weather Radio (NWR)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages