Last updated on June 20th, 2022 at 11:06 pm
Nowadays, DIY temperature sensor for Home Assistant can be very easy and cheap – especially, if you have a complete guide like this one that will show you all the steps.
I will try my best to show you everything needed for the DIY Temperature sensor for Home Assistant:
- What parts are needed?
- How much they cost?
- From where to buy them?
- How to connect them?
- How to configure them?
- How to install ESPHome?
- And finally, how to add your smart DIY Temperature & Humidity sensor to Home Assistant?
On top, if you have access to a 3D printer I will also show some enclosures that can make the sensor looks better.
So, buckle your belts as we are starting with the needed parts for this DIY Temperature & Humidity sensor.
What parts are needed?
Wemos D1 Mini
The first thing that you will need Is an ESP8266 device, and I’m going to use a Wemos D1 Mini.
Later, on the D1 Mini I will install the ESPHome software.
DHT22 – Temperature and Humidity Sensor
Also, on the D1 Mini I will attach the Temperature & Humidity sensor. The exact model of the sensor that I’m going to use is AM2302 DHT22 and it is looking like this:
I will also need 3 female-to-female jumper wires, also known as Dupont wires. Of course, if you have other suitable cables you can use them instead.
USB Cable & optionally USB Adapter
The final things that are needed are micro USB cable and optionally an USB adapter (if you have plans to plug this Cheap & Smart Temperature & Humidity sensor in the power socket).
As I said this USB adapter is optional as you can just plug the sensor in any USB port that you have available.
How much does it all cost?
All components will cost you around $5 to $6 US Dollars (if you already have microUSB cable) and you can buy them using the AliExpress affiliate links below:
- D1 Mini – https://s.click.aliexpress.com/e/_AFgAIp
- D1 Mini in Amazon – https://amzn.to/3A5jNoc
- DHT22 T&H sensor & Jumper wires – https://s.click.aliexpress.com/e/_As7y5k
- DHT22 T&H sensor in Amazon (3pcs) – https://amzn.to/3qzcORi
- Jumper (Dupont) wires – https://s.click.aliexpress.com/e/_A3YiR3
- Micro USB cable – https://s.click.aliexpress.com/e/_AnrsGw
- USB adapter EU US UK – https://s.click.aliexpress.com/e/_Ataxcq
At the end of the day, it is not so important from where you will get the needed parts, but how you will connect them and how you will configure them. So, moving to the next step, which is how to connect the D1 Mini and DHT22 sensor together.
How to connect D1 Mini and DHT22 sensor?
D1 Mini comes with these pins and these pins are not soldered so I recommend to solder them as later on, plugging the Jumper wires will be pretty easy.
Here are the steps to connect D1 Mini and DHT22 Sensor:
- Connect the
+(plus) output on the DHT22 to the
3V3pin on the D1 mini.
- Then connect the middle output of the DHT22 labeled
D2pin on the D1 Mini
- Finally, connect the
-(minus) on the DHT22 to the
G(Ground) pin on the D1 mini.
This is how everything looks like at the end:
How to install ESPHome on the D1 Mini
Next step is to upload ESPHome software on the D1 Mini device. There are multiple ways doing this, but I will use one of the easiest, which is to install ESPHome add-on in the Home Assistant. If you don’t have Home Assistant yet, check this article of mine where I’m explaining what are your options 👉 LINK.
Let’s see how to install the ESPHome add-on.
- Add the official ESPHome add-on repository by click on this link.
- While in Home Assistant, press the “c” button on your keyboard and start typing Add-on, then select Navigate Add-on store.
- Next, search for ESPHome, click on the result and then click on the Install button.
- When the installation is finished the Install button will be replaced with Start button – click on it to start the ESPHome add-on.
- Wait few seconds for the ESPHome to start and then click on the Open Web UI button.
- You should see similar screen as above. And you should click on the New Device button.
New device dialog will appear on which you should enter a device name of your choice as well as you WiFi name and password. I named my device: d1-mini-th.
When you are ready click on Next button.
- From the next dialog, click no Pick specific Board radio button and select the Wemos D1 and Wemos D1 mini. Of course, if your ESP board is different – either find it from the list or select the more generic ESP32 or ESP8266 options depending of your board type. Finally, click Next button.
- On the next dialog click on Install button, and when possible installation options appear, click on Cancel button. That is needed, because we have to add some YAML configuration before we actually install ESPHome.
- Click on the Edit button under your device name (the future T&H sensor) in the ESPHome dashboard.
- Paste the following lines at the very bottom of the configuration:
sensor: - platform: dht pin: D2 temperature: name: "Living Room Temperature" humidity: name: "Living Room Humidity" update_interval: 20s
Here is how my whole D1 Mini and DHT22 configuration looks like at the end:
- You may wish to change both names (Living Room Temperature & Living Room Humidity) to whatever is suitable for you. When you are ready, click on the Save button and then on Install button.
- You will see the same “How do you want to install this on your ESP device?” dialog.
- Plug the D1 Mini in one of the USB ports on the device where Home Assistant and ESPHome are installed and select “Plug into the computer running ESPHome Dashboard” option from the list.
- The USB port where your device is connected will be auto detected and you should only click on it, example: /dev/ttyUSB0.
- If everything is fine, a terminal will appear with a lot of text and multiple text based progress bars. Wait until you see some temperature and humidity readings or something like this below:
Challenge for You!
I have a quick challenge for you! If you reach this point and you managed to install ESPHome on your future Smart Temperature & Humidity sensor – let me know in the comments by just type – #THowned
Where TH stands for Temperature and Humidity. I will be very happy to see such hashtags there!
Now, let’s finish this by adding the D1 mini and DHT22 based smart Temperature & Humidity sensor in Home Assistant.
Adding D1 Mini and DHT22 to Home Assistant
Before you continue further it is a good idea to check in the ESPHome dashboard if your DIY Temperature Sensor for Home Assistant is actually online.
If the D1 Mini and DHT22 are online, then you are almost ready and you just have to add your ready to use T&H sensor in your Home Assistant. Here is how:
In Home Assistant go to:
- Press the “c” button on your keyboard and start typing integrations, then select Navigate Integrations.
- Search for ESPHome integration within the list with discovered integrations and click on the Configure, then Submit and finally Finish buttons.
As a result, 1 device with 2 entities will be added in your Home Assistant integrations page. Click on the 1 device link.
- On the next screen you can see your Temperature and Humidity readings and you can add this as a card in your Home Assistant Dashboard by just clicking on the Add to Lovelace button. From the same place you can start creating Home Assistant Automations, Scenes & Scripts.
3D Printed enclosure/box
The only thing that is missing is a 3D printed enclosure. And here is what I managed to find and print on my Ender 3 v2 3D printer (my article about the printer):
Links to the 3D Models:
- DHT-22 / DHT22 Wall box with ESP8266 – https://www.thingiverse.com/thing:2610694/files
- “Öl Broker” Wemos D1 Mini mit Sr04 & AM2301 mqtt – https://www.thingiverse.com/thing:5142671/files
If you manage to find other good ones, please share them in the comments section below.
For around $5 to $6 US dollars and several minutes I managed to DIY temperature sensor for Home Assistant and with that to make my Home even Smarter. Try it out and you can do the same.
Feel free to secure this channel existence by using any of the supported methods in my Website support section.
Stay safe and don’t forget – Home Smart, but not hard!
I’m Kiril and I’m done writing. Bye!