Skip to content

Latest commit

 

History

History
36 lines (30 loc) · 2.39 KB

README.md

File metadata and controls

36 lines (30 loc) · 2.39 KB

Naarad

A simple house monitor and control system.

The Naarad system is a network of remote Nodes with a radio operating in the ISM band and a Base Station with an RFM69CW (RFM) packet radio, currently connected to an Arduino UNO. The UNO talks to a Linux-based computer (currently a Raspberry PI (RPi)) via the serial connection. The RPi also listens for incoming socket connections. Commands for the Naarad network are either generated at the RPi or arrive at the socket (e.g. from a remotely connected device). Commands meant for the UNO or the remote Nodes are sent to the UNO via the serial connection. The server on the UNO then transmits the commands for the remote Nodes via the RFM or via another radio for remote OOK devices. Similarly, information from remote Nodes is received at the UNO via the RFM and immediately transferred to the RPi for consumption via the serial connection. The block level system diagram looks like this:

SysDiagram

This repository has the code for the three components of the Naarad system:

  • The code running on the MCUs on the remote nodes is in the Nodes directory
  • The code running on the Arduino UNO on the Base Station is in the BaseStation directory
  • The code running on the central socket server (Raspberry Pi) is in the RPi directory

Resources

The communication with the RFM is done using the JeeLib library from JeeLabs.

The communication hardware on the remote Nodes is derived from the TinyTx design. For programming the ATTiny84 using an Arduino, I followed the instructions from here.

This article by Nick Gammon is an excellent resource for techniques to reduce power consumption on MCU. While the code here is for Arduino (Atmega328P), some of the techniques apply to other Atmel processors. A similar article sepecifically for ATTiny84 would be great. This also has a post with very useful information about batteries (including self-drainage rates etc.).