Introduction
In this article, I will show you how to build a device that measures temperature and relative humidity and sends the measured values using a standard 433 MHz RF module. The temperature and humidity sensor used in the device is DHT11.
There are many ways to transfer small amounts of data using Arduino or ATMega controllers. One of them uses a ready-made library like RCSwitch, Radiohead or VirtualWire. It is also possible to send raw data using the microcontroller's built-in UART module. But using the built-in UART module is not recommended, since the receiver will collect all the noise and the microcontroller will not work as intended. In this article, I use the VirtualWire library to transmit and receive data. This library works with Arduino IDE 1.6.2 and 1.6.5.
The 433 MHz transmitter module, when not transmitting data, still emits RF and transmits noise. It may also interfere with other radio frequency devices. To prevent this, I turn it on when data needs to be transferred and turn it off when the transfer is complete.
Kinds
Advanced technologies are now actively integrated into almost all areas of modern life. Outdoor thermometers of various types were no exception. The market offers façade and window models of large and miniature sizes.
Alcohol
Despite the active introduction of innovative technical solutions, these thermometers for measuring air temperature remain the most common today.
In appearance and operating principle, such devices are similar to medical thermometers and have the following features:
- a scale is placed on a plastic or wooden base;
- above the scale there is a glass flask with alcohol inside;
- When the temperature outside rises, the liquid expands, and when it falls, it decreases in volume.
It is by changing the level of alcohol in the flask and using the scale that you can find out the air temperature both in the room and outside it. These classic models have their obvious advantages and no less significant disadvantages. In the first case, we are talking about the following points:
- affordable price;
- inconspicuousness, which is important for owners of apartments located on the ground floor (such a thermometer is unlikely to be stolen);
- maximum ease of installation.
Of course, such devices can hardly be called aesthetic, much less modern. Alcohol thermometers will not fit into design concepts when decorating interiors and facades.
In addition, it is worth focusing on several more significant disadvantages
- The Velcro that comes with the new product loses its performance after the first use. At the same time, double-sided tape can help in such a situation.
- Low-quality raw materials are often used in the production of cheap products. This negatively affects the service life of thermometers.
- As a rule, rather small symbols are applied to the scale.
Bimetallic
In this case, we are talking about another fairly common type of outdoor thermometers. They differ from liquid (alcohol) ones both in design and in their operating principle.
A bimetallic thermometer consists of only a few elements and has the following features:
- the scale has a semicircular shape;
- the pointer arrow moves due to the heating and cooling of the metal spring;
- the spring itself is made of two different metals, each of which has its own thermal coefficient of linear expansion.
By and large, the advantages and disadvantages of bimetallic thermometers are similar to those of alcohol models.
In addition to everything already mentioned, it is worth highlighting the following points:
- the transparent plastic case does not cover the instrument scale from sunlight, which often causes errors in readings;
- in shape and appearance, bimetallic thermometers are superior to their alcohol counterparts;
- The device scale has more divisions than liquid models.
Electronic
These devices, even taking into account the development and popularization of innovative technologies, still remain less common. Their main advantages include modern design and convenient presentation of readings. Some outdoor models of electronic thermometers are solar-powered. Others are located indoors and come with a remote sensor.
The main features of digital devices are as follows:
- data is displayed on the LCD display;
- the design is based on two metal elements with different electronegativity indices;
- The thermometer requires a power source to operate.
Their main advantages include:
- maximum accuracy;
- ergonomics;
- simple and intuitive interface;
- bright indication and large symbols.
Infrared
In this case we are talking about the so-called pyrometers, which belong to the youngest developments. This thermometer measures temperature with an upper range of 100-3000 degrees. Unlike all the modifications listed above, these devices take readings without direct contact with the medium or object under study. The device directs an infrared beam, and an accurate indicator is displayed on a small display.
Today, infrared devices are widely used in various fields. For example, they have proven their effectiveness in determining the temperature of metal workpieces in furnaces, as well as engine housings during operation. In everyday life, such thermometers are used to determine body temperature (most often this applies to children).
Hardware
We need two structural diagrams. One for the transmitting device, the second for the receiving device.
Transmitter
We need:
- microcontroller firmware method → ISP;
- sensor for measuring temperature and humidity → DHT11;
- microcontroller for data processing → ATMega32p;
- wireless data transmission method → 433 MHz radio frequency module.
Receiver
We need:
- radio signal reception method → 433 MHz radio frequency module;
- method of processing received data → Arduino Mega;
- temperature and humidity display method → 16×2 LCD.
Schematic diagrams
Transmitter
The transmitting part of the wireless thermometer on ATMega328p (to zoom in, you can right-click on the picture and select “Open link/image in a new tab/new window”)
In this example, I will not output unused pins of the microcontroller to the external contacts of the thermometer, after which they could be used to further improve the device. Here we are only considering the idea for the device and will assemble it only on a breadboard.
Receiver
Receiving part of a wireless thermometer on Arduino Mega (to zoom in, you can right-click on the picture and select “Open link/image in a new tab/new window”)
Please note that the receiver is built on the Arduino Mega board, which is not shown on the diagram. To connect the Arduino Mega board, connect the RF module and LCD display to it according to the mark on the diagram.
Types of street thermometers
Modern technologies are now making their way into all areas of human life, and even thermometers that are ordinary at first glance have managed to receive several “upgrades”. Let's figure out what kind of street thermometers there are and how they differ.
Liquid thermometers
Perhaps these thermometers are the most common option for windows. Most likely, before replacing the old frames with new plastic ones, this was exactly what hung in your apartment. In appearance and operating principle, such a thermometer is similar to a medical one (mercury):
- on the base (made of plastic or wood) there is a scale with temperature values;
- a glass flask is attached to it, inside of which there is tinted alcohol;
- When heated, the liquid inside the flask expands; when cooled, it decreases in volume.
By changing the level of liquid in the flask, we can find out the current air temperature indoors or outdoors. This type of thermometer has its pros and cons.
Among the advantages of liquid thermometers are:
- Low cost (from 100 rubles). Moreover, the price will not affect the quality of temperature measurement, but may affect the durability of the device;
- Inconspicuous and uninteresting for robbers. This item will especially please residents of the first floors;
- Easy installation - fastening to a plastic window is done using Velcro.
Naturally, such a thermometer cannot boast of an aesthetic appearance. It is not suitable in cases where the window is designed to match the interior of a room or balcony, and any prominent details will spoil its design.
A few more disadvantages of such thermometers:
- The Velcro of the thermometer loses its properties when re-attached, which can lead to the loss of the thermometer or its breakage if dropped;
- The low price of the device is often a consequence of the manufacturer’s use of low-quality materials, which is why the thermometer quickly fails;
- Small divisions and numbers. This becomes a problem for older people or people with poor vision.
In general, this is the most budget-friendly and simplest option for a thermometer for a plastic window. But it will have to be periodically replaced with a new one.
Bimetallic thermometers
Another popular type of outdoor thermometer is bimetallic. It differs from liquid both in structure and principle of operation:
- The temperature scale of a bimetallic thermometer is located in a semicircle;
- the pointer is an arrow that rotates due to the heating or cooling of a metal spring;
- the spring is made of two metals with different temperature coefficients of linear expansion.
The pros and cons of this device are generally similar to the characteristics of an alcohol thermometer. But you can add some of its features:
- The transparent plastic case does not cover the scale from sunlight, which leads to errors in temperature measurements;
- The scale has more values than the previous version of the thermometer;
- The shape and appearance are more interesting and may suit a certain window design.
The mounts for such a thermometer are still the same, and the price of the model depends on their quality and reliability.
Experts note that the temperature measurement error of such thermometers is no more than one degree. This is not a critical value if the thermometer is used for domestic purposes.
Electronic thermometers
A less common type of window thermometer is electronic. Their main feature is their modern appearance and convenient presentation of information.
Operating principle of an electronic thermometer:
- temperature information is displayed on the LCD screen;
- The design is based on two metals with different electronegativity values. When heated or cooled, they affect the change in potential difference, thanks to which we can find out the exact air temperature;
- Such devices operate either from ordinary batteries or from a solar cell.
Solar-powered electronic thermometer
The most accurate in measuring temperature are those electronic thermometers that contain platinum in their design.
The advantages of such thermometers:
- Modern appearance, some models have a stylish design;
- High accuracy of temperature measurement;
- A clear interface that is perfect for children and the elderly;
- Some models have large symbols.
The downside is the need to think about where to attach the electronic thermometer. This is due to the fact that proximity to the room (window) creates inaccuracy in measuring the temperature outside.
Thermometer with outdoor sensor
List of elements
Transmitter
List of elements of the transmitting part of the wireless thermometer on the ATMega328p (to zoom in, you can right-click on the picture and select “Open link/image in a new tab/new window”)
Receiver
List of elements of the receiving part of the wireless thermometer on Arduino Mega (to zoom in, you can right-click on the picture and select “Open link/image in a new tab/new window”)
Window thermometer in St. Petersburg
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
“One-click ordering” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
“One-click ordering” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
Related article: How to attach roller blinds to plastic windows
“One-click ordering” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
“One-click ordering” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
A toll-free number 8-800 is available on the seller's website. To go to the site, click “Go to store”
“One-click ordering” is available on the seller’s website. To go to the site, click “Go to store”
A toll-free number 8-800 is available on the seller's website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
A toll-free number 8-800 is available on the seller's website. To go to the site, click “Go to store”
A toll-free number 8-800 is available on the seller's website. To go to the site, click “Go to store”
A toll-free number 8-800 is available on the seller's website. To go to the site, click “Go to store”
An “Online Consultant” is available on the seller’s website. To go to the site, click “Go to store”
A toll-free number 8-800 is available on the seller's website. To go to the site, click “Go to store”
“One-click ordering” is available on the seller’s website. To go to the site, click “Go to store”
Program
Transmitter program
First, let's look at the program of the transmitting part:
// Include the necessary libraries #include #include // Define #define dhtPin 4 #define dhtType DHT11 #define txPowerPin 8 // Using the DHT library DHT dht(dhtPin, dhtType); // Variables char msg0[3]; char msg1[3]; int tem = 0; int hum = 0; // Initial setup function - executed only once when turned on void setup() { pinMode(txPowerPin, OUTPUT); pinMode(txPowerPin, LOW); vw_setup(4800); // VirtualWire connection speed vw_set_tx_pin(9); // VirtualWire transfer output } // Loop function - always executed void loop() { digitalWrite(txPowerPin, HIGH); hum = dht.readHumidity(); // Variable stores humidity tem = dht.readTemperature(); // Variable stores temperature itoa(hum, msg1, 10); // Convert humidity to an array char itoa(tem, msg0, 10); // Convert temperature to array char strcat(msg0, msg1); // Addition/merging of two arrays vw_send((uint8_t *)msg0, strlen(msg0)); // Transmit message vw_wait_tx(); // Wait for the transfer to complete digitalWrite(txPowerPin, LOW); delay(5000); // Wait 5 seconds and repeat everything again }
To convey humidity and temperature in one message, I combine them together. First the data is read into a variable as integers, then the integers are converted into a character array, and then they are concatenated with each other. At the receiving end, the data will be divided into individual characters. By doing this, I limit myself to two digit degrees. If the sensor is in an environment with a temperature less than 10°C, I will receive garbage symbols on the display. For example, if the temperature is 20°C and the humidity is 45%, then message 2045 will be transmitted and all is well. If the temperature is 9°C and the humidity is 78%, then message 978x will be transmitted, where “x” is a random character. Therefore, if you build this wireless thermometer, I advise you to change the program to transmit the correct data when the temperature is less than 10°C.
Receiver program
// Include the necessary libraries #include #include // Define LCD connection #define RS 9 #define E 10 #define D4 5 #define D5 6 #define D6 7 #define D7 8 LiquidCrystal lcd(RS, E, D4, D5, D6 , D7); // Drawing the degrees symbol byte degreesymbol[8] = { B01100, B10010, B10010, B01100, B00000, B00000, B00000, B00000 }; // Variables int tem = 0; int i; // Initial setup function - executed only once when enabled void setup() { lcd.begin(16,2); // Initialize LCD lcd.createChar(1, degreesymbol); // Create a degree symbol at location 1 Serial.begin(9600); // For debugging vw_setup(4800); // VirtualWire connection speed vw_rx_start(); // Ready to receive vw_set_rx_pin(2); // Reception output VirtualWiore lcd.clear(); // Clear LCD } // Loop function - always executed void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; // Variable for storing received data uint8_t buflen = VW_MAX_MESSAGE_LEN; // Variable to store the length of received data lcd.setCursor(0,0); lcd.print("Temp: "); if (vw_get_message(buf, &buflen)) // If the data is received { for (i=0;i<2;i++) // Get the first two bytes { Serial.write(buf ); // For debugging lcd.write(buf ); // Print first bytes to LCD } Serial.println(); // For debugging lcd.write(1); // Print the degrees symbol on the LCD lcd.print("C"); lcd.setCursor(0,1); lcd.print("Hum: "); for (i=2;i<4;i++) // Get the last two bytes { Serial.write(buf ); // Debugging lcd.write(buf );
// Print the last bytes to the LCD } lcd.print("% RH"); } } An interesting way to use the LiquidCrystal library is to create custom symbols. Using createChar I created a degree symbol. You can create your own symbols in the same way. To create a custom symbol or icon, you need to declare it as an eight-byte array and "draw" which pixels will be on (1 is on, 0 is off).
In the setup() function you create it using createChar. createChar takes two arguments: the position number to store the character and a byte array that specifies which pixels will be displayed. In our case it is lcd.createChar(1, degreesymbol). The character is then output to the LCD using the lcd.write function.
How to make an electronic thermometer with your own hands
If you feel the urge to invent, you can learn how to create a digital thermometer with your own hands. As a result, you will receive a working device connected to the computer via a port. Thus, you can both maintain the required temperature in the aquarium, incubator, storage room and other premises, and monitor and further analyze changes in the weather outside.
Making an electronic thermometer with your own hands is much easier than it might seem.
Moreover, creating a digital thermometer with a remote sensor with your own hands allows you to connect several sensors to one two- or three-wire line. As a result, you minimize costs while still being able to monitor and regulate temperatures in multiple locations at once.
What you need to assemble an electronic thermometer with a remote sensor yourself
To successfully create a device you will need:
- temperature sensor - for example, Dallas SD1820, one or more;
- two Schottky diodes;
- zener diodes for 3.9 V, 6.2 V and 5.6 V;
- one diode 1N4148;
- one 10uF capacitor at 16V;
- one resistor 1.5 kOhm 0.25 W;
- housing for connector;
- nine-pin female COM port connector.
Helpful advice! Use zener diodes of minimal power - they are characterized by maximum compactness.
Electrical circuit of a digital thermometer
With the proper skill, parts can be installed directly on the connector - this option is the most convenient and practical.
As a result, you get a thermometer that operates in the temperature range from -55 to +125°C with an absolute conversion error of less than 0.5°C. The maximum full conversion time is approximately 750 ms.
The design of the 1-Wire interface node allows you to address an unlimited number of similar devices on one single-wire line. Single-wire parasitic power allows the device to operate without an external power source.
The required voltage value to power the device through a separate external output is from 3 to 5.5 V. The thermometer is placed in a TO-92 transistor housing.
If you make your own device, you can install two or more sensors
Software for operating an electronic thermometer
The finished device does not require sensor calibration. All that remains is to connect the sensor to the computer port, after which a temperature measurement program is needed. A suitable option is Temp.Keeper: it allows you to monitor the temperature of various objects and environments depending on the placement of sensors.
Helpful advice! Making such a device with your own hands requires some experience in designing such mechanisms, as well as the corresponding spare parts. Therefore, in the absence of relevant experience, it would be better to buy an outdoor electronic thermometer, in which case you will be confident in its serviceability and effective operation.
Photo and video
Transmitter
Transmitting part of a wireless thermometer on ATMega328p
Receiver
Receiving part of a wireless thermometer on Arduino
Video
Original article:
- Jens Christoffersen. Make a Wireless Thermometer with Arduino