لومړی ۲۸: د DHT11 تودوخې سینسر د TM1637 ښودونکي سره | د آردوینو ګام په ګام کورس
په دې درس کې د Arduino Step-by-Step کورس څخه، موږ څنګه کولای شو چې یو کمپیکٹ، خپلواک تودوخې نندارې ته جوړ کړو د DHT11 تودوخې او رطوبت سینسر سره د TM1637 4-عددي اووه-برخې نندارې سره یوځای کولو سره. پرځای د سیریل مانیټر باندې تکیه کولو د لوستلو لیدلو لپاره، دا پروژه یو کوچنی، ځان-مشمول واحد جوړوي چې په بصري توګه د شاوخوا تودوخې راپور ورکوي په دواړو سیلسیس او فارنهایټ کې. دا ستاسو د بریښنایی پروژو لپاره د کاروونکي-دوستانه انٹرفیسونو جوړولو لپاره یو بنسټیز مهارت دی، چې معلومات له ډیجیټل نړۍ څخه فزیکي نندارې ته لیږدوي.
دا پروژه د مختلفو غوښتنلیکونو لپاره یو عملي جوړونکی بلاک دی چیرې چې د تودوخې چټک، یو نظر لوستل اړین دي. دلته ځینې نظرونه دي چې تاسو ته الهام درکړي:
- د میز هوا سټیشن: یو کوچنی، تل-فعال نندارې جوړ کړئ ترڅو ستاسو په دفتر یا شوق خونې کې تودوخه وڅارئ.
- د ترموسټاټ مانیټر: یو ځانګړی نندارې جوړ کړئ ترڅو ستاسو د کور د ترموسټاټ یا HVAC وینټ ته نږدې تودوخه تایید کړئ.
- د انکیوبټر یا ټیراریوم ګیج: د ریپټیل ټیراریوم، د نباتاتو د تکثیر خونې، یا DIY انکیوبټر دننه تودوخه وڅارئ پرته له دې چې خلاص یې کړئ.
- د ورکشاپ یا ګراج ترمامیتر: یو روښانه، روښانه نندارې د احتمالي دوړو یا تیاره ورکشاپ کې د تودوخې چک کولو لپاره مناسب دی.
- تعلیمي کټ: د زده کړې لپاره یو غوره پیلونکی پروژه ده چې څنګه د مختلفو ډوله سینسرونو او آوټ پوټ ماډلونو سره د Arduino سره انٹرفیس وکړئ.
اړین هارډویر
د دې پروژې تعقیب لپاره، تاسو به لاندې اجزاوو ته اړتیا ولرئ:
- Arduino Uno (یا هر مطابقت لرونکی بورډ)
- DHT11 تودوخې او رطوبت سینسر (دواړه 3-پن او 4-پن PCB نسخې ښودل شوي)
- TM1637 4-عددي اووه-برخې نندارې ماډل
- بریډبورډ
- جمپر تارونه
د تارونو لارښود
د دې پروژې لپاره تارونه مستقیم دي، چې د سینسر او نندارې دواړو لپاره اړیکو ته اړتیا لري. ویډیو د DHT11 سینسر د دوو مختلفو نسخو او د TM1637 نندارې د دوو اندازو سره ترتیب ښیي، مګر اصلي اړیکې ورته پاتې دي.
دلته د DHT11 سینسر او TM1637 نندارې لپاره تارونه دي، لکه څنګه چې په ویډیو کې تشریح شوي (په ویډیو کې په 05:06).



د 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] پایله او د پروژې لنډیز
/*
* 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);
}
}
هغه شیان چې تاسو ورته اړتیا لرئ
-
ای بی
-
علی ایکسپریسTM1637 4-digit 7-segment display on AliExpresss.click.aliexpress.com
سرچینې او حوالې
-
بهرنیDHT11 library on GitHubgithub.com
-
بهرنیDHT11 Manual (PDF)robojax.com
فایلونه📁
Arduino کتابتونونه (zip)
-
TM1637 Arduino Library
TM1637_library.zip1.36 MB
Fritzing فایل
-
TM1637 Seven Segment module
TM1637.fzpz0.01 MB -
TM1637 4 digit seven segment display
TM1637-1.fzpz0.01 MB
نور فایلونه
-
XY-T01 Relay Timer: DC load wiring
/download/datasheet/robojax_TM1637_datasheet.pdf