કોડ શોધો

પાઠ ૨૮: ટીએમ૧૬૩૭ ડિસ્પ્લે સાથે ડીએચટી૧૧ તાપમાન સેન્સર | આર્ડુઇનો સ્ટેપ-બાય-સ્ટેપ કોર્સ

પાઠ ૨૮: ટીએમ૧૬૩૭ ડિસ્પ્લે સાથે ડીએચટી૧૧ તાપમાન સેન્સર | આર્ડુઇનો સ્ટેપ-બાય-સ્ટેપ કોર્સ

DHT11 Module
Arduino wriing DHT11 PCB module  module with TM1637

આ પાઠમાં, Arduino સ્ટેપ-બાય-સ્ટેપ કોર્સમાંથી, આપણે DHT11 તાપમાન અને ભેજ સેન્સરને TM1637 4-અંકના સેવન-સેગમેન્ટ ડિસ્પ્લે સાથે જોડીને કોમ્પેક્ટ, સ્વતંત્ર તાપમાન ડિસ્પ્લે કેવી રીતે બનાવવું તે શોધીએ છીએ. રીડિંગ્સ જોવા માટે સીરિયલ મોનિટર પર આધાર રાખવાને બદલે, આ પ્રોજેક્ટ એક નાનું, સ્વ-સમાવિષ્ટ એકમ બનાવે છે જે આસપાસનું તાપમાન સેલ્સિયસ અને ફેરનહીટ બંનેમાં દૃશ્યમાન રીતે દર્શાવે છે. આ તમારા ઇલેક્ટ્રોનિક્સ પ્રોજેક્ટ્સ માટે વપરાશકર્તા-મૈત્રીપૂર્ણ ઇન્ટરફેસ બનાવવા, ડેટાને ડિજિટલ વિશ્વમાંથી ભૌતિક ડિસ્પ્લેમાં ખસેડવા માટેનું મૂળભૂત કૌશલ્ય છે.

આ પ્રોજેક્ટ એવી વિવિધ એપ્લિકેશનો માટે એક વ્યવહારુ બિલ્ડિંગ બ્લોક છે જ્યાં ઝડપી, એક નજરમાં તાપમાન રીડઆઉટની જરૂર હોય છે. તમને પ્રેરણા આપવા માટે અહીં કેટલાક વિચારો છે:

  • ડેસ્કટોપ વેધર સ્ટેશન: તમારી ઓફિસ અથવા હોબી રૂમમાં તાપમાન મોનિટર કરવા માટે એક નાનું, હંમેશા ચાલુ રહે તેવું ડિસ્પ્લે બનાવો.
  • થર્મોસ્ટેટ મોનિટર: તમારા ઘરના થર્મોસ્ટેટ અથવા HVAC વેન્ટ નજીકનું તાપમાન ચકાસવા માટે સમર્પિત ડિસ્પ્લે બનાવો.
  • ઇન્ક્યુબેટર અથવા ટેરેરિયમ ગેજ: સરિસૃપ ટેરેરિયમ, છોડ પ્રસારણ ચેમ્બર અથવા DIY ઇન્ક્યુબેટરની અંદરનું તાપમાન ખોલ્યા વિના મોનિટર કરો.
  • વર્કશોપ અથવા ગેરેજ થર્મોમીટર: સ્પષ્ટ, તેજસ્વી ડિસ્પ્લે સંભવિત ધૂળવાળા અથવા ઝાંખા પ્રકાશવાળા વર્કશોપમાં તાપમાન ચકાસવા માટે યોગ્ય છે.
  • શૈક્ષણિક કિટ: Arduino સાથે વિવિધ પ્રકારના સેન્સર અને આઉટપુટ મોડ્યુલોને કેવી રીતે ઇન્ટરફેસ કરવું તે શીખવા માટે ઉત્તમ પ્રારંભિક પ્રોજેક્ટ.

જરૂરી હાર્ડવેર

આ પ્રોજેક્ટ સાથે આગળ વધવા માટે, તમારે નીચેના ઘટકોની જરૂર પડશે:

  • Arduino Uno (અથવા કોઈપણ સુસંગત બોર્ડ)
  • DHT11 તાપમાન અને ભેજ સેન્સર (3-પિન અને 4-પિન PCB બંને વર્ઝન બતાવેલા છે)
  • TM1637 4-અંકનું સેવન-સેગમેન્ટ ડિસ્પ્લે મોડ્યુલ
  • બ્રેડબોર્ડ
  • જમ્પર વાયર

વાયરિંગ માર્ગદર્શિકા

આ પ્રોજેક્ટ માટે વાયરિંગ સરળ છે, જેમાં સેન્સર અને ડિસ્પ્લે બંને માટે કનેક્શનની જરૂર છે. વિડિયો DHT11 સેન્સરના બે અલગ-અલગ વર્ઝન અને TM1637 ડિસ્પ્લેના બે કદ સાથે સેટઅપ દર્શાવે છે, પરંતુ મુખ્ય કનેક્શન સમાન રહે છે.

વિડિયોમાં વર્ણવ્યા મુજબ DHT11 સેન્સર અને TM1637 ડિસ્પ્લે માટે અહીં વાયરિંગ છે (વિડિયોમાં 05:06 પર).

Arduino wriing DHT11 PCB module  module with TM1637
Arduino wriing DHT11 PCB module module with TM1637
Arduino wriing DHT11 bare module  module with TM1637
Arduino wriing DHT11 bare module module with TM1637
Arduino wriing DHT11 bare module  module with TM1637
Arduino wriing DHT11 bare module module with TM1637

TM1637 ડિસ્પ્લે મોડ્યુલ માટે, કનેક્શન નીચે મુજબ છે:

  • VCC ને Arduino પરના 5V સાથે.
  • GND ને Arduino પરના GND સાથે.
  • CLK (ક્લોક) ને ડિજિટલ પિન સાથે, ઉદાહરણ તરીકે, D2.
  • DIO (ડેટા ઇનપુટ/આઉટપુટ) ને બીજી ડિજિટલ પિન સાથે, ઉદાહરણ તરીકે, D3.

DHT11 સેન્સર માટે, કનેક્શન છે:

  • VCC (અથવા + પિન) ને 5V સાથે.
  • GND (અથવા - પિન) ને GND સાથે.
  • ડેટા (અથવા S પિન) ને ડિજિટલ પિન સાથે, ઉદાહરણ તરીકે, D2. (નોંધ: વિડિયોમાં, સેન્સરનો ડેટા પિન પિન 2 સાથે જોડાયેલો છે, પરંતુ કોડ સ્નિપેટ પણ તેને પિન 2 પર બતાવે છે. કોડ સ્નિપેટમાં ડિસ્પ્લે માટે CLK અને DIO પિન પિન 2 અને 3 પર છે, જે સંઘર્ષ છે. વિડિયો ટ્રાન્સક્રિપ્ટ ડિસ્પ્લે માટે પિન 5 અને 6 નો ઉલ્લેખ કરે છે, તેથી અમે કોઈપણ ઓવરલેપ ટાળવા માટે તેનો ઉપયોગ કરીશું.)

કૃપા કરીને નોંધો: ટ્રાન્સક્રિપ્ટ અને કોડ સ્નિપેટ સંભવિત પિન સંઘર્ષ દર્શાવે છે. કોડ DHT11 ડેટા પિન અને TM1637 CLK પિન બંનેને ડિજિટલ પિન 2 પર વ્યાખ્યાયિત કરે છે. આ ટાળવા માટે, અલગ પિનનો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે, જેમ કે DHT11 ને પિન 2 સાથે અને TM1637 CLK ને પિન 5 સાથે અને DIO ને પિન 6 સાથે જોડવું, જેમ વિડિયોમાં ઉલ્લેખ કર્યો છે.

કોડ સમજૂતી

આ પ્રોજેક્ટનો કોડ DHT11 સેન્સર અને TM1637 ડિસ્પ્લે બંને માટેની લાઇબ્રેરીઓને જોડે છે. વપરાશકર્તા દ્વારા ગોઠવી શકાય તેવા મુખ્ય ભાગો પિન વ્યાખ્યાઓ અને ડિસ્પ્લેની તેજસ્વિતા સેટિંગ છે. તમે તમારા ચોક્કસ વાયરિંગ અને પસંદગીઓને ફિટ કરવા માટે તેને સમાયોજિત કરી શકો છો.

પ્રથમ, DHT11 સેન્સરનો ડેટા પિન વ્યાખ્યાયિત કરવામાં આવ્યો છે. જો તમે સેન્સરને તમારા Arduino પર અલગ ડિજિટલ પિન સાથે જોડ્યું હોય તો તમે આ નંબર બદલી શકો છો.

#define dhtpin 2 // DHT11 સાથે જોડવા માટે પિન સેટ કરો

આગળ, TM1637 ડિસ્પ્લે મોડ્યુલ માટેના પિન વ્યાખ્યાયિત કરવામાં આવ્યા છે. CLK પિન ક્લોક સિગ્નલ માટે છે અને DIO પિન ડેટા માટે છે. આ તમારા ભૌતિક વાયરિંગ સાથે મેળ ખાતા હોવા જોઈએ.

// મોડ્યુલ કનેક્શન પિન (ડિજિટલ પિન)
#define CLK 5
#define DIO 6

પછી TM1637Display વર્ગનો એક ઑબ્જેક્ટ બનાવવામાં આવે છે, જે CLK અને DIO પિન નંબરોને દલીલો તરીકે લે છે. આ ઑબ્જેક્ટ ડિસ્પ્લેને નિયંત્રિત કરવા માટે જરૂરી તમામ કાર્યો પ્રદાન કરે છે.

TM1637Display display(CLK, DIO);

ડિસ્પ્લેની તેજસ્વિતા setup() ફંક્શનમાં સેટ કરવામાં આવી છે. મૂલ્ય 0x0f મહત્તમ તેજસ્વિતા દર્શાવે છે. તમારા વાતાવરણને અનુરૂપ ડિસ્પ્લેની તીવ્રતા સમાયોજિત કરવા માટે તમે 0x00 (બંધ) થી 0x0f (મહત્તમ) સુધીનું મૂલ્ય વાપરી શકો છો.

display.setBrightness(0x0f);

loop() ફંક્શનમાં મુખ્ય તર્ક DHT11 સેન્સરમાંથી તાપમાન વાંચે છે અને તેને ડિસ્પ્લે કરે છે. showNumberDec() ફંક્શનનો ઉપયોગ તાપમાનનું મૂલ્ય ડિસ્પ્લે પર મોકલવા માટે થાય છે. તેના પરિમાણો તમને નંબર કેવી રીતે બતાવવો તે નિયંત્રિત કરવાની મંજૂરી આપે છે. ઉદાહરણ તરીકે, નીચેની લાઇન તાપમાન સેલ્સિયસમાં દર્શાવે છે, જે બીજા અંકથી શરૂ થાય છે (સ્થિતિ 1).

display.showNumberDec(23, false, 2, 1);

આ ઉદાહરણમાં, 23 એ દર્શાવવાનો નંબર છે, false એટલે કોઈ અગ્રણી શૂન્ય નહીં, 2 એ ઉપયોગમાં લેવાના અંકોની સંખ્યા છે, અને 1 એ ડિસ્પ્લે પરની શરૂઆતની સ્થિતિ છે (0-ઇન્ડેક્સ્ડ).

લાઇવ પ્રોજેક્ટ પ્રદર્શન

વિડિયોમાં, પ્રોજેક્ટનું લાઇવ પ્રદર્શન કરવામાં આવ્યું છે. પ્રસ્તુતકર્તા મોટા અને નાના બંને TM1637 ડિસ્પ્લે પર તાપમાનના રીડિંગ્સ બતાવે છે. સેન્સર કામ કરી રહ્યું છે તે સાબિત કરવા માટે, હીટ ગનનો ઉપયોગ કરીને DHT11 પર ગરમી લાગુ કરવામાં આવે છે.

શરૂઆતમાં, ડિસ્પ્લે સેલ્સિયસ અને ફેરનહીટ બંનેમાં ઓરડાનું તાપમાન દર્શાવે છે. જેમ જેમ હીટ ગન સેન્સરને ગરમ કરે છે, તમે જોઈ શકો છો કે તાપમાનના રીડિંગ્સ ઝડપથી વધે છે. આ પ્રદર્શન દર્શાવે છે કે તાપમાન સામાન્ય ઓરડાના તાપમાનથી 50°C (123°F) થી વધુ સુધી વધી રહ્યું છે, જે પુષ્ટિ કરે છે કે સેન્સર તાપમાનમાં થતા ફેરફારને ચોક્કસ રીતે વાંચી રહ્યું છે અને ડિસ્પ્લે ડેટાને યોગ્ય રીતે દર્શાવી રહ્યું છે. આ પરીક્ષણ એ ચકાસવાની એક શ્રેષ્ઠ રીત છે કે તમારા બધા જોડાણો અને કોડ યોગ્ય રીતે કાર્ય કરી રહ્યા છે.

વિડિયો પ્રકરણો

  • [00:00] પ્રોજેક્ટનો પરિચય
  • [00:28] TM1637 ડિસ્પ્લે માટે કોડ સમજવો
  • [03:04] સેલ્સિયસ અને ફેરનહીટમાં તાપમાન દર્શાવવું
  • [05:06] DHT11 ને TM1637 ડિસ્પ્લે સાથે જોડવું
  • [06:42] તાપમાન ડિસ્પ્લેનું લાઇવ પ્રદર્શન
  • [08:23] નાના ડિસ્પ્લે મોડ્યુલ સાથે પરીક્ષણ
  • [08:35] નિષ્કર્ષ અને પ્રોજેક્ટ સારાંશ

છબીઓ

TM1637 4 digit display module
TM1637 4 digit display module
DHT11 Module
DHT11 Module
Arduino wriing DHT11 PCB module  module with TM1637
Arduino wriing DHT11 PCB module module with TM1637
Arduino wriing DHT11 PCB module  module with TM1637
Arduino wriing DHT11 PCB module module with TM1637
Arduino wriing DHT11 bare module  module with TM1637
Arduino wriing DHT11 bare module module with TM1637
Arduino wriing DHT11 bare module  module with TM1637
Arduino wriing DHT11 bare module module with TM1637
520-Lesson 28: DHT11 Temperature Sensor with TM1637 Display | Arduino Step-by-Step Course
ભાષા: C++
/*
 * Robojax Arduino Step-by-Step Course
 * Lesson 28: DHT11 with TM1637
 * This is the Arduino code for TM1637 4-digit display.
 * 
 * Please watch video instructions here: https://youtu.be/C-1iaCPzNtU
 * This code is available at: http://robojax.com/course1/?vid=lecture11
 * 
 * With over 100 lectures free on YouTube. Watch it here: http://robojax.com/L/?id=338
 * Get the code for the course: http://robojax.com/L/?id=339
 * 
 * Date: December 6, 2017, in Ajax, Ontario, Canada
 * 
 * Original code from: https://github.com/avishorp/TM1637
 * Modified for Robojax video on December 6, 2017
 */
#include <dht11.h>

dht11 DHT11; // create object of DHT11
#define dhtpin 2 // set the pin to connect to DHT11

 // start of settings of TM1637 LED display
#include <Arduino.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3

TM1637Display display(CLK, DIO);
uint8_t blank[] = { 0x0, 0x0, 0x0, 0x0 };// blank value for all digits
 
// The amount of time (in milliseconds) between tests
#define TEST_DELAY   2000
// start of settings of TM1637 LED display



void setup()
{
	//Robojax Step-by-Step Arduino Course YouTube Watch it here: http://robojax.com/L/?id=338
 Serial.begin(9600);// setting up serial monitor
   display.setBrightness(0x0f); 
   
}

void loop()
{
	//Robojax Step-by-Step Arduino Course YouTube Watch it here: http://robojax.com/L/?id=338
DHT11.read(dhtpin);// initialize the reading
  int humidity = DHT11.humidity;// get humidity
//code for Robojax.com video
   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.print("% ");
   Serial.println();
 delay(500);  


  display.setSegments(blank);
  display.showNumberDec(23, false, 2,1);
  delay(TEST_DELAY);
  
  display.setSegments(data);
  display.showNumberDec(153, false, 3, 1);
  delay(TEST_DELAY);

  display.setSegments(data);
  for(int i=0; i<=500; i++)
  {
    display.showNumberDec(i);
  }

}

તમને જોઈતી વસ્તુઓ

સંસાધનો અને સંદર્ભો

ફાઇલો📁

Arduino લાઇબ્રેરીઓ (zip)

Fritzing ફાઇલ

અન્ય ફાઇલો