EmonTX Low Power Temperature Node
This guide details how to build a wireless low power temperature sensing node using the emontx printed circuit board and only the required components for temperature sensing rather than all the components for full emontx operation to keep things simple and low cost.
Important modification for low power operation
The important thing to note about this build is that to achieve low power operation what is usually the 5V rail on the emontx is connected to digital output 7 on the atmega making the rail switchable. The DS18B20 one wire temperature sensor gets its power from what is usually the 5V rail and so with this modification its possible to switch the DS18B20 off when not in use, saving power and extending battery life considerably. The assembly steps needed to do this are highlighted in the build guide below with bigger pictures.
Bill of materials
The EmonTX Low Power Temperature Node can be bought from the openenergymonitor shop as a kit of parts here
The following components should be in the kit, or if your sourcing your own components these are the components you will need:
|Number of||Part description|
|1x||Atmel ATMega328 - the main microcontroller|
|1x||28 pin DIL Socket|
|1x||16Mhz Crystal - for the ATMega328.|
|2x||22pF Ceramic Capacitors|
|3x||100nF (0.1uF) Ceramic Capacitors|
|1x||10uF Electrolytic Capacitors|
|1x||6pin Header (FTDI port)|
|1x||10k resistor (Brown, Black, Orange, Gold)|
|1x||4.7k resistor (yellow, violet, red, gold)|
|1x||DS18B20 one-wire temperature sensor|
|1x||RFM12b (433Mhz, 868Mhz)|
|1x||165mm (433Mhz) or 82mm (868Mhz) Wire for RFM12B Antenna|
|1x||Double AA Battery holder|
6) Important step - FTDI Header with 2 pins removed
When soldering in the 6-pin FTDI header, remove the 2nd and 3rd pins from the right. Pin 2 has nothing connected and Pin 3 is the 5V Supply from the FTDI Adapter which we dont want to connect to the board as the 5V part of the circuit is being powered and switched by digital pin 7 at the battery voltage 3.3V.
7) Important step -DIO7 to PWR wire link
Solder in a wire jumper between the PWR and DIO7 pad on port 4 to route power to the temperature sensor in a switchable fashion as detailed at the start.
|8) Solder in the 10uF capacitor||9) Solder on the RFM12b wireless transceiver and aerial.||10) Connect up the Double AA Battery holder.|
The complete unit, you might want to use a couple of rubber bands to hold the battery pack on to the bottom of the board:
The firmware example for this build can be found in the emonTxFirmware repository on github here:
The example is located in the folder emontx_temperature_examples > emontx_lowpower_temperature > emontx_lowpower_temperature.ino
Make sure you have the UNO Bootloader selected in the arduino IDE before uploading. You may also need to set the frequency of the RFM12 wireless transciever, node id and group id to your hardware and system configuration.
Once you have uploaded the firmware the unit should now be transmitting the temperature value and can be recieved by any of the base station options that are available, these can then forward the data to the web for graphing. The firmware is not configured to print the temperature value to serial so as to save power but if you need it to print just add a line such as: Serial.println(emontx.temp); to the sketch just after line 103. You may also need to add a delay to give it a chance to send the data to the serial before the units goes back to sleep.