Casharka 20/31: Muujinta Heerkulka iyo qoyaanka ee DHT11 ee shaashadda LCD
Tushen wuxuu muujinayaa sida loo isku daro dareemaha heerkulka iyo qoyaanka DHT11 ee leh shaashadda LCD1602 ee I2C-ku shaqeeyso si loo abuuro goob kormeerid deegaan oo is haysta. Halkii aad ka akhriyi lahayd xogta dareemaha ee kala duwan ee serial monitor-ka, waxaad baran doontaa inaad ku muujiso akhrinta heerkulka iyo qoyaanka ee tooska ah ee shaashadda 16x2. Mashruucani wuxuu ku habboon yahay dhismaha goob cimilo oo miis ah, kormeeraha aqalka lagu koriyo dhirta, ama ku darista akhrin maxalli ah mashruuc kasta oo otomaatig ah oo guriga ah. Interface-ka I2C wuxuu fududeeyaa fiilooyinka, taasoo ka dhigaysa mashruucan mid la heli karo bilowga iyo ku dar degdeg ah kuwa khibradda leh.
Waa kuwan qaar ka mid ah fikrado wax ku ool ah oo ku saabsan waxaad ku dhisi karto aqoontan:
- Goob cimilo oo miis ah oo muujinaysa xaaladaha qolka hadda jira.
- Shaashad is haysta oo loogu talagalay xayawaan ama dhir lagu koriyo.
- Akhris maxalli ah oo loogu talagalay qolka server-ka ama jawiga shaqada.
- Qayb aasaasi ah oo loogu talagalay nidaam otomaatig ah oo guri oo ka sii adag.
Qalabka iyo Qaybaha
Si aad u dhisto mashruucan, waxaad u baahan doontaa qaybaha soo socda:
- Arduino Uno (ama guddi la jaan qaadaya)
- Shaashadda LCD1602 oo leh module interface-ka I2C
- Dareemaha heerkulka iyo qoyaanka DHT11
- Resistor-ka 4.7kΩ ama 10kΩ ee kor u jiidista (haddii aad isticmaalayso dareeme DHT11 oo qaawan)
- Fiilooyinka jumper-ka
- Breadboard (ikhtiyaar, si loo fududeeyo ku xirnaanshaha)
Fahamka LCD1602 ee I2C
LCD1602 waa shaashad xarfo caadi ah oo leh 16 tiir iyo 2 saf. Module-ka "I2C" ee lagu xidhay dhabarka shaashadda ayaa ah furaha fudaydkeeda. Module-kani wuxuu u beddelaa interface-ka isbarbar yaaca ee LCD-ga interface-ka I2C oo taxane ah, kaas oo u baahan kaliya laba fiilo oo xog ah (SDA iyo SCL) iyo laba koronto (VCC iyo GND). Tani waxay si weyn u yaraynaysaa tirada biinanka loo baahan yahay ee Arduino-gaaga, taasoo ka tagaysa kuwo badan oo loogu talagalay dareemayaasha iyo qalabka kale ee dhaqdhaqaaqa. Module-ku wuxuu kaloo ku darayaa potentiometer yar si loo hagaajiyo iftiinka shaashadda, taas oo muhiim u ah hubinta in qoraalku muuqdo. Cinwaanka I2C ee module-ka waxaa lagu beddeli karaa iyadoo la isticmaalayo jumper-yada yaryar ee birta ah (A0, A1, A2) ee gudaha, taasoo u oggolaanaysa qalab badan oo I2C ah inay isku wada noolaadaan baska isku midka ah.
Hagaha Fiilooyinka
Ku xir qaybaha sida ku cad jaantuska hoose. LCD-ga I2C wuxuu isticmaalaa biinanka I2C ee Arduino-ga, halka dareemaha DHT11 uu isticmaalo biin dhijitaal ah.
LCD1602-I2C:
- VCC ilaa Arduino 5V
- GND ilaa Arduino GND
- SDA ilaa Arduino A4
- SCL ilaa Arduino A5
Dareemaha DHT11:
- VCC (Pin 1) ilaa Arduino 5V
- Data (Pin 2) ilaa Arduino Digital Pin 2 (oo leh resistor-ka 10kΩ ee kor u jiidista ilaa 5V)
- NC (Pin 3) - Ma Xirna
- GND (Pin 4) ilaa Arduino GND
(fiidiyowga 25:16)
Dejinta Maktabadaha
Mashruucani wuxuu u baahan yahay laba maktabadood. Maktabadda Wire.h waa qayb ka mid ah rakibaadda Arduino ee caadiga ah. Waxaad u baahan doontaa inaad ku rakibto maktabadda LiquidCrystal_I2C iyo maktabadda dht11. Fiidiyowgu wuxuu muujinayaa sida loo rakibo. Waxaad ka soo dejisan kartaa maktabadaha linkiyada lagu sheegay sharaxaadda fiidiyowga ama website-ka Robojax. Markaad soo dejiso, waxaad ku rakibi kartaa iyada oo loo marayo Arduino IDE adiga oo u gudbaya Sketch > Include Library > Add .ZIP Library... oo dooranaya faylasha la soo dejiyay. (fiidiyowga 06:16)
Helitaanka Cinwaanka I2C ee LCD-gaaga
Ka hor intaadan isticmaalin shaashadda, waa inaad go'aamisaa cinwaankeeda I2C. Cinwaanka ugu caansan waa 0x27 ama 0x3F, laakiin wuu kala duwanaan karaa. Si aad u hesho, waxaad isticmaali kartaa sketch-ka scanner-ka I2C. Tani waa barnaamij fudud oo baara baska I2C oo warbaahinaya cinwaan kasta oo uu helo ilaa Serial Monitor-ka. Soo geli koodhka scanner-ka, fur Serial Monitor-ka 9600 baud, wuxuuna muujin doonaa cinwaanka LCD-gaaga. (fiidiyowga 08:11)
Sharaxaadda Koodhka
Qaybtani waxay sharaxaysaa qaybaha muhiimka ah ee koodhka ee isticmaaluhu beddeli karo. Barnaamijka oo dhammaystiran ayaa laga heli karaa hoosta maqaalka.
Koodhku wuxuu ku bilaabmaa inuu ku daro maktabadaha lagama maarmaanka ah oo uu qeexo biinanka iyo walxaha la isticmaalo.
// faylka madaxa ee GetHub: https://github.com/adidax/dht11
#include <dht11.h>
dht11 DHT11; // abuur shay DHT11
#define dhtpin 2 // dejiso biinka lagu xiro DHT11
// bilowga dejinta LCD1602-I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Deji cinwaanka LCD-ga ilaa 0x3F oo loogu talagalay 16 xaraf iyo 2 saf
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// dhamaadka dejinta LCD1602-I2C
Kuwani waa sadarrada ugu muhiimsan ee lagu habeeyo qaabkaaga:
#define dhtpin 2: Tani waxay qeexaysaa biinka Arduino ee ku xiran biinka xogta dareemaha DHT11. Beddel lambarka2haddii aad isticmaasho biin ka duwan.LiquidCrystal_I2C lcd(0x3F, 16, 2);: Sadarkan wuxuu abuuraa shayga LCD-ga. Halbeegga koowaad,0x3F, waa cinwaanka I2C ee aad ka heshay tillaabadii hore.16iyo2waxay qeexayaan tirada tiirarka iyo safafka shaashaddaada. Cusbooneysii cinwaanka haddii scanner-kaagu uu helay mid ka duwan (tusaale,0x27).
Koodku waxa uu isticmaalaa shaqo gaar ah, getTemp(), si uu u akhriyo heerkulka oo ugu beddelo cutubyo kala duwan. Tani waa astaamo awood leh oo ka dhigaysa koodka mid dib loo isticmaali karo codsiyada kala duwan.
float getTemp(char type) {
float temp = (float)DHT11.temperature;//hel heerkulka
if(type =='F')
{
return temp * 1.8 + 32;// u beddel Fahrenheit
}else if(type =='K')
{
return temp + 274.15;// u beddel Kelvin
}else{
return temp;
}
}
Si aad u isticmaasho shaqadan, waxaad u wacdaa iyada oo la raacayo xaraf keliya oo matalaya cutubka la doonayo. Tusaale ahaan, getTemp('C') waxay soo celisaa heerkulka Celsius, getTemp('F') waxay soo celisaa Fahrenheit, iyo getTemp('K') waxay soo celisaa Kelvin. Shaqadu waxay akhridaa heerkulka ceyriinka ah ee ka yimaada dareemaha DHT11 waxayna adeegsataa qaacidada beddelka ee lagama maarmaanka ah. Tani waxay kuu ogolaaneysaa inaad si fudud u beddesho cutubka la muujiyo ee loop() guud iyada oo aan dib loo qorin macnaha akhriska dareemaha. Loop-ka guud wuxuu daabacaa heerkulka iyo qoyaanka LCD-ga isagoo isticmaalaya shaqooyinka lcd.setCursor() iyo lcd.print() si loo xakameeyo meesha qiimaha ay ka soo baxaan shaashadda.
Muujinta Astaanta Degree-ga
Xarrufka caadiga ah ee LCD HD44780 kuma jiro astaan degree ah oo gooni ah (°). Si aad u muujiso, waa inaad isticmaashaa shaqada lcd.write() oo leh qiimaha jajab tobanlaha ah ee xarafka ka yimaada ROM-ka LCD-ga. Astaanta degree-ga, qiimahani waa 223. Koodku wuxuu tan muujinayaa isagoo isticmaalaya lcd.print((char)223); si uu u daabaco astaanta ka dib qiimaha heerkulka. (fiidiyowga 30:16)
Muuujin Tayada Mashruuca
Marka koodka la soo geliyo, shaashadu waxay muujin doontaa farriin bilow ah ka hor inta aan la nadiifin oo la muujin heerkulka iyo qoyaanka hadda jira. Sadarka koowaad ee shaashadda wuxuu muujinayaa qoraalka "LCD1602 DHT11", halka sadarka labaad uu muujinayo heerkulka Celsius, oo ay ku xigto astaanta degree-ga iyo "C", ka dibna heerkulka Fahrenheit, oo ay ku xigto astaanta degree-ga iyo "F". Qiimaha qoyaanka waxaa lagu daabacaa kormeerka serial-ka. Muujinta fiidiyowga waxay tusinaysaa shaashadda oo cusboonaysiineysa nus ilbiriqsi kasta marka dareemaha la qabto, si sax ah u muujinaya xaaladaha jawiga. (fiidiyowga 29:42)
Muujinta danabka ka yimaada potentiometer-ka ee LCD-ga waxaa lagu daboolay Casharka 20/31: Muujinta danabka ee LCD1602.
Isticmaalka isla LCD-ga si loo muujiyo masaafada ka timaadda dareemaha ultrasonic waxaa lagu daboolay Casharka 20/31: Isticmaalka LCD1602 ee Arduino muujinta heerkulka, danabka iyo masaafada | Robojax.
Mashruucyada la xiriira fiidiyowgan
- Casharka 20/31: Isticmaalka LCD1602 ee Arduino muujinta heerkulka, danabka iyo masaafada | Robojax
- Casharka 20/31: Muujinta danabka ee LCD1602
Cutubyada
- [00:00] Hordhaca LCD1602 iyo dulmar mashruuca
- [01:30] Sharaxaadda qalabka LCD1602 iyo module-ka I2C
- [02:47] Hagaajinta kontaroolka shaashadda LCD
- [03:14] Qaabka pin-ka LCD iyo qaabaynta cinwaanka I2C
- [05:28] Jaantuska xiriirinta LCD1602
- [06:16] Rakibaadda maktabadda LiquidCrystal_I2C
- [08:11] Helista cinwaanka I2C ee scanner-ka
- [09:28] Koodka aasaasiga ah si loo daabaco qoraal LCD-ga
- [11:10] Tusaalooyin: cursor-ka iftiimaya iyo xarfo gaar ah
- [13:46] Abuurista iyo isticmaalka xarfaha gaarka ah
- [18:51] Tusaale muujinta serial-ka
- [23:16] Qoraalka wareegaya ee LCD-ga
- [24:36] Isku darka koodka dareemaha DHT11 ee LCD-ga
- [30:16] Muujinta astaanta degree-ga
- [32:03] Ka saarista dhibcaha jajab tobanlaha ee heerkulka
- [33:00] Muujinta danabka ka yimaada potentiometer-ka ee LCD-ga
- [35:56] Muujinta masaafada ka timaadda dareemaha ultrasonic
/*
Lesson 20/31: Displaying Temperature and humidity from DHT11 on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
* This is the Arduino code for DHT11 module to read temperature and humidity
* This code can display temperature in:
* C is used to get Celsius
* F is used to get Fahrenheit
* K is used for Kelvin
* *
* Written by Ahmad Shamshiri for Robojax
* on Jan 04, 2018
* Robojax.com
Please watch video instruction here https://youtu.be/0XMLnCYkvbE
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
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
// header file from GetHub: https://github.com/adidax/dht11
#include <dht11.h>
dht11 DHT11; // create object of DHT11
#define dhtpin 2 // set the pin to connect to DHT11
// start of settings for LCD1602-I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x3F for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// end of settings for LCD1602-I2C
void setup() {
Serial.begin(9600);// setting up serial monitor
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
lcd.clear();
lcd.setCursor (0,0); //
lcd.print("DHT11 Sensor");
delay(2000);
}
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
lcd.clear();// clear previous values from screen
lcd.setCursor (0,0); //character zero, line 1
lcd.print("LCD1602 DHT11"); // print text
// print distance in degrees C
lcd.setCursor (0,1); //character 0, line 2
lcd.print(getTemp('C'));// print Temperature Celsius
lcd.setCursor (4,1); //character 5, line 2
lcd.print((char)223);// print degree
lcd.setCursor (5,1); //character 6, line 2
lcd.print("C");// print C
// print distance degrees F
lcd.setCursor (7,1); //character 8, line 2
lcd.print(getTemp('F'));// print distance in cm
lcd.setCursor (13,1); //character 14, line 2
lcd.print((char)223);// print degree
lcd.setCursor (14,1); //character 16, line 2
lcd.print("F");// print F
//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);
}
/*
* getTemp(char type)
* type character of upper case
* C is used to get Celsius
* F is used to get Fahrenheit
* K is used for Kelvin
*/
float getTemp(char type) {
//Robojax Step By Step Arduino Course YouTube Watch it here http://robojax.com/L/?id=338
float temp = (float)DHT11.temperature;//get temp
if(type =='F')
{
return temp * 1.8 + 32;// convert to Fahrenheit
}else if(type =='K')
{
return temp + 274.15;// convert to Kelvin
}else{
return temp;
}
}
Waad u baahan tahay
-
AmaazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amaazon
-
Amaazon
-
Amaazon
-
Amaazon
Kheyraadka & Tixraacyada
-
DukumentiDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
DibeddaPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Faylasha📁
Arduino Libraries (zip)
-
Koodhka isha ee xirmada barashada 3-in-1 Smart Car ee SunFounder
3in1-kit-main-v2.zip12.80 MB
Buugga Isticmaalaha
-
Buugga isku xirka SunFounder 3-in-1 Arduino Smart CarDokumentigani wuxuu muujinayaa tallaabo tallaabo isku xirka SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB