Picture of Wireless indoor & outdoor thermometer
I would like to introduce you to one of my interesting projects. It is a wireless thermometer that measures the indoor and outdoor temperature. The device consists of two parts. One is a transmitter that contains one digital temperature sensor and a transmitter module. A second receiver consisting of an LCD screen, the analog sensor and receiving module.

Step 1: Parts

Picture of Parts
You need:

1. Two arduinos any version
2. DS18B20 digital temperature sensor
3. LM35 analog temperature sebsor
4. LCD 16x2
5: RF 433MHz or 315 MHz module
1-40 of 41Next »
sami20002 months ago

can u please tell me any way i can add a gas sensor and a humidity sensor too

MisloElectronics (author)  sami20002 months ago

if you use dht 11 or dht 22 i have code for you :)

I'd be interested in this code
Y987ousef4 months ago

The code is not working

Y987ousef4 months ago

Can You Please Help me out HERE!

Y987ousef4 months ago


No answer ?

Y987ousef4 months ago

This are the pics of my circuit, I follow your steps, but it is not clear how you wired the LCD to the circuit.

Also, there is a confuse in the transmitter circuit, because you used two temp sensor (LM335az) on both TX and RX circuit. Can you please check my connection and tell me if I am right or not .

Show me how I connect the temp sensor and the LCD please !

Y987ousef4 months ago
Y987ousef4 months ago

what is the parts on the receiver circuit that connected by the yellow wire ?

Also, How you said that you use two aurdino.

I see one on the transmitter and the nano ordain on the receiver ?

I am right or not


MisloElectronics (author)  Y987ousef4 months ago

part of which is connected to the yellow wire is 10K ohm potentiometer for contrast LCD.if one arduino on the receiver and if the one on the transmitter then it is a total of two

Y987ousef5 months ago

Good job I need your help please on this project

dunk88886 months ago

this is transmitter code error

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Nano w/ ATmega328"
In file included from transmitter_temp.ino:3:
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:54: error: variable or field 'vw_set_tx_pin' declared void
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:54: error: 'uint8_t' was not declared in this scope
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:58: error: variable or field 'vw_set_rx_pin' declared void
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:58: error: 'uint8_t' was not declared in this scope
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:62: error: variable or field 'vw_set_ptt_pin' declared void
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:62: error: 'uint8_t' was not declared in this scope
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:66: error: variable or field 'vw_set_ptt_inverted' declared void
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:66: error: 'uint8_t' was not declared in this scope
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:71: error: variable or field 'vw_setup' declared void
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:71: error: 'uint16_t' was not declared in this scope
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:90: error: 'uint8_t' does not name a type
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:96: error: 'uint8_t' does not name a type
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:99: error: 'uint8_t' does not name a type
C:\Users\Dunk\Documents\Arduino\libraries\VirtualWire/VirtualWire.h:104: error: 'uint8_t' does not name a type
transmitter_temp.ino: In function 'void setup()':
transmitter_temp:24: error: 'vw_setup' was not declared in this scope
transmitter_temp:26: error: 'vw_set_tx_pin' was not declared in this scope
transmitter_temp.ino: In function 'void loop()':
transmitter_temp:38: error: 'vw_send' was not declared in this scope

dunk88886 months ago

code not work,witch ide do i use,this is errors.

receiver code

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Nano w/ ATmega328"
receiver_temp:3: error: 'Here' does not name a type
receiver_temp:14: error: 'LiquidCrystal' does not name a type
receiver_temp.ino: In function 'void setup()':
receiver_temp:21: error: 'lcd' was not declared in this scope
receiver_temp.ino: In function 'void loop()':
receiver_temp:30: error: 'lcd' was not declared in this scope

dunk88886 months ago

hi ive coppy librarys etc and ime getting errors,what version of ide do i use ive tryed them all.thanks

MisloElectronics (author) 6 months ago

add DS1302 RTC and LCD 20x4 + serial adapter

GarethL7 months ago

Hi, could you please post the code to use the DS18B20 for the receiver indoor temp instead of the lm35.

Many thanks

GarethL GarethL7 months ago

Not to worry, I have figured it out :)

can you post this code here please?

MisloElectronics (author)  amaretić16 months ago

ante nije fora trebao si sam malo promozgati u tome i je stvar mogao sam ja odma ovako napraviti.to je bilo namjerno hehe :)

//Credit to - www.facebook.com/njizi.dvizi

//added DS18b20

#include <LiquidCrystal.h>

#include <VirtualWire.h>

#include <OneWire.h>

#include <DallasTemperature.h>

#define ONE_WIRE_BUS 7

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

int i;

LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

void setup(){



lcd.begin(16, 2);





void loop(){

lcd.setCursor(0, 1);

lcd.print("Indoor: ");



lcd.setCursor(14, 1);



uint8_t buf[VW_MAX_MESSAGE_LEN];

uint8_t buflen = VW_MAX_MESSAGE_LEN;

if( vw_get_message(buf, &buflen) )


lcd.setCursor(0, 0);


for (i = 0; i < buflen; i++)




lcd.setCursor(14, 0);





MisloElectronics (author)  GarethL6 months ago

hehe :)

GarethL7 months ago

I'm not sure if its 100% correct but seems to be working

thank you very much

nodoubtman11 months ago

What's the range of these RF devices??

in meters?



It's around 90 meters
bsallade10 months ago

I was wondering if it would be possible to use an adrino to receive the data from my Accurite pro weather center and convert that to video and tables so that it shows up on my pc. I would have to use a ethernet connection of course but it seems like it is do-able. The Accurite operates wireless on 433 Mhz

BruceC1 made it!11 months ago

Great Instructable. I made this in a few hours using these instructions and everything worked great. This was my first real RF project. I substituted DHT11 sensors so I could get humidity (and I already had them). Thanks!!

BTW singhdeolji, if you are trying to convert a float to a string so you can send it as text, try the following.

float t = (your temperature value)

String temp = String((int)t);


yup that worked, but i lost the decimal which considering float is 4 byte, and int is 2byte. There will be lost of data.
I am using multiple ds18b20's wireless so i want to know which one the data is coming from. So i was thinking, if i can convert the float to string then i can concatenation a key like string s = "room1" + "floatvalue". and on the reciever side i can simple de-concatenate the string and kw the temp data is coming from room1.
Any simpler way of doing this?

singhdeolji11 months ago

in the transmitter code, could you please explain this line
dtostrf(temperature, 6, 2, msg);
I am trying to convert float to const char * what ever that is , as you can cast uint8_t * to const char *, OR
how do go about turning that float to uint8_t *

nodoubtman1 year ago

Hi! I only have the Indoor temperature on the display, i connected the sensor and the wireless

have an idea?



MisloElectronics (author)  nodoubtman1 year ago
Please check if you're copy virtualwire library in arduino library folder ;-)
yes i did.
But i cannot see outdoor temperature only : Outdoor ----

thank you!
LiaAzman1 year ago

hi.. this is great project..by the way, currently doing my final year project on wireless digital body thermometer with long continuous. do you have any idea about it?

MisloElectronics (author)  LiaAzman1 year ago
Please explain me in detail about your project.if you want replace this digital sensor DS18B20 with same waterproof model.

Hi and thanks for your useful project.

I have a temperature control project that needs to have an accuracy of 0.05 degrees and I need a sensor for it, Please guide me.

Best Regards.

MisloElectronics (author)  RahmanRahman1 year ago

I would definitely use a digital sensor DS18B20 because he is factory calibrated

acheide1 year ago

Thanks for the info, especially the information on inter-Arduino wireless.

sameerg1 year ago

Very nice instructable.

MisloElectronics (author)  sameerg1 year ago


sgsax1 year ago

Very cool little project. Looks like a perfect one for me to play with the new bunch of Arduinos I just got. Just curious why you picked a digital temp sensor for one module and analog for the other. It looks like you still had digital pins available. Was that just what you had or was there another design consideration I missed? Thanks.

1-40 of 41Next »