Coder Social home page Coder Social logo

tinytx's Introduction

#TinyTX - An ATtiny84 and RFM12B wireless sensor node

By Nathan Chantrell. For hardware design see http://nathan.chantrell.net/tinytx

Licenced under the Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) licence: http://creativecommons.org/licenses/by-sa/3.0/

Code for TinyTX nodes

##TinyTX_DS18B20 With DS18B20 temperature sensor.

##TinyTX_DHT22 With DHT22 temperature & humidity sensor.

##TinyTX_TMP36 With TMP36 Analogue Temperature Sensor.

##TinyTX_LDR_Meter
With LDR to read LED pulses on electricity meter.

##TinyTX_LDR With LDR to read light levels.

##TinyTX_ReedSwitch Detect a normally closed reed switch opening and closing with pin change interrupt to wake from sleep.

##TinyTX_Hall_Effect_Gas Using an A3214EUA-T or A3213EUA-T Hall Effect Sensor to read the pulse magnet on a gas meter.

##TinyTX_Rain_Gauge Using a tipping bucket rain gauge with a reed switch to indicate each tip. A pin change interrupt is used to wake the TinyTX

##TinyTX_Water A leak/flood sensor using the TinyTX, a 100K resistor and two wire probes. See below for a receiver.

##TinyTX_SRF_DS18B20 Version using the Ciseco SRF radio (http://shop.ciseco.co.uk/srf-wireless-rf-radio-surface-mount/) instead of the RFM12B Uses the SoftEasyTransfer library to send checksummed typedef structs (https://github.com/madsci1016/Arduino-EasyTransfer/) This is transmit only for now as receive requires a hardware modification to the TinyTX.

##TinyTX_OOK_DS18B20 Version using a cheap OOK/ASK radio and Manchester encoding. This is transmit only as these cheap radios are only transmitters.

Code for receiving end

##OSWIN ATMega1284P Emoncms gateway code For the code I am currently using on my gateway node see the separate repository here: https://github.com/nathanchantrell/oswin This support the RFM12B, SRF and OOK nodes. More info on OSWIN here: http://nathan.chantrell.net/oswin/

##TinyTX_RX_Simple A simple receive example for RFM12B nodes, outputing received data on the serial monitor.

##TinyTX_NanodeRF_emoncms For the Nanode RF (http://www.nanode.eu/) to upload multiple RFM12B nodes to emoncms

##TinyTX_NanodeRF_Cosm Nanode RF example to upload data from a single RFM12B TinyTX to http://cosm.com

##TinyTX_MAX1284_emoncms For the MAX1284 internet gateway (http://max1284.homelabs.org.uk/) to upload multiple RFM12B nodes to emoncms

##TinyTX_Water_RX Receiver example for the leak/flood sensor above, can be run on a Tiny TX and brings D9 high on a water alarm and D10 high on a low battery alarm. Could be used to trigger an external device, sound a buzzer etc. Same code could also be used on a Nanode/WiNode etc.

##TinyTX_SRF_RX_Simple Simple receive example for the SRF version.

##TinyTX_OOK_RX_Simple Simple receive example for the OOK version.

tinytx's People

Contributors

kylegordon avatar nathanchantrell avatar tleegaard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tinytx's Issues

Writing on attiny84 dht22.ino

Hello there!

I have downloaded all requirements from TinyTX tutorial page and I can write bootloader with no problems.
When I try to write dht22.ino I get an error:

'Sleepy' has not been declared.

I've tried to copy the includes (DHT22.h and JeeLib.h) in the sketch folder but the error remains the same.

What am I doing wrong?

Recommendation to decrease power consumption.

Set the reed pin from falling to rising
Set pin as input.
Connect the reed to vcc instead of ground and put a 1M resistor between pin and ground.
In your case I see a 100uA consumption on close state. In my case the consumption is dropping around 4uA.

verify met error message

Hi Nathan Chantrell,
First of all thank you for sharing your experience
I made reference to TinyTX_nRF24L01_DS18B20.ino, and want to try to replicate the same situation
But I encountered at compile time error
I have tried to install the following library is still the same
DallasTemperature
mirf85
Narcoleptic
OneWire
RF24
SPI85
maybe I have missed what place?
Could you please help me? Thank you

digitalWrite(ONE_WIRE_GND, LOW); // set GND pin low <-------Verify error messages stay in this line

IF ended too early

Hi Nathan,

I'm still new with github and not sure how to pull to your repo - but I have found a minor error in your/my code (TinyTX_LDR_Meter.ino), which produces an error if less than 1000 (in this case) millis since last blink.

...
    } else if (interval > 1000) { // 1+ sec passed
        // Blinks are 1000 per kWh, or 1 Wh each
        // One hour has 3.6M milliseconds
        watts = nBlinks * 1 * 3.6E6 / interval;

        last = time;
        nBlinks = 0;
    }

  tinytx.power = watts; // Get realtime power

  tinytx.supplyV = readVcc(); // Get supply voltage

  rfwrite(); // Send data via RF    

    }

}

Needs to be changed to:

...
    } else if (interval > 1000) { // 1+ sec passed
        // Blinks are 1000 per kWh, or 1 Wh each
        // One hour has 3.6M milliseconds
        watts = nBlinks * 1 * 3.6E6 / interval;

        last = time;
        nBlinks = 0;

  tinytx.power = watts; // Get realtime power

  tinytx.supplyV = readVcc(); // Get supply voltage

  rfwrite(); // Send data via RF    

      }

    }

}

Kind regards,
Troels

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.