د DHT11، DHT22 د TM1637 ښودونکي او Relay سره وکاروئ ترڅو د AC بار کنټرول کړئ
دا پروژه ښیي چې څنګه د Arduino، DHT11/DHT22 د تودوخې او رطوبت سینسر، د TM1637 ښودونکي، او د AC بار کنټرول لپاره د ریلې په کارولو سره د تودوخې کنټرول شوی سیستم جوړ کړو. دا ترتیب خورا څو اړخیز دی او د مختلفو کارونو لپاره تطبیق کېدای شي. د بېلګې په توګه، تاسو کولی شئ جوړ کړئ:


- د کوچني شنو خونو لپاره یو هوښیار ترموسټاټ، چې د تودوخې لوستلو پر بنسټ په اتوماتيک ډول هیټر یا پنکه تنظیموي.
- یو سیستم چې د کیمیاوي پروسې په مایع کې د تودوخې څارنه او کنټرول کوي.
- د ژویو د احاطې لپاره اتوماتیک د تودوخې کنټرول سیستم.
- د تودوخې فعال شوی الارم سیستم، چې کله یو ټاکلی حد ته ورسیږي نو خبرتیا رامینځته کوي.
سیستم د DHT11 یا DHT22 سینسر څخه د تودوخې او رطوبت اندازه کولو لپاره کار اخلي (په ویډیو کې په 00:11). د TM1637 ښودونکی اوسنۍ تودوخه ښیي (په ویډیو کې په 00:17)، او یو ریلې د مخکې ټاکل شویو تودوخې ترتیباتو پر بنسټ د AC بار (لکه څراغ، پنکه، یا هیټر) چالان یا بندوي (په ویډیو کې په 00:23).
هارډویر/اجزاوې
د دې پروژې د جوړولو لپاره، تاسو به لاندې اجزاوو ته اړتیا ولرئ:
- Arduino Uno (یا مطابقت لرونکی بورډ)
- د DHT11 یا DHT22 تودوخې او رطوبت سینسر (په ویډیو کې په 00:11)
- د TM1637 ښودونکی ماډل (په ویډیو کې په 00:17)
- د ریلې ماډل (په ویډیو کې په 00:19)
- جمپر تارونه
- بریډبورډ
- AC بار (د بېلګې په توګه، یو کوچنی څراغ یا پنکه)
د تارونو لارښود
تارونه وصل کول ساده دي مګر د پروژې د فعالیت لپاره خورا مهم دي. د بصري لارښود لپاره ویډیو ته مراجعه وکړئ.

د تارونو تفصیلي لارښوونې او ډیاګرامونه په ویډیو کې موندل کیدی شي (په ویډیو کې له 02:03 څخه تر 05:18 پورې). د DHT سینسر (په ویډیو کې په 01:44)، د TM1637 ښودونکي (په ویډیو کې په 02:25)، او د ریلې ماډل (په ویډیو کې په 03:37) لپاره اړیکو ته ډیره پاملرنه وکړئ.
د کوډ تشریح
د Arduino کوډ دوه کتابتونونه کاروي: TM1637Display او د DHT سینسر کتابتون. تاسو اړتیا لرئ دا کتابتونونه په Arduino IDE کې نصب کړئ. د کوډ تر ټولو مهم د تنظیم وړ برخې دا دي:
// د ماډل د اړیکو پنونه (ډیجیټل پنونه)
#define CLK 2
#define DIO 3
// د ازموینو ترمنځ وخت (په ملی ثانیو کې)
#define TEST_DELAY 1000
// ****** د TM1637 ښودونکي کوډ پای
#define DHTPIN 9 // هغه ډیجیټل پن چې موږ ورسره وصل یو
#define DHTTYPE DHT22 // DHT 22 (AM2302)، AM2321
#define RELAY 7 // هغه پن چې له ریلې سره وصل دی
د #define بیانونه تاسو ته اجازه درکوي چې د TM1637 ښودونکي (CLK او DIO)، د DHT سینسر (DHTPIN)، او ریلې (RELAY) لپاره د پن ټاکل اسانه بدل کړئ ترڅو ستاسو د تارونو سره سمون ولري. DHTTYPE ټاکي چې تاسو کوم DHT سینسر کاروئ (DHT11 یا DHT22). د TEST_DELAY متغیر د لوستلو ترمنځ وخت کنټرولوي.
د getTemp() فنکشن یو دودیز فنکشن دی چې د DHT سینسر څخه د تودوخې او رطوبت معلوماتو لوستلو لپاره کارول کیږي. دا تاسو ته اجازه درکوي چې د سټرینګ دلیل په لیږلو سره د مختلفو معلوماتو ډولونه (سیلسیس، فارنهایټ، رطوبت، د تودوخې شاخص) غوښتنه وکړئ (په ویډیو کې له 09:01 څخه تر 10:34 پورې). د بېلګې په توګه: getTemp("c") تودوخه په سیلسیس کې بیرته راګرځوي، او getTemp("h") رطوبت بیرته راګرځوي.
if(temp >50 )
{
digitalWrite(RELAY, LOW);
}else{
digitalWrite(RELAY, HIGH);
}
د کوډ دا برخه د تودوخې پر بنسټ ریلې کنټرولوي. د محرک نقطې تنظیمولو لپاره د حد ارزښت (په دې مثال کې 50) بدل کړئ (په ویډیو کې له 09:44 څخه تر 10:11 پورې).
ژوندۍ پروژه/مظاهره
د پروژې بشپړه مظاهره په ویډیو کې شتون لري (په ویډیو کې له 00:51 څخه تر 01:07 پورې). ویډیو سیستم په عمل کې ښیي، د TM1637 ښودونکي باندې تودوخه ښیي او د تودوخې لوستلو پر بنسټ AC بار کنټرولوي.
فصلونه
- [00:06] پیژندنه او د پروژې کتنه
- [01:12] د کوډ شتون او اضافي سرچینې
- [01:44] د DHT سینسر تارونه
- [02:25] د TM1637 ښودونکي تارونه
- [02:50] د AC بار او ریلې تارونه
- [04:33] د ریلې پن او بریښنا اړیکې
- [05:29] د کتابتون نصبول
- [05:52] د کوډ تشریح: د TM1637 برخه
- [06:47] د کوډ تشریح: د DHT برخه
- [07:50] د کوډ تشریح: ریلې او ترتیب
- [08:26] د کوډ تشریح: لوپ او د تودوخې کنټرول
- [10:12] د getTemp() فنکشن تشریح
/*
* Original code from TM1637 https://github.com/avishorp/TM1637
* Original code and library for DHT22 https://github.com/adafruit/DHT-sensor-library
* Watch the video for this code https://youtu.be/xD8wHXDzLkQ
* Other Arduino library and videos https://robojax.com
*/
/*
* Modified for Robojax video on January 10, 2018
* by Ahmad Nejrabi, in Ajax, Ontario, Canada
*/
// ****** Start of TM1637 Display code
#include <Arduino.h>
#include <TM1637Display.h>
// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
// The amount of time (in milliseconds) between tests
#define TEST_DELAY 1000
TM1637Display display(CLK, DIO);
// ****** end of TM1637 Display code
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
// updated by Ahmad for Robojax.com videos.
// on January 10, 2018 in Ajax, Ontario, Canada
// ****** Start of DHT code
#include "DHT.h"
#define DHTPIN 9 // what digital pin we're connected to
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
// ********** end of DHT22 code
#define RELAY 7 // the pin connected to relay
void setup()
{
Serial.begin(9600);
Serial.println("DHT22 Robojax Test with Display");
pinMode(RELAY,OUTPUT);// set RELAY pin as output
dht.begin();
}
void loop()
{
delay(TEST_DELAY);// wait
// **** TM1637 code start
display.setBrightness(0x0f);// set brightness
uint8_t data[] = { 0x0, 0x0, 0x0, 0x0 };// clear display values
display.setSegments(data);//clear display
// **** TM1637 code end
// Robojax.com test video
Serial.println(getTemp("c"));
int temp = round(getTemp("c"));
display.showNumberDec(temp, false, 3,1);
if(temp >50 )
{
digitalWrite(RELAY, LOW);
}else{
digitalWrite(RELAY, HIGH);
}
}// loop end
/*
* getTemp(String req)
* returns the temperature related parameters
* req is string request
* getTemp("c") will return temperature in Celsius
* getTemp("hic") will return heat index in Celsius
* getTemp("f") will return temperature in Fahrenheit
* getTemp("hif") will return temperature in Fahrenheit
* getTemp("h") will return humidity
*/
float getTemp(String req)
{
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return 0.0;
}
// Compute heat index in Kelvin
float k = t + 273.15;
if(req =="c"){
return t;//return Celsius
}else if(req =="f"){
return f;// return Fahrenheit
}else if(req =="h"){
return h;// return humidity
}else if(req =="hif"){
return hif;// return heat index in Fahrenheit
}else if(req =="hic"){
return hic;// return heat index in Celsius
}else if(req =="k"){
return k;// return temperature in Kelvin
}else{
return 0.000;// if no request found, return 0.000
}
}
هغه شیان چې تاسو ورته اړتیا لرئ
-
امازونDHT22 from Amazonamzn.to
-
امازونPurchase DHT11 from Amazonamzn.to
-
ای بیDHT22 from eBayebay.us
-
علی ایکسپریسDHT11 and DHT22 from AliExpressamzn.to
-
علی ایکسپریسPurchase AM2302, DHT11, or DHT22 sensor from AliExpresss.click.aliexpress.com
-
بنګګوډPurchase DHT11 module from Banggoodbanggood.com
-
بنګګوډPurchase DHT22 module from Banggoodbanggood.com
سرچینې او حوالې
-
بهرنیDHT11 Manual (PDF)robojax.com
فایلونه📁
Arduino کتابتونونه (zip)
-
DHT22 Arduino Library
robojax-DHT22_library.zip0.01 MB -
TM1637 Arduino Library
TM1637_library.zip1.36 MB -
DHT22 PCB module red
DHT22-module-red.fzpz0.01 MB
Fritzing فایل
-
Temperature Sensor DHT11
Temperature Sensor DHT11.fzpz0.01 MB -
DHT22 Humidity and Temperature Sensor
DHT22 Humidity and Temperature Sensor.fzpz0.01 MB -
DHT22 PCB module red
DHT22-module-red.fzpz0.01 MB -
TM1637 Seven Segment module
TM1637.fzpz0.01 MB -
TM1637 4 digit seven segment display
TM1637-1.fzpz0.01 MB -
5V Relay Module_LOW_trigger
5V Relay Module_LOW_trigger.fzpz0.08 MB -
5V RELAY 2.0
5V RELAY 2.0.fzpz0.02 MB
د کارونکي لارښود
-
DHT11 User's Manual
robojax-DHT11_manual.pdf0.82 MB -
DHT22 Temperature and Humidity sensor user's manual
robojax-DHT22_manual.pdf0.36 MB
نور فایلونه
-
DHT22 User's manual
robojax-DHT22_manual.pdf