Introduction: Wireless Nixie Thermometer

The Target of this Project was to learn how to use different functions of the atmega:

• Connecting two Atmegas with a wireless connection
• Each Atmega has a Thermometer (DS1621) to read the actual temperature
• Use the sleep Mode of an Atmega
• Controlling a Nixie bargraph In-13

And this all together is a nice looking self-made Thermometer. :)

There are simular Thermometers availible e.g. the thermNeon from SaltTechChips: but this is only for one Temperature and I like to show the inside and outside temperature.

Step 1: The RFM12b

RFM12B is a low costing ISM band transceiver module. It works signal ranges from 433/868/915MHZ bands.

The SPI interface is used to communicate with microcontroller for parameter setting.

Important features of the Module:

• Automatic antenna tuning

• Low costing, high performance and price ratio

• 2.2V – 3.8V power supply

• Standby current less than 0.3uA

• 16 bit RX Data FIFO

• You can sent/receive with the same module

• It cost 4-5€ each module

At Pollin you can also download programming examples!

There are a lot of examples, how to use this module:


Step 2: Nixie IN-13

A Nixie tube, or cold cathode display, is an electronic device for displaying numerals or other information using glow discharge.

The IN-13 Nixie Tube is a bargraph.

• Voltage: 150V
• Length: ca 120mm

Here you can find a very good test about the Nixie Tube:

Step 3: DS1621 Thermometer

The DS1621 Digital Thermometer and Thermostat provides 9-bit temperature readings, which indicate the temperature of the device.

Temperature settings and temperature readings are all communicated to/from the DS1621 over a simple 2-wire serial interface.

Step 4: The Scale

The scale is made by the company schaeffer: https://www.schaeffer-ag.de9/produkte/frontplatten/...

There you can dowload a programm to create your own CAD-Drawings.

Very cool is that you can after drawing generate the cost of the product.

One Scale costs about 50€.

> It is not very cheap but at the end it is a very good product.

At my scale I insertet at one side the Celsius and at the other Fahrenheit. At the top you can read if it is the internal or the outside temperature.

Step 5: Creating the Circuit Diagram

1. Connection the parts:

I used a Atmega8535, there i connectet the temperature-Senosr (DS1621) with the I2C interface. > So you only need two wires for communication!

At the Atmega is also the RFM-Transmitter connected. Because the Atmega runs with 5V and the RFM12b with 3V i made a level-switch with resistors. If you are interestet how the RFM-Transimtter is connected to the microcontroller you can take a look into the Programming code. There you find detailed informations.

The nixie tube is controlled with the PWM of the Microcontroller. But because the Nixie is used at 150V and the microcontroller used 5V we need a transistor to increase the Voltage of the Microcontroller. At the Pic you can see the Transistor-Ciruit. I used a MJE340 transistor.

From the outside thermometer I haven't made a wiring diagram but it is very easy and you can see it at the pics of the platine.

Step 6: Creating Platine

I etch my platines by myself with the Toner-Methode

Here are the steps:

1. Print the Layout you like to etch
2. Fix your Printing at your Platine
3. Use a electric iron and go over the printing. The Toner will now burned into the copper
4. Wash unter water the paper from the platine
5. Check the toner that it is all at the platine
6. Etch the Platine. I use Natriumpersulphat for etching.
7. Drill holes at every soldering-Point.

At Instrucables are already some very good tutorials:

Step 7: Bring It All Together

At this step I solderd all parts into the platine and made some function-Tests.

Here I hat do adjust the bargaphs that they show the correct values.

After that the programing part started.

Step 8: Program

The Main function of the Atmega1 (Temperature-Station):

Initialize (only one time):

1. Initialize Microcontroller (Inputs/Outpus/PWM)
2.Initialize RFM
3.Initialize I2C

Main Loop (infinity repeadet):

1. Reading Temp of Internal temperature
2. If RFM received something read temperature from outside
3. Set the PWM-Values depending at the received values

The Main function of the Atmega2 (Temp from Outside):

Initialize (only one time):

1. Initialize Microcontroller (sleep Mode/Inputs/Outpus)
2. Initialize RFM
3. Initialize I2C

Main Loop (infinity repeadet):

1. Read Temp from DS1621
2. Sending Temp to Atmega 1
3. Sleep Microcontroller
4. Wake up after ca. 25s

The programing language is C.

The I2C communication to the DS1621 is made with the library i2cmaster.h from Peter Fleury. With this library it is easy to communicate over the Two-Wire-Interface.

The Library of the RFM is at the attachement with all other parts of the AVR-Project.

Step 9: Finishing

At the end I put everythin into a wood-case.
After some tests I recognize that the temperature of DS1621 was influenced by the heat of the nixies. My solution was to bring the sensor to the outside and make a heatsink at the top of it.

Soldering Challenge

Participated in the
Soldering Challenge

Fandom Contest

Participated in the
Fandom Contest