Mundarija:

EF 230: Uy tizimi 3000 ko'rsatma: 4 qadam
EF 230: Uy tizimi 3000 ko'rsatma: 4 qadam

Video: EF 230: Uy tizimi 3000 ko'rsatma: 4 qadam

Video: EF 230: Uy tizimi 3000 ko'rsatma: 4 qadam
Video: Мы покинули дом спустя 22 года 🏡 | Экскурсия по дому + Переезд + Поездка в Альберту, Канада 2024, Noyabr
Anonim
EF 230: Uy tizimi 3000 ko'rsatma
EF 230: Uy tizimi 3000 ko'rsatma

Home System 3000 - bu Arduino, harorat sensori, piezo -signal, optik detektor/fototransistor va servo yordamida uy energiya samaradorligini oshirish usullarini aks ettiruvchi qurilma.

1 -qadam: harorat sensori

Harorat sensori
Harorat sensori

· Quvvat va er simlarini ishlating

non taxtasi yonidagi mikrokontroller

· Harorat sezgichini non taxtasiga joylashtiring va shunga mos ravishda quvvat va topraklama simlarini o'tkazing

· E'tibor bering, harorat sensori uchta tishli, o'rta tirgakda esa "A0" portidan o'tadigan sim bor.

· Harorat sensori kodi:

answer = questdlg ('Iltimos, arduino va servo start kodini ishga tushiring', 'javob', 'Ok', 'Ok')

prompt = 'Boshlash uchun istalgan tugmani bosing'

pauza

prompt1 = 'Minimal haroratni o'rnatish'

x = kirish (tezkor1)

prompt2 = 'Maksimal haroratni o'rnatish'

y = kirish (tezkor 2)

prompt3 = 'boshlash uchun istalgan tugmani bosing'

pauza

raqam

h = animatsion chiziq;

ax = gca;

ax. YGrid = 'yoqilgan';

ax. YLim = [65 85];

to'xtatish = noto'g'ri;

startTime = datetime ("hozir");

while ~ stop

% Hozirgi kuchlanish qiymatini o'qing

v = o'qish voltaji (a, 'A0');

% Haroratni kuchlanishdan hisoblang (ma'lumotlar varag'i asosida)

TempC = (v - 0,5)*100;

TempF = 9/5*TempC + 32;

% Joriy vaqtni oling

t = datetime ('hozir') - startTime;

% Animatsiyaga nuqta qo'shing

qo'shilish nuqtalari (h, ma'lumotlar (t), TempF)

% O'qlarini yangilang

ax. XLim = datenum ([t-soniya (15) t]);

ma'lumotlar tanlovi ('x', 'keeplimits')

chizilgan

% To'xtash holatini tekshiring

stop = readDigitalPin (a, 'D12');

2 -qadam: Buzzer

Buzzer
Buzzer

· Pastki yoki yuqori harorat ko'rsatkichlarini bildirish uchun ishlatiladigan signal signal simlari

· Ijobiy ustundan signalning ijobiy tomoniga sim o'tkazilmaydi

· Buning o'rniga, signal signalining ijobiy tarafidan "11" deb nomlangan portga o'tkaziladi.

Bu keyinchalik yozilgan kodda ovozli signal joyini chaqirish uchun ishlatiladi.

· Buzzer kodi:

agar TempF> = y bo'lsa

disp ("eshik yaqin", bu issiq)

playTone (a, 'D11', 500, 1)

boshqa TempF <= x

disp ("eshikni yoping, sovuq")

playTone (a, 'D11', 250, 1)

oxiri

oxiri

3 -qadam: optik detektor/fototransistor

Optik detektor/fototransistor
Optik detektor/fototransistor

· Bu sensor boshqalardan farqli o'laroq qarshilik ko'rsatishni talab qiladi

· Simlarni ulaganingizdan so'ng, datchikning barcha to'rtta tishi halqaga kiritilganligiga ishonch hosil qiling

· Sensor harakatni ifodalovchi yorug'lik o'zgarishini aniqlaydi va uni kirish sifatida qayd qiladi

· Optik detektor/fototransistor kodi:

aniq a

a = arduino ('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Kutubxonalar', 'Servo');

prompt = 'Yorug'lik darajasi chegarasini o'rnatish'

z = kirish (tezkor)

yorug'lik darajasi = 0

lightLevel ~ = -1 bo'lsa

lightLevel = readVoltage (a, 'A1')

agar lightLevel> = z bo'lsa

answer = questdlg ('AC ni o'zgartirmoqchimisiz?', 'Ha', 'Yo'q')

javobni almashtirish

"Ha" holati

answer2 = questdlg ("ACni yuqoriga yoki pastga aylantiring?", "javob", "Pastga", "Yuqoriga", "Yuqoriga")

javobni almashtirish 2

"pastga" holati

s = servo (a, 'D10');

burchak uchun = 0:.1:.5

yozish pozitsiyasi (lar, burchak);

current_position = readPosition (lar);

joriy_pozitsiya = joriy_pozitsiya * 180;

% bosma servo dvigatelning joriy holati

fprintf ('Joriy holat - %d / n', joriy_pozitsiya);

% kichik kechikish talab qilinadi, shunda servo joylashishi mumkin

% burchak aytilgan.

pauza (2);

oxiri

% dvigatelni 0 burchak holatiga qaytaring

yozish pozitsiyasi (lar, 0);

aniq s

prompt = 'Davom etish uchun istalgan tugmani bosing'

questdlg ("AC rad etildi", "javob", "Ok", "Ok")

"yuqoriga" holati

s = servo (a, 'D10');

burchak uchun =.5:.1: 1

yozish pozitsiyasi (lar, burchak);

current_position = readPosition (lar);

joriy_pozitsiya = joriy_pozitsiya * 180;

% bosma servo dvigatelning joriy joylashuvi

fprintf ('Joriy holat - %d / n', joriy_pozitsiya);

servo joylashishi uchun % kichik kechikish kerak

% burchak aytilgan.

pauza (2);

oxiri

4 -qadam: Servo

Servo
Servo

· Servo vakili

konditsioner va harakatni aniqlash kirishining chiqishi

· Buning uchun musbat sim, tuproqli sim va "D9" portidan servoga uzatiladigan sim kerak

· Servo kodi:

% dvigatelni 0 burchak holatiga qaytaring

yozish pozitsiyasi (lar, 0);

aniq s

prompt = 'Davom etish uchun istalgan tugmani bosing'

questdlg ("AC yoqilgan", "javob", "Ok", "Ok")

oxiri

oxiri

pauza

tanaffus

oxiri

oxiri

*Maxsus eslatma: servo kodining bir qismi optik detektor/fototransistor kodi bilan birlashtirilgan.

Tavsiya: