Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
See juhend aitab selgitada, kuidas seadistada ja kasutada meie nutikat kodusüsteemi, kasutades Matlabi tarkvara ja Raspberry Pi riistvara. Selle juhendi lõpus peaksite saama meie toodet hõlpsalt täielikult kasutada!
1. samm: 1. samm: vajalikud osad ja materjalid
- Vaarika Pi
- Leivalaud (x2)
- PIR -liikumisandur
- LCD moodul
- LED valgus
- Kondensaator
- Raspberry Pi kaamera
- Mikroservomootor
- Kahe otsaga juhtmed (20)
2. samm: 2. samm: probleemi avaldus
Probleemid, mida meie toode püüab lahendada, on käsitsi valguse juhtimine, sisetemperatuuri reguleerimine ja energiatõhusus. Keskendusime energiakogusele, mida keskmine kodu kasutab, ja tahtsime leida võimalusi energiakasutuse vähendamiseks. Tulede sisselülitamine ja termostaadi ebavajalikud temperatuurid põhjustavad tarbetut energiat väga palju. Valgus aktiveeritakse liikumisel sinna, kus need ruumi väljalülitamisel välja lülituvad, ja termostaat kohandub välistemperatuuri näidu põhjal keskkonnasäästlikule temperatuurile.
3. samm: 3. samm: liikumisanduri seadistamine
Liikumisandur on ühendatud teie valitud 3.3V toitepistiku, maanduspistiku ja digitaalse kontaktiga. Need on ühendatud vastavalt liikumisanduri VCC, GND ja OUT portidega. Liikumisandur tuvastab, kui keegi on lähedal, ja aktiveerib valgusdioodi, mis näitab, et tuled on sisse lülitatud. Kui liikumist enam ei tuvastata, lülitub LED ise välja. Kood on järgmine:
kuigi tõsi
motionDetected = readDigitalPin (rpi, 3);
kui motionDetected == 1
writeDigitalPin (rpi, 16, 1)
muidu
writeDigitalPin (rpi, 16, 0)
lõpp
lõpp
4. samm: 4. samm: LCD -mooduli kuva
Vedelkristallekraan võtab temperatuuriandmed Internetist saadava reaalajas ilmateabe põhjal. Seejärel kuvab LCD -moodul praeguse temperatuuri näidu. Matlabis loetakse temperatuuri ja see läbib if -tsükli, et määrata, kui palju kodus temperatuuri seadistust reguleerida. Kood on järgmine:
url = 'https://forecast.weather.gov/MapClick.php? lat = 35.9606 & lon = -83.9207 & FcstType = json';
andmed = veebilugemine (url);
a = data.currentobservation. Temp;
fprintf ('Välistemperatuur on %s / n', a)
x = str2num (a);
kui x> 80
fprintf ('Keera termostaat 15 kraadi alla')
writeDigitalPin (rpi, 26, 1) %lülitab tuled sisse
elseif x> 75 && x <80
fprintf ('Lülita termostaat välja / n')
writeDigitalPin (rpi, 26, 1) %lülitab tuled sisse
muidu x 55
fprintf ('Keera termostaat 10 kraadi üles / n')
writeDigitalPin (rpi, 26, 0) %lülitab tuled välja
muidu x 45
fprintf ('Keera termostaati 20 kraadi üles / n')
writeDigitalPin (rpi, 26, 0) %lülitab tuled välja
muidu x 40
fprintf ('Keera termostaat 25 kraadi üles / n')
writeDigitalPin (rpi, 26, 0) %lülitab tuled välja
muidu x 30
fprintf ('Keera termostaat 35 kraadi üles / n')
muidu
fprintf ('Keera termostaat kuni 65 kraadi / n')
lõpp
5. samm: 5. samm: mootori servomoodul
Mootori servomoodul tähistab ruloode avamise ja sulgemise võimalust. Kui kodu tuleb jahutada, sulguvad rulood, et lasta vähem soojust sisse. Kui kodu tuleb soojendada, avanevad rulood, et seda kiiremini soojendada. Servo otsustab, mida teha, saades kasutajalt sisendit valikumenüüga suhtlemisel. Mootori kood on järgmine:
s = servo (rpi, 3)
writeDigitalPin (rpi, 4, 1)
writePosition (s, 45)
temp_sys = menu ('Kuidas sa end tunned?') %temp reguleerija
kui temp_sys == 1 %kuum
writeDigitalPin (rpi, 26, 1) %lülitab tuled sisse
writePosition (s, 0) %pöörab mootori CW/CCW
sulge rulood, lülitage tuled välja
elseif temp_sys == 2 %külm
writeDigitalPin (rpi, 26, 0) %lülitab tuled välja
writePosition (s, 180) %pöörab mootorit CCW/CW
avage rulood, lülitage tuled sisse
elseif temp_sys == 3 %täpselt paras
fprintf ('Temperatuuri säilitamine. / n')
lõpp
6. samm: 6. samm: liikumisanduriga kaamera
Liikumisanduri kaamera pildistab neid, kes sisenevad ruumi või lahkuvad sellest. Valisime selle täiendavaks turvaelemendiks neile, kes on uudishimulikud, kes on nende kodus viibinud. Kui liikumisandur tuvastab liikumise, käsib Matlabi kood kaameral pilti teha ja seda kuvada. Kood on järgmine:
i = 0
selge nukk
nukk = kaameralaud (rpi);
samas i == 0
hetktõmmis (nukk); %selge pildipuhver
img = hetktõmmis (nukk);
imagesc (img);
lõpp