Агуулгын хүснэгт:

EF 230: Home System 3000 зааварчилгаа: 4 алхам
EF 230: Home System 3000 зааварчилгаа: 4 алхам

Видео: EF 230: Home System 3000 зааварчилгаа: 4 алхам

Видео: EF 230: Home System 3000 зааварчилгаа: 4 алхам
Видео: Как выбрать сейф для дома? Какой сейф лучше и не дорого... 2024, Долдугаар сарын
Anonim
EF 230: Гэрийн системийн 3000 зааварчилгаа
EF 230: Гэрийн системийн 3000 зааварчилгаа

Home System 3000 нь гэрийн эрчим хүчний үр ашгийг дээшлүүлэх арга замыг харуулах зорилгоор Arduino, температур мэдрэгч, пьезо дуугаруулагч, оптик илрүүлэгч/фототранзистор, servo ашигладаг төхөөрөмж юм.

Алхам 1: Температур мэдрэгч

Температур мэдрэгч
Температур мэдрэгч

· Цахилгаан болон газардуулгын утсаа ажиллуул

талхны тавцангийн хажуу талд байрлах микро хянагч

· Температурын мэдрэгчийг талхны тавцан дээр байрлуулж, холбогдох цахилгаан болон газардуулгын утсыг зохих ёсоор ажиллуулна

· Температур мэдрэгч нь гурван голтой, дунд талын тулгуур нь "А0" портоос урсан утастай болохыг анхаарна уу.

· Температур мэдрэгчийн код:

answer = questdlg ('arduino болон servo эхлэх кодыг ажиллуулна уу', 'хариулт', 'Ok', 'Ok')

prompt = 'Эхлэхийн тулд ямар ч товчлуур дарна уу'

түр зогсоох

prompt1 = 'Хамгийн бага температурыг тохируулах'

x = оролт (мөр 1)

prompt2 = 'Хамгийн их температурыг тохируулах'

y = оролт (хүлээх2)

prompt3 = 'Эхлэхийн тулд ямар ч товчлуур дарна уу'

түр зогсоох

дүрс

h = хөдөлгөөнт шугам;

ax = gca;

ax. YGrid = 'on';

ax. YLim = [65 85];

зогсоох = худал;

startTime = datetime ('одоо');

while ~ зогсоох

% Одоогийн хүчдэлийн утгыг уншина уу

v = унших хүчдэл (a, 'A0');

% Температурыг хүчдэлээс тооцоолох (мэдээллийн хуудсан дээр үндэслэсэн)

TempC = (v - 0.5)*100;

TempF = 9/5*TempC + 32;

% Одоогийн цаг авах

t = datetime ('одоо') - startTime;

% Анимацид оноо нэмэх

нэмэлт цэгүүд (h, datenum (t), TempF)

% Тэнхлэгүүдийг шинэчлэх

ax. XLim = өгөгдөл ([t-секунд (15) t]);

өгөгдлийн сонголт ('x', 'keeplimits')

зурсан

% Зогсоох нөхцлийг шалгана уу

зогсоох = readDigitalPin (a, 'D12');

Алхам 2: Buzzer

Дуу чимээ
Дуу чимээ

· Хэт өндөр эсвэл хэт бага температурын уншилтыг дохио өгөх зориулалттай дуут дохионы утас

· Эерэг баганаас дуугарагчийн эерэг тал руу утас гүйдэггүй

· Үүний оронд дуут дохионы эерэг талаас "11" гэсэн порт руу утас явуулдаг.

Үүнийг дараа нь дуут дохионы байршлыг бичгээр бичсэн код руу залгахад ашиглах болно.

· Дуут дохионы код:

хэрэв TempF> = y бол

disp ('хаалга хаах халуун байна')

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

өөр TempF <= x

disp ('хаалга хаах нь хүйтэн')

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

Төгсгөл

Төгсгөл

Алхам 3: Оптик илрүүлэгч/фототранзистор

Оптик илрүүлэгч/фототранзистор
Оптик илрүүлэгч/фототранзистор

· Энэхүү мэдрэгч нь бусдаас ялгаатай эсэргүүцэгч шаарддаг

· Утсыг залгасны дараа мэдрэгчийн бүх дөрвөн залгуурыг гогцоонд оруулсан эсэхийг шалгаарай

· Мэдрэгч нь гэрлийн өөрчлөлтийг илрүүлж, хөдөлгөөнийг илэрхийлж, оролт болгон бүртгэдэг

· Оптик детектор/фототранзисторын код:

цэвэр a

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

prompt = 'Гэрлийн түвшний босгыг тохируулах'

z = оролт (хүлээх мөр)

lightLevel = 0

lightLevel ~ = -1 байхад

lightLevel = readVoltage (a, 'A1')

хэрэв lightLevel> = z

answer = questdlg ('AC -г өөрчлөхийг хүсч байна уу?', 'Тийм', 'Үгүй')

хариултыг солих

тохиолдолд 'Тийм'

answer2 = questdlg ('АС дээш эсвэл доош эргүүлэх үү?', 'хариу', 'Доош', 'Дээш', 'Дээш')

хариултыг солих 2

"доош" тохиолдол

s = servo (a, 'D10');

өнцгийн хувьд = 0:.1:.5

бичих байрлал (ууд, өнцөг);

current_position = readPosition (s);

current_position = current_position * 180;

servo моторын одоогийн байрлалыг % хэвлэх

fprintf ('Одоогийн байрлал нь %d / n', current_position);

% бага зэрэг хойшлуулах шаардлагатай бөгөөд ингэснээр servo -ийг байрлуулах боломжтой болно

% өнцөг.

түр зогсоох (2);

Төгсгөл

% хөдөлгүүрийг 0 өнцгийн байрлал руу буцаана

бичих байрлал (ууд, 0);

тодорхой s

prompt = 'Үргэлжлүүлэхийн тулд ямар ч товчлуур дарна уу'

questdlg ('AC татгалзсан', 'хариу', 'Ok', 'Ok')

"Дээш" тохиолдол

s = servo (a, 'D10');

өнцгийн хувьд =.5:.1: 1

бичих байрлал (ууд, өнцөг);

current_position = readPosition (s);

current_position = current_position * 180;

servo моторын одоогийн байрлалыг % хэвлэх

fprintf ('Одоогийн байрлал нь %d / n', current_position);

% бага зэрэг хойшлуулах шаардлагатай бөгөөд ингэснээр servo -ийг байрлуулах боломжтой болно

% өнцөг.

түр зогсоох (2);

Төгсгөл

Алхам 4: Servo

Servo
Servo

· Серво нь төлөөлдөг

агааржуулагч бөгөөд хөдөлгөөнийг илрүүлэх оролтын гаралт юм

· Энэ нь эерэг утас, газардуулгын утас, "D9" портоос servo хүртэлх утас шаарддаг

· Серво код:

% хөдөлгүүрийг 0 өнцгийн байрлал руу буцаана

бичих байрлал (ууд, 0);

тодорхой s

prompt = 'Үргэлжлүүлэхийн тулд ямар ч товчлуур дарна уу'

questdlg ('AC ассан', 'хариу', 'Ok', 'Ok')

Төгсгөл

Төгсгөл

түр зогсоох

завсарлага

Төгсгөл

Төгсгөл

*Тусгай тэмдэглэл: servo кодын зарим хэсэг нь оптик илрүүлэгч/фототранзисторын кодтой нэгтгэгдсэн болно.

Зөвлөмж болгож буй: