Lilo DHT11, DHT22 pẹlu ifihan TM1637 ati Relay lati ṣakoso ẹrù AC
Iṣẹ́ yìí ṣàfihàn bí a ṣe lè kọ́ ètò ìṣàkóso ìwọ̀n-otútù nípa lílo Arduino, DHT11/DHT22 sẹ́ńsò ìwọ̀n-otútù àti ọ̀rinrin, àfihàn TM1637, àti relay láti ṣàkóso ẹrù AC. Ìtòlẹ́ yìí wúlò ní ọ̀pọ̀lọpọ̀ ọ̀nà, a sì lè yí i padà fún oríṣiríṣi ètò. Fún àpẹẹrẹ, o lè kọ́:


- Thermostat ọlọ́gbọ́n fún ilé-ọ̀gbìn kékeré, tí ó máa ṣàtúnṣe ẹ̀rọ amúgbáwọ́n tàbí afẹ́fẹ́ nípa lílo àwọn ìwọ̀n-otútù.
- Ètò láti ṣèmójútó àti ṣàkóso ìwọ̀n-otútù omi nínú ìlànà kẹ́míkà.
- Ètò ìṣàkóso ìwọ̀n-otútù aláìṣẹ́ fún ibùgbé ẹran-ẹ̀dá tí ń ràkọ̀.
- Ètò ìtànìtì tí ìwọ̀n-otútù ń mú ṣiṣẹ́, tí ó máa ru ìkìlọ̀ nígbà tí ìwọ̀n kan bá dé.
Ètò náà ń lo sẹ́ńsò DHT11 tàbí DHT22 láti wọn ìwọ̀n-otútù àti ọ̀rinrin (nínú fídíò ní 00:11). Àfihàn TM1637 ń fi ìwọ̀n-otútù tí ó wà lọ́wọ́ hàn (nínú fídíò ní 00:17), relay sì ń yí ẹrù AC (bíi ina, afẹ́fẹ́, tàbí amúgbáwọ́n) sí tàbí kúrò nípa lílo àwọn ètò ìwọ̀n-otútù tí a ti yàn tẹ́lẹ̀ (nínú fídíò ní 00:23).
Ohun-èlù / Àwọn Ẹ̀yà
Láti kọ́ iṣẹ́ yìí, o ní láti ní àwọn ẹ̀yà wọ̀nyí:
- Arduino Uno (tàbí bọ́ọ̀dù tí ó bá mu)
- Sẹ́ńsò Ìwọ̀n-otútù àti Ọ̀rinrin DHT11 tàbí DHT22 (nínú fídíò ní 00:11)
- Àfihàn TM1637 (nínú fídíò ní 00:17)
- Relay Module (nínú fídíò ní 00:19)
- Àwọn Wáyà Jumper
- Breadboard
- Ẹrù AC (bíi ina kékeré tàbí afẹ́fẹ́)
Ìtọ́sọ́nà Ìsopọ̀ Wáyà
Ìsopọ̀ wáyà náà rọrùn ṣùgbọ́n ó ṣe pàtàkì fún iṣẹ́ àwọn ètò náà. Wo fídíò náà fún ìtọ́sọ́nà ojú-ìwòye.

Àwọn ìtọ́sọ́nà ìsopọ̀ wáyà àti àwòrán alápẹ̀rẹ́ wà nínú fídíò náà (nínú fídíò ní 02:03 sí 05:18). Kíyèsi pàtàkì sí àwọn ìsopọ̀ fún sẹ́ńsò DHT (nínú fídíò ní 01:44), àfihàn TM1637 (nínú fídíò ní 02:25), àti relay module (nínú fídíò ní 03:37).
Àlàyé Kóòdù
Kóòdù Arduino náà ń lo àwọn ilé-ìkàwé méjì: TM1637Display àti ilé-ìkàwé sẹ́ńsò DHT. O ní láti fi àwọn ilé-ìkàwé wọ̀nyí sínú Arduino IDE. Àwọn apá tí a lè ṣàtúnṣe pàtàkì jùlọ nínú kóòdù náà ni:
// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
// The amount of time (in milliseconds) between tests
#define TEST_DELAY 1000
// ****** end of TM1637 Display code
#define DHTPIN 9 // what digital pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
#define RELAY 7 // the pin connected to relay
Àwọn gbólóhùn #define jẹ́ kí o lè yí àwọn ìyàn pin fún àfihàn TM1637 (CLK àti DIO), sẹ́ńsò DHT (DHTPIN), àti relay (RELAY) padà ní rọrùn láti bá ìsopọ̀ wáyà rẹ mu. DHTTYPE ń ṣàlàyé irú sẹ́ńsò DHT tí o ń lò (DHT11 tàbí DHT22). Àwọn TEST_DELAY ń ṣàkóso àkókò láàárín àwọn ìwọ̀n.
Ìṣiṣẹ́ getTemp() jẹ́ ìṣiṣẹ́ àdáni tí a ń lò láti ka àwọn ìwọ̀n-otútù àti ọ̀rinrin láti ọ̀dọ̀ sẹ́ńsò DHT. Ó jẹ́ kí o béèrè fún oríṣiríṣi irú dídáta (Celsius, Fahrenheit, ọ̀rinrin, heat index) nípa gbígbé àríyànjiyàn okùn (nínú fídíò ní 09:01 sí 10:34). Fún àpẹẹrẹ: getTemp("c") ń dá ìwọ̀n-otútù ní Celsius padà, getTemp("h") sì ń dá ọ̀rinrin padà.
if(temp >50 )
{
digitalWrite(RELAY, LOW);
}else{
digitalWrite(RELAY, HIGH);
}
Apá kóòdù yìí ń ṣàkóso relay nípa lílo ìwọ̀n-otútù. Yí iye ààlà náà padà (50 nínú àpẹẹrẹ yìí) láti ṣàtúnṣe ibi tí ó ti ń bẹ̀rẹ̀ (nínú fídíò ní 09:44 sí 10:11).
Ìṣàfihàn Iṣẹ́ / Ìfihàn
Ìṣàfihàn kíkún ti iṣẹ́ náà wà nínú fídíò (nínú fídíò ní 00:51 sí 01:07). Fídíò náà ń fi ètò náà ṣiṣẹ́ hàn, tí ó ń fi ìwọ̀n-otútù hàn lórí àfihàn TM1637 àti tí ó ń ṣàkóso ẹrù AC nípa lílo àwọn ìwọ̀n-otútù.
Àwọn Orí-ọ̀rọ̀
- [00:06] Ìfihàn àti Àkópọ̀ Iṣẹ́
- [01:12] Wíwà Kóòdù àti Àwọn Ohun-èlù Àfikún
- [01:44] Ìsopọ̀ Wáyà Sẹ́ńsò DHT
- [02:25] Ìsopọ̀ Wáyà Àfihàn TM1637
- [02:50] Ìsopọ̀ Wáyà Ẹrù AC àti Relay
- [04:33] Pin Relay àti Àwọn Ìsopọ̀ Agbára
- [05:29] Fífi Ilé-ìkàwé Sínú
- [05:52] Àlàyé Kóòdù: Apá TM1637
- [06:47] Àlàyé Kóòdù: Apá DHT
- [07:50] Àlàyé Kóòdù: Relay àti Ìtòlẹ́
- [08:26] Àlàyé Kóòdù: Loop àti Ìṣàkóso Ìwọ̀n-otútù
- [10:12] Àlàyé Ìṣiṣẹ́ 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
}
}
Ohun ti o le nilo
-
AmazonDHT22 from Amazonamzn.to
-
AmazonPurchase DHT11 from Amazonamzn.to
-
eBayDHT22 from eBayebay.us
-
AliExpressDHT11 and DHT22 from AliExpressamzn.to
-
AliExpressPurchase AM2302 or DHT11 or DHT22 sensor from AliExpresss.click.aliexpress.com
-
BanggoodPurchase DHT11 module from Banggoodbanggood.com
-
BanggoodPurchase DHT22 module from Banggoodbanggood.com
Orisun & itọkasi
-
Ita gbangbaDHT11 Manual (PDF)robojax.com
Fáìlìs📁
Awọn ile-ikawe 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
Fayile 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
Iwe Itọsọna Olumulo
-
DHT11 Itọsọna Olumulo
robojax-DHT11_manual.pdf0.82 MB -
DHT22 Temperature and Humidity sensor user's manual
robojax-DHT22_manual.pdf0.36 MB
Awọn faili miiran
-
DHT22 User's manual
robojax-DHT22_manual.pdf