Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Ši pamoka padės paaiškinti, kaip nustatyti ir naudoti mūsų išmaniųjų namų sistemą naudojant „Matlab“programinę įrangą ir „Raspberry Pi“aparatinę įrangą. Pasibaigus šiai instrukcijai, turėtumėte sugebėti lengvai naudotis mūsų produktu!
1 žingsnis: 1 žingsnis: reikalingos dalys ir medžiagos
- Raspberry Pi
- Duonos lenta (x2)
- PIR judesio jutiklis
- LCD modulis
- LED šviesa
- Kondensatorius
- „Raspberry Pi“fotoaparatas
- Mikro servo variklis
- Dvigubi laidai (20)
2 veiksmas: 2 veiksmas: problemos konstatavimas
Problemos, kurias bando išspręsti mūsų gaminys, yra rankinis šviesos valdymas, patalpų temperatūros valdymas ir energijos vartojimo efektyvumas. Mes sutelkėme dėmesį į energijos kiekį, kurį naudoja vidutinis namas, ir norėjome rasti būdų, kaip sumažinti energijos suvartojimą. Įjungtos šviesos ir nereikalinga termostato temperatūra sunaudoja labai daug nereikalingos energijos. Šviesa bus suaktyvinta ten, kur jie išsijungia, kai kambarys yra laisvas, o termostatas prisitaiko prie aplinkai efektyvios temperatūros, atsižvelgiant į lauko temperatūros rodmenis.
3 veiksmas: 3 žingsnis: judesio jutiklio konfigūravimas
Judesio jutiklis prijungtas prie 3,3 V maitinimo kaiščio, įžeminimo kaiščio ir jūsų pasirinkto skaitmeninio kaiščio. Jie atitinkamai prijungti prie judesio jutiklio VCC, GND ir OUT prievadų. Judesio jutiklis aptiks, kai kas nors yra šalia, ir suaktyvina šviesos diodą, nurodydamas, kad žibintai yra įjungti. Kai judesys nebebus aptinkamas, šviesos diodas pats išsijungs. Kodas yra toks:
kol tiesa
motionDetected = readDigitalPin (rpi, 3);
jei judesysDetected == 1
writeDigitalPin (rpi, 16, 1)
Kitas
writeDigitalPin (rpi, 16, 0)
galas
galas
4 žingsnis: 4 žingsnis: LCD modulio ekranas
Skystųjų kristalų ekranas paima temperatūros duomenis iš tiesioginės informacijos apie orą iš interneto. Tada LCD modulis rodo esamą temperatūros rodmenį. „Matlab“programa nuskaito temperatūrą ir tada eina per „if“ciklą, kad nustatytų, kiek reikia reguliuoti temperatūros nustatymą namuose. Kodas yra toks:
url = 'https://forecast.weather.gov/MapClick.php? lat = 35.9606 & lon = -83.9207 & FcstType = json';
duomenys = žiniatinklio skaitymas (url);
a = data.currentobservation. Temp;
fprintf ('Lauko temperatūra yra %s / n', a)
x = str2num (a);
jei x> 80
fprintf („Pasukite termostatą žemyn 15 laipsnių“)
writeDigitalPin (rpi, 26, 1) %įjungia šviesas
elseif x> 75 && x <80
fprintf ('Išjunkite termostatą / n')
writeDigitalPin (rpi, 26, 1) %įjungia šviesas
kitaip x 55
fprintf ('Pasukite termostatą 10 laipsnių aukštyn / n')
writeDigitalPin (rpi, 26, 0) %išjungia šviesas
kitaip x 45
fprintf ('Pasukite termostatą 20 laipsnių aukštyn / n')
writeDigitalPin (rpi, 26, 0) %išjungia šviesas
kitaip x 40
fprintf ('Pasukite termostatą 25 laipsniais / n')
writeDigitalPin (rpi, 26, 0) %išjungia šviesas
kitaip x 30
fprintf ('Pasukite termostatą 35 laipsniais / n')
Kitas
fprintf ('Pasukite termostatą iki 65 laipsnių / n')
galas
5 žingsnis: 5 žingsnis: variklio servo modulis
„Motor Servo“modulis turi parodyti galimybę atidaryti ir uždaryti žaliuzes. Kai namus reikia atvėsinti, žaliuzės užsidarys, kad į jas patektų mažiau šilumos. Kai namus reikia sušildyti, žaliuzės atsidarys, kad greičiau sušiltų. Servo nusprendžia, ką daryti, gavęs įvestį iš vartotojo, sąveikaujančio su parinkčių meniu. Variklio kodas yra toks:
s = servo (rpi, 3)
writeDigitalPin (rpi, 4, 1)
writePosition (s, 45)
temp_sys = menu ('Kaip jaučiatės?') %temp reguliatorius
jei temp_sys == 1 %karšta
writeDigitalPin (rpi, 26, 1) %įjungia šviesas
writePosition (s, 0) %pasuka variklį CW/CCW
uždarykite žaliuzes, išjunkite šviesą
elseif temp_sys == 2 %šalčio
writeDigitalPin (rpi, 26, 0) %išjungia šviesas
writePosition (s, 180) %pasuka variklį CCW/CW
atidarykite žaliuzes, įjunkite šviesą
elseif temp_sys == 3 %kaip tik
fprintf ('Temperatūros būsenos palaikymas. / n')
galas
6 veiksmas: 6 žingsnis: judesio jutiklio kamera
Judėjimo jutiklio kamera fotografuoja tuos, kurie įeina į kambarį arba išeina iš jo. Mes pasirinkome tai kaip papildomą saugumo funkciją tiems, kuriems įdomu, kas buvo jų namuose. Kai judesio jutiklis aptinka judesį, „Matlab“kodas liepia fotoaparatui fotografuoti ir jį rodyti. Kodas yra toks:
i = 0
skaidrus kumštelis
kamera = kamerų lenta (rpi);
o i == 0
momentinis vaizdas (kumštelis); %skaidrus vaizdo buferis
img = momentinis vaizdas (kumštelis);
imagesc (img);
galas