અર્ડુઇનો કોડ અને DHT11 તાપમાન અને ભેજ સેન્સર માટે વિડિઓ
આ ટ્યુટોરિયલમાં, આપણે Arduino સાથે DHT11 તાપમાન અને ભેજ સેન્સરનો ઉપયોગ કેવી રીતે કરવો તે શોધીશું. આ સેન્સર તાપમાન અને ભેજ બંને માપવા માટે ઓછી કિંમતનો વિકલ્પ છે, જે તેને વિવિધ પ્રોજેક્ટ્સ માટે યોગ્ય પસંદગી બનાવે છે. અમે વાયરિંગ, જરૂરી કોડ અને ઘટકો કેવી રીતે સચોટ રીડિંગ્સ પ્રદાન કરવા માટે ક્રિયાપ્રતિક્રિયા કરે છે તે આવરી લઈશું.

આ ટ્યુટોરિયલના અંત સુધીમાં, તમે સેલ્સિયસ, ફેરનહીટ અને કેલ્વિનમાં તાપમાન તેમજ DHT11 સેન્સરમાંથી ભેજનું સ્તર વાંચી શકશો. વધારાની સ્પષ્ટતા માટે, સૂચવેલા ટાઇમસ્ટેમ્પ પર વિડિયો જોવાનું સુનિશ્ચિત કરો (વિડિયોમાં 00:00 પર).
હાર્ડવેર સમજાવ્યું
DHT11 સેન્સરમાં ત્રણ પિન હોય છે: ગ્રાઉન્ડ, પાવર અને ડેટા. ગ્રાઉન્ડ પિન Arduino ના ગ્રાઉન્ડ સાથે જોડાય છે, જ્યારે પાવર પિન Arduino થી 5V સપ્લાય સાથે જોડાય છે. ડેટા પિન Arduino અને સેન્સર વચ્ચેના સંચાર માટે જવાબદાર છે, જે Arduino ને તાપમાન અને ભેજના મૂલ્યો વાંચવાની મંજૂરી આપે છે.
આ સેન્સર ડિજિટલ આઉટપુટનો ઉપયોગ કરે છે, જેનો અર્થ છે કે તે Arduino ને સીરિયલ ફોર્મેટમાં ડેટા મોકલે છે. તેમાં તાપમાન માપન માટે થર્મિસ્ટર અને કેપેસિટીવ ભેજ સેન્સર હોય છે. DHT11 પ્રાપ્ત થતા એનાલોગ સિગ્નલોને ડિજિટલ સિગ્નલોમાં રૂપાંતરિત કરે છે, જે Arduino જેવા માઇક્રોકંટ્રોલર્સ માટે ડેટા પ્રોસેસ કરવાનું સરળ બનાવે છે.
ડેટાશીટ વિગતો
| ઉત્પાદક | ASAIR |
|---|---|
| ભાગ નંબર | DHT11 |
| લોજિક/IO વોલ્ટેજ | 3.3–5.5 V |
| સપ્લાય વોલ્ટેજ | 3.3–5.5 V |
| આઉટપુટ કરંટ (પ્રતિ ચેનલ) | 0.5 mA |
| પીક કરંટ (પ્રતિ ચેનલ) | 2.5 mA |
| PWM ફ્રીક્વન્સી માર્ગદર્શન | N/A |
| ઇનપુટ લોજિક થ્રેશોલ્ડ | 0.3*VDD થી 0.7*VDD |
| વોલ્ટેજ ડ્રોપ / RDS(on) / સેચ્યુરેશન | N/A |
| થર્મલ મર્યાદાઓ | 0 થી 60 °C |
| પેકેજ | 4-પિન DIP |
| નોંધો / વેરિઅન્ટ્સ | ઓછી કિંમત, ઉપયોગમાં સરળ |
- 3.3V થી 5.5V વચ્ચે ઓપરેટિંગ વોલ્ટેજ.
- મહત્તમ આઉટપુટ કરંટ 2.5 mA.
- તાપમાન શ્રેણી 0 થી 60 ડિગ્રી સેલ્સિયસ.
- ભેજ શ્રેણી 20% થી 90%.
- સ્થિર રીડિંગ્સ માટે ડેટા પિન પર પુલ-અપ રેઝિસ્ટરનો ઉપયોગ કરો.
- ફ્લોટિંગ ઇનપુટ્સ ટાળવા માટે યોગ્ય કનેક્શનની ખાતરી કરો.
- પાવર કનેક્ટ કરતી વખતે ઉલટી ધ્રુવીયતાથી સાવધ રહો.
- સચોટ પરિણામો માટે ઓછામાં ઓછી 1 સેકન્ડ સુધી રીડિંગ્સમાં વિલંબ કરો.
વાયરિંગ સૂચનાઓ

DHT11 સેન્સરને તમારા Arduino સાથે વાયર કરવા માટે, આ પગલાંઓ અનુસરો:
પ્રથમ, DHT11 ના ગ્રાઉન્ડ પિન (સામાન્ય રીતે કાળો અથવા ભૂરો) ને Arduino પરના ગ્રાઉન્ડ (GND) સાથે જોડો. આગળ, DHT11 ના પાવર પિન (સામાન્ય રીતે લાલ) ને Arduino પરના 5V આઉટપુટ સાથે જોડો. છેલ્લે, ડેટા પિન (સામાન્ય રીતે પીળો અથવા સફેદ) ને Arduino પરના ડિજિટલ પિન 2 સાથે જોડો. સ્થિર સંચાર સુનિશ્ચિત કરવા માટે ડેટા પિન અને પાવર પિન વચ્ચે પુલ-અપ રેઝિસ્ટર (લગભગ 10k ઓહ્મ) નો ઉપયોગ કરવાનું સુનિશ્ચિત કરો.
કોડ ઉદાહરણો અને વોકથ્રુ
Arduino કોડમાં, અમે DHT11 સેન્સર માટે જરૂરી હેડર ફાઇલ શામેલ કરીને શરૂ કરીએ છીએ:
#include
આ લાઇન લાઇબ્રેરી આયાત કરે છે જેમાં DHT11 સેન્સર સાથે ક્રિયાપ્રતિક્રિયા કરવા માટે જરૂરી ફંક્શન્સ હોય છે. આગળ, અમે DHT11 ક્લાસનું ઇન્સ્ટન્સ બનાવીએ છીએ:
dht11 DHT11; // DHT11 નો ઑબ્જેક્ટ બનાવો
આ લાઇન DHT11 ઑબ્જેક્ટને પ્રારંભ કરે છે જેનો ઉપયોગ આપણે સેન્સરમાંથી ડેટા વાંચવા માટે કરીશું. DHT11 સાથે જોડાયેલ પિન આ રીતે વ્યાખ્યાયિત થયેલ છે:
#define dhtpin 2 // DHT11 સાથે જોડવા માટે પિન સેટ કરો
આ સેન્સર માટે ડેટા પિનને Arduino પર પિન 2 પર સેટ કરે છે. loop() ફંક્શનમાં, અમે સેન્સર ડેટા વાંચીએ છીએ:
DHT11.read(dhtpin);// રીડિંગ પ્રારંભ કરો
આ લાઇન રીડિંગ પ્રક્રિયા શરૂ કરે છે, અને ભેજ આ રીતે એક્સેસ કરી શકાય છે:
int humidity = DHT11.humidity;// ભેજ મેળવો
ભેજનું મૂલ્ય humidity ચલમાં સંગ્રહિત થાય છે, જે પછી સેલ્સિયસ, ફેરનહીટ અને કેલ્વિનમાં રૂપાંતરિત તાપમાન મૂલ્યો સાથે સીરિયલ મોનિટર પર છાપવામાં આવે છે.
પ્રદર્શન / શું અપેક્ષા રાખવી
જ્યારે તમે કોડ ચલાવો છો, ત્યારે તમારે સીરિયલ મોનિટરમાં તાપમાન અને ભેજના રીડિંગ્સ પ્રદર્શિત થતા જોવા જોઈએ. તાપમાન રીડિંગ્સ દર અડધી સેકન્ડે અપડેટ થશે (વિડિયોમાં 00:00 પર). જો સેન્સર ગરમ અથવા ઠંડુ કરવામાં આવે છે, તો તમે જોશો કે મૂલ્યો તે મુજબ બદલાય છે. સાવધાન રહો, કારણ કે DHT11 ની મહત્તમ તાપમાન મર્યાદા 60 ડિગ્રી સેલ્સિયસ છે; આ કરતાં વધુ જવાથી અચોક્કસ રીડિંગ્સ થઈ શકે છે.
વિડિયો ટાઇમસ્ટેમ્પ્સ
- 00:00 - DHT11 સેન્સરનો પરિચય
- 01:30 - વાયરિંગ સૂચનાઓ
- 02:15 - કોડની ઝાંખી
- 03:00 - કોડ ચલાવવો અને અપેક્ષિત આઉટપુટ
/*
* This is the Arduino code for the DHT11 module to read temperature and humidity.
* This code can display temperature in:
* C is used to get Celsius.
* F is used to get Fahrenheit.
* K is used for Kelvin.
* Watch the video https://youtu.be/FjZBt6eU9b4
*
* Written by Ahmad Nejrabi for Robojax Video
* Date: January 4, 2018, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
// header file from GitHub: https://github.com/adidax/dht11
#include <dht11.h>
dht11 DHT11; // create object of DHT11
#define dhtpin 2 // set the pin to connect to DHT11
void setup() {
Serial.begin(9600);// setting up serial monitor
}
void loop() {
DHT11.read(dhtpin);// initialize the reading
//code for Robojax.com video
int humidity = DHT11.humidity;// get humidity
Serial.print(getTemp('C'));
Serial.print("C ");
Serial.print(getTemp('F'));
Serial.print("F ");
Serial.print(getTemp('K'));
Serial.print("K ");
Serial.print(" humidity:");
Serial.print (humidity);
Serial.println("% ");
Serial.println();
delay(500);
}
/*
* getTemp(char type)
* type character of upper case.
* C is used to get Celsius.
* F is used to get Fahrenheit.
* K is used for Kelvin.
*/
float getTemp(char type) {
float temp = (float)DHT11.temperature;//get temp
if(type =='F')
{
return temp * 1.8 + 32;// convert to Fahrenheit
}else if(type =='K')
{
return temp + 274.15;// convert to Kelvin
}else{
return temp;
}
}
Resources & references
-
ExternalDHT11 library on GitHubgithub.com
Files📁
Arduino Libraries (zip)
-
DHT22 Arduino Library
robojax-DHT22_library.zip0.01 MB
Fritzing File
-
Temperature Sensor DHT11
Temperature Sensor DHT11.fzpz0.01 MB
User’s Manual
-
DHT11 User's Manual
robojax-DHT11_manual.pdf0.82 MB
Other files
-
DHT11 Simple Arduino Library
robojax-DHT11-simple_library.zip