MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
3-LABORATORIYA ISHI
Fan: O’rnatilgan tizimlar
Guruh: 214-20
Bajardi: Abdullayev Shoxrux
Toshkent-2023
Arduino Uno tizimi, o'zida bir nechta kommunikatsiya interfeyslarini ham qabul qiladi. Bu interfeyslar orqali siz, tizimni boshqa qurilmalar bilan bog'lashingiz mumkin. Masalan, siz uni ishlatib, Bluetooth moduliga bog'lanishingiz va tizimda yozgan dasturlarni, Bluetooth orqali boshqa qurilmalarga yuborishingiz mumkin.
Arduino Uno tizimi, o'zida bir nechta kuchli funksiyalarni ham qabul qiladi. Bu funksiyalar orqali siz, tizimda yozgan dasturlarni avtomatik ravishda ishga tushirishingiz mumkin. Masalan, siz uni ishlatib, timer va interrupt funksiyalaridan foydalanishingiz mumkin va ulardan foydalanib, tizimda avtomatik ravishda biror amalni bajarishingiz mumkin.
Arduino Uno tizimi, o'zida bir nechta tilni ham qabul qiladi. Bu tillar orqali siz, tizimda yozgan dasturlarni o'z istalgan tilga tarjima qilishingiz mumkin. Masalan, siz uni ishlatib, Python tilida yozgan dasturlarni tizimda ishga tushirishingiz mumkin.
Arduino Uno tizimi, o'zida bir nechta kitob va onlayn resurslarni ham qabul qiladi. Bu resurslar orqali siz, tizimda yozgan dasturlarni yaxshi tushunishingiz va ularda o'zgarishlar kiritishingiz mumkin. Masalan, siz uni ishlatib, Arduino tilida yozilgan kitoblardan foydalanishingiz mumkin va ulardan foydalanib, tizimda yozgan dasturlarni yaxshi tushunishingiz mumkin.
Arduino Uno tizimi, o'zida bir nechta onlayn jamoalar va forumlarni ham qabul qiladi. Bu jamoalar va forumlar orqali siz, elektronik dasturlash sohasida ko'proq bilim olishingiz va o'z savollaringizga javob topishingiz mumkin. Masalan, siz uni ishlatib, Arduino jamoalariga a'zo bo'lishingiz mumkin va ularda ko'plab savollaringizga javob topishingiz mumkin.
Arduino Uno tizimi, o'zida bir nechta qulayliklarni ham qabul qiladi. Bu qulayliklar orqali siz, tizimni boshqa qurilmalarga bog'lash va ularda ishlashni osonlashtirishingiz mumkin. Masalan, siz uni ishlatib, USB porti orqali tizimni kompyuterga bog'lash va uni boshqa qurilmalarga bog'lashni osonlashtirishingiz mumkin.
Arduino Uno tizimi, elektronik dasturlash sohasida juda kuchli vosita hisoblanadi va uni ishlatish orqali siz, o'z elektronik proyektlaringizni amalga oshirishingiz mumkin.
DHT11 sensori, Arduino tizimida ishlatiladigan eng oddiy temperatur va namlik o'qish sensorlari dan biridir. Ushbu sensor, tizimda harorat va namlikni o'qib olish uchun mo'ljallangan va uni ishlatish juda oson. Sensorning tizimga bog'lanishi juda oson, chunki u faqat 3 ta pin bilan bog'lanadi.
Sensorning VCC piniga 3.5V-5V o'zaro bog'lash kerak, GND piniga esa GNDga bog'lash kerak. DATA piniga esa Arduino tizimining bitta digital pinini bog'lash kerak. Sensorning ma'lumotlarini o'qish uchun, siz uni ishlatib, DHT11 kutubxonasi bibliotekasidan foydalanishingiz mumkin.
DHT11 sensori orqali, siz tizimdagi harorat va namlikni o'qib olishingiz mumkin. Sensor, tizimga analog ma'lumotlar jo'natmaydi, balki digital ma'lumotlar jo'natadi. Shuning uchun, sensorning ma'lumotlarini o'qish uchun siz uni ishlatib, DHT11 kutubxonasi bibliotekasidan foydalanishingiz kerak.
Sensorning ma'lumotlarini o'qishdan tashqari, siz uni ishlatib, harorat va namlikni tahrirlashingiz va ulardan foydalanib, boshqa tizimlar yaratishingiz mumkin. Misol uchun, siz uni ishlatib, o'z tizimingizni yarata olasiz, qurilmani avtomatik ravishda boshqarishingiz mumkin va hokazo.
DHT11 sensori, juda qulay va oson ishlatiladigan sensorlardan biridir. Ushbu sensor orqali siz, tizimda harorat va namlikni o'qib, ulardan ma'lumot olishingiz mumkin. Shuningdek, siz uni ishlatib, harorat va namlikni tahrirlashingiz va ulardan foydalanib, boshqa tizimlar yaratishingiz mumkin.
LCD 16x2 I2C Arduino, Arduino tizimida ishlatiladigan ekranlardan biridir. Ushbu ekran, 16 x 2 satr va harfli ko'rinishi bilan ma'lumotlarni ko'rsatish uchun mo'ljallangan. I2C interfeysi orqali, ekran bilan bog'lanish juda oson va uni ishlatish ham juda oson.
Ekran tizimga bog'lanishi uchun, siz uni ishlatib, I2C interfeysini yordamida bog'lash kerak. Bu interfeys orqali, ekran bilan bog'lanish oson va ma'lumotlar ko'rsatilishi ham oson. Ekran tizimiga bog'lanish uchun, siz uni ishlatib, LCD 16x2 I2C kutubxonasi bibliotekasidan foydalanishingiz mumkin.
Ekran tizimi, Arduino tizimining bitta analog pinini va bitta digital pinini band qiladi. Analog pin, ekran kontrastini o'zgartirish uchun, digital pin esa ekran bilan ma'lumot almashish uchun ishlatiladi.
LCD 16x2 I2C Arduino ekranining foydalanishining boshqa bir qulayligi shundaki, uni ishlatish juda oson. Ekran tizimida ko'rsatiladigan ma'lumotlar, sizning tizimingizning holatini aniqlashda yordam beradi. Misol uchun, siz uni ishlatib, tizimdagi haroratni va boshqa ma'lumotlarni ko'rsatishingiz mumkin.
Bundan tashqari, siz uni ishlatib, tizimda xatoliklarni aniqlashingiz va ulardan xabardor bo'lishingiz mumkin. Ekran tizimida ko'rsatiladigan ma'lumotlar, sizga tizimning holatini aniqlashda yordam beradi va uni boshqarishda yordam beradi.
Shunday qilib, LCD 16x2 I2C Arduino ekranining foydalanishining juda ko'p qulayligi bor. Ushbu ekran orqali, siz tizimdagi ma'lumotlarni ko'rsatishingiz va ulardan foydalanishingiz mumkin. Shuningdek, siz uni ishlatib, tizimda xatoliklarni aniqlashingiz va ulardan xabardor bo'lishingiz mumkin.
#include "DHT.h"
#define DHT11Pin 2
#define DHTType DHT11
//OLED
#include
#include
#include
DHT HT(DHT11Pin,DHTType);
float humi;
float tempC;
float tempF;
//OLED define
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(9600);
//For DHT11
HT.begin();
//For OLED I2C
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display(); //Display logo
delay(1000);
display.clearDisplay();
}
void loop() {
delay(1000);
humi = HT.readHumidity();
tempC = HT.readTemperature();
tempF = HT.readTemperature(true);
Serial.print("Humidity:");
Serial.print(humi,0);
Serial.print("%");
Serial.print(" Temperature:");
Serial.print(tempC,1);
Serial.print("C ~ ");
Serial.print(tempF,1);
Serial.println("F");
display.clearDisplay();
oledDisplayHeader();
oledDisplay(3,5,28,humi,"%");
oledDisplay(2,70,16,tempC,"C");
oledDisplay(2,70,44,tempF,"F");
display.display();
}
void oledDisplayHeader(){
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.print("Humidity");
display.setCursor(60, 0);
display.print("Temperature");
}
void oledDisplay(int size, int x,int y, float value, String unit){
int charLen=12;
int xo=x+charLen*3.2;
int xunit=x+charLen*3.6;
int xval = x;
display.setTextSize(size);
display.setTextColor(WHITE);
if (unit=="%"){
display.setCursor(x, y);
display.print(value,0);
display.print(unit);
} else {
if (value>99){
xval=x;
} else {
xval=x+charLen;
}
display.setCursor(xval, y);
display.print(value,0);
display.drawCircle(xo, y+2, 2, WHITE); // print degree symbols ( )
display.setCursor(xunit, y);
display.print(unit);
}
}
Do'stlaringiz bilan baham: |