Tafuta Msimbo

Somo la 28: Kihisi cha Joto DHT11 na Onyesho la TM1637 | Kozi ya Arduino Hatua kwa Hatua

Somo la 28: Kihisi cha Joto DHT11 na Onyesho la TM1637 | Kozi ya Arduino Hatua kwa Hatua

Katika somo hili kutoka kwenye Kozi ya Arduino Hatua kwa Hatua, tunachunguza jinsi ya kuunda kionyeshi cha joto cha kusimama pekee, cha kompakt kwa kuchanganya kihisi cha joto na unyevu cha DHT11 na kionyeshi cha TM1637 cha tarakimu nne za sehemu saba. Badala ya kutegemea mfuatiliaji wa serial kuona usomaji, mradi huu unajenga kitengo kidogo, cha kujitosheleza kinachoripoti joto la mazingira kwa Selsiasi na Fahrenheit. Hii ni ujuzi wa msingi wa kuunda violesura rafiki kwa miradi yako ya elektroniki, kuhamisha data kutoka ulimwengu wa dijiti hadi kionyeshi halisi.

Mradi huu ni msingi wa vitendo kwa matumizi mbalimbali ambapo usomaji wa joto wa haraka, wa mtazamo mmoja unahitajika. Hapa kuna mawazo machache ya kukutia hamasa:

  • Kituo cha Hali ya Hewa cha Dawati: Jenga kionyeshi kidogo, cha kuwashwa kila wakati cha kufuatilia joto katika ofisi yako au chumba cha burudani.
  • Kifuatiliaji cha Thermostat: Unda kionyeshi maalum cha kuthibitisha joto karibu na thermostat ya nyumba yako au tundu la HVAC.
  • Kipimo cha Incubator au Terrarium: Fuatilia joto ndani ya terrarium ya wanyama watambaao, chumba cha kuotesha mimea, au incubator ya DIY bila kuifungua.
  • Kipima joto cha Warsha au Gereji: Kionyeshi wazi, chenye mwanga ni bora kwa kuangalia joto katika warsha yenye vumbi au mwanga hafifu.
  • Kifurushi cha Kielimu: Mradi bora wa kuanzia kwa kujifunza jinsi ya kuunganisha aina tofauti za sensorer na moduli za pato na Arduino.

Vifaa Vinavyohitajika

Ili kufuata mradi huu, utahitaji vifaa vifuatavyo:

  • Arduino Uno (au bodi yoyote inayooana)
  • Kihisi cha Joto na Unyevu cha DHT11 (matoleo ya PCB ya pini 3 na 4 yanaonyeshwa)
  • Moduli ya Kionyeshi cha TM1637 cha Tarakimu Nne za Sehemu Saba
  • Breadboard
  • Waya za Kurukia

Mwongozo wa Uunganishaji

Uunganishaji wa mradi huu ni rahisi, unahitaji miunganisho kwa kihisi na kionyeshi. Video inaonyesha usanidi na matoleo mawili tofauti ya kihisi cha DHT11 na ukubwa mbili za kionyeshi cha TM1637, lakini miunganisho ya msingi inabaki sawa.

Hapa kuna uunganishaji wa kihisi cha DHT11 na kionyeshi cha TM1637, kama ilivyoelezwa kwenye video (katika video saa 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

Kwa moduli ya kionyeshi cha TM1637, miunganisho ni kama ifuatavyo:

  • VCC hadi 5V kwenye Arduino.
  • GND hadi GND kwenye Arduino.
  • CLK (Clock) hadi pini ya dijiti, kwa mfano, D2.
  • DIO (Data Input/Output) hadi pini nyingine ya dijiti, kwa mfano, D3.

Kwa kihisi cha DHT11, miunganisho ni:

  • VCC (au pini ya +) hadi 5V.
  • GND (au pini ya -) hadi GND.
  • Data (au pini ya S) hadi pini ya dijiti, kwa mfano, D2. (Kumbuka: Katika video, pini ya data ya kihisi imeunganishwa kwenye pini 2, lakini sehemu ya msimbo inaionyesha kwenye pini 2 pia. Pini za CLK na DIO za kionyeshi ziko kwenye pini 2 na 3 katika sehemu ya msimbo, ambayo ni mgongano. Nakala ya video inataja pini 5 na 6 kwa kionyeshi, kwa hiyo tutatumia hizo ili kuepuka mwingiliano wowote.)

Tafadhali kumbuka: Nakala na sehemu ya msimbo zinaonyesha mgongano wa pini unaowezekana. Msimbo unafafanua pini ya data ya DHT11 na pini ya CLK ya TM1637 zote kwenye pini ya dijiti 2. Ili kuepuka hili, inapendekezwa kutumia pini tofauti, kama vile kuunganisha DHT11 kwenye pini 2 na CLK ya TM1637 kwenye pini 5 na DIO kwenye pini 6, kama ilivyotajwa kwenye video.

Maelezo ya Msimbo

Msimbo wa mradi huu unachanganya maktaba za kihisi cha DHT11 na kionyeshi cha TM1637. Sehemu muhimu zinazoweza kubadilishwa na mtumiaji ni ufafanuzi wa pini na mpangilio wa mwangaza wa kionyeshi. Unaweza kuzibadilisha ili kuendana na uunganishaji wako maalum na mapendeleo yako.

Kwanza, pini ya data ya kihisi cha DHT11 inafafanuliwa. Unaweza kubadilisha nambari hii ikiwa umeunganisha kihisi kwenye pini tofauti ya dijiti kwenye Arduino yako.

#define dhtpin 2 // weka pini ya kuunganisha DHT11

Ifuatayo, pini za moduli ya kionyeshi cha TM1637 zinafafanuliwa. Pini ya CLK ni ya ishara ya saa na pini ya DIO ni ya data. Hizi lazima zilingane na uunganishaji wako halisi.

// Pini za uunganishaji wa moduli (Pini za Dijiti)
#define CLK 5
#define DIO 6

Kisha, kitu cha darasa la TM1637Display kinaundwa, ambacho kinachukua nambari za pini za CLK na DIO kama hoja. Kitu hiki kinatoa kazi zote zinazohitajika kudhibiti kionyeshi.

TM1637Display display(CLK, DIO);

Mwangaza wa kionyeshi umewekwa katika kazi ya setup(). Thamani 0x0f inawakilisha mwangaza wa juu zaidi. Unaweza kutumia thamani kutoka 0x00 (imezimwa) hadi 0x0f (kiwango cha juu) kurekebisha kiwango cha mwangaza wa kionyeshi kulingana na mazingira yako.

display.setBrightness(0x0f);

Mantiki kuu katika kazi ya loop() inasoma joto kutoka kwa kihisi cha DHT11 na kuionyesha. Kazi ya showNumberDec() inatumiwa kutuma thamani ya joto kwenye kionyeshi. Vigezo vyake vinakuruhusu kudhibiti jinsi nambari inavyoonyeshwa. Kwa mfano, mstari ufuatao unaonyesha joto kwa Selsiasi, kuanzia tarakimu ya pili (nafasi 1).

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

Katika mfano huu, 23 ni nambari ya kuonyesha, false inamaanisha hakuna zero zinazoongoza, 2 ni idadi ya tarakimu za kutumia, na 1 ni nafasi ya kuanzia (iliyohesabiwa kutoka 0) kwenye kionyeshi.

Maonyesho ya Moja kwa Moja ya Mradi

Katika video, mradi unaonyeshwa moja kwa moja. Mwasilishaji anaonyesha usomaji wa joto kwenye maonyesho makubwa na madogo ya TM1637. Ili kuthibitisha kuwa sensa inafanya kazi, joto hutumiwa kwa DHT11 kwa kutumia bunduki ya joto.

Hapo awali, onyesho linaonyesha joto la chumba kwa Selsiasi na Fahrenheit. Bunduki ya joto inapowasha sensa, unaweza kuona usomaji wa joto ukiongezeka haraka. Maonyesho yanaonyesha joto likipanda kutoka joto la kawaida la chumba hadi zaidi ya 50°C (123°F), ikithibitisha kwamba sensa inasoma mabadiliko ya joto kwa usahihi na onyesho linaonyesha data kwa usahihi. Jaribio hili ni njia nzuri ya kuhakikisha kwamba miunganisho yako yote na msimbo unafanya kazi vizuri.

Sura za Video

  • [00:00] Utangulizi wa mradi
  • [00:28] Kuelewa msimbo wa onyesho la TM1637
  • [03:04] Kuonyesha joto kwa Selsiasi na Fahrenheit
  • [05:06] Kuunganisha DHT11 kwenye onyesho la TM1637
  • [06:42] Maonyesho ya moja kwa moja ya onyesho la joto
  • [08:23] Kujaribu kwa moduli ndogo ya onyesho
  • [08:35] Hitimisho na muhtasari wa mradi

Bilder

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
Språk: 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);
  }

}

Tänker att du kanske behöver

Resurser och referenser

Filer📁

Arduino-bibliotek (zip)

Fritzing-fil

Andra filer