Here we will make project with LM35 TM1637 ESP8266. We all use weather applications to know the current temperature. This requires the Internet. So if I say you can know your area temperature without the Internet.
In this post, I will share how to get local area temperature using LM35 Temperature Sensor with LM35 TM1637 ESP8266 4 Digit 7 segment Display in ESP8266 NodeMCU Board.
LM35 Sensor with TM1637 Display in Arduino UNO
Components Used:(Click to Buy)
What is LM35 Temperature Sensor?
LM35 is an integrated analog temperature sensor whose electrical output is proportional to Degree Centigrade. LM35 Sensor does not require any external calibration or trimming to provide typical accuracies.

It has 3 pins – two pins are 5V and Ground. The middle pin is Voltage out. We use the reading of this pin to determine the temperature using some arithmetic calculation.
Because this is a single sensor, it does not give an accurate temperature. If you want accurate temperature, you can you DHT22 Sensor.
Connect LM35 TM1637 ESP8266
If you do not know how to connect LM35 with ESP8266 NodeMCU, then follow this post.
LM35 Temperature Sensor with ESP8266 NodeMCU
How to Connect TM1637 Display?
Following Connection Diagram you can see how to connect TM1637 Display & LM35 Sensor with ESP8266 NodeMCU.

Here we connected D1 & D2 pins of ESP8266 to SCL & SDA pin of TM1637.

Code Explain of LM35 TM1637 ESP8266
As discussed in the previous post, we calculated Temperature in Celcius.
After that, we are displaying it in the 4 Digit Display using TM1637Display library functions.
We will show the temperature in the first two digits of the display, and the rest two digits will show Degree Centrigrade icon using setsegments function.
Arduino Sketch of LM35 TM1637 ESP8266
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <TM1637Display.h> // Module connection pins (Digital Pins) #define CLK 5 //D1 #define DIO 4 //D2 TM1637Display display(CLK, DIO); const int sensor=A0; float tempc; float vout; const uint8_t C[] = { SEG_B | SEG_A | SEG_F | SEG_G, SEG_A | SEG_D | SEG_E | SEG_F }; void setup() { pinMode(sensor,INPUT); } void loop() { display.setBrightness(0xff); vout=analogRead(sensor); vout=(vout*500)/1024; tempc=vout; display.showNumberDecEx(tempc, (0x80 >> 0), false,2,0); display.setSegments(C,2,2); delay(1000); } |
Output LM35 TM1637 ESP8266

You can also watch this tutorial video in Hindi.