Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tämä ohje auttaa selittämään Smart Home -järjestelmän käyttöönoton ja käytön Matlab -ohjelmiston ja Raspberry Pi -laitteiston avulla. Tämän ohjeen lopussa sinun pitäisi pystyä käyttämään tuotteitamme helposti helposti!
Vaihe 1: Vaihe 1: Tarvittavat osat ja materiaalit
- Raspberry Pi
- Leipälauta (x2)
- PIR -liiketunnistin
- LCD -moduuli
- LED-valo
- Kondensaattori
- Raspberry Pi -kamera
- Mikro -servomoottori
- Kaksipäiset johdot (20)
Vaihe 2: Vaihe 2: Ongelmailmoitus
Tuotteemme ongelmat ovat manuaalisia valonsäätöjä, sisälämpötilan säätöä ja energiatehokkuutta. Keskityimme keskimääräisen kodin käyttämään energian määrään ja halusimme löytää tapoja vähentää energiankulutusta. Valojen jättäminen päälle ja tarpeettomat termostaatin lämpötilat aiheuttavat erittäin suuren tarpeettoman energiankulutuksen. Valo aktivoituu liikkeeseen, jossa ne sammuvat, kun huone on tyhjä, ja termostaatti sopeutuu ympäristön kannalta tehokkaaseen lämpötilaan ulkolämpötilan lukeman perusteella.
Vaihe 3: Vaihe 3: Liiketunnistimen konfigurointi
Liiketunnistin on kytketty 3,3 V: n virtatappiin, maadoitusnastaan ja valitsemasi digitaaliseen nastaan. Ne on kytketty liiketunnistimen VCC-, GND- ja OUT -portteihin. Liiketunnistin tunnistaa, kun joku on lähellä, ja aktivoi LED -valon, joka osoittaa, että valot ovat päällä. Kun liikettä ei enää havaita, LED sammuu itsestään. Koodi on seuraava:
vaikka totta
motionDetected = readDigitalPin (rpi, 3);
jos liikeDetected == 1
writeDigitalPin (rpi, 16, 1)
muu
writeDigitalPin (rpi, 16, 0)
loppuun
loppuun
Vaihe 4: Vaihe 4: LCD -moduulin näyttö
Nestekidenäyttö ottaa lämpötilatiedot Internetissä olevista live -säätiedoista. LCD -moduuli näyttää sitten nykyisen lämpötilan. Matlabissa lämpötila luetaan ja se menee if -silmukan läpi määrittääkseen, kuinka paljon säätää kodin lämpötila -asetusta. Koodi on seuraava:
url = 'https://forecast.weather.gov/MapClick.php? lat = 35.9606 & lon = -83.9207 & FcstType = json';
data = webread (url);
a = data.currentobservation. Temp;
fprintf ('Ulkolämpötila on %s / n', a)
x = str2num (a);
jos x> 80
fprintf ('Käännä termostaatti alas 15 astetta')
writeDigitalPin (rpi, 26, 1) %sytyttää valot
muuten x> 75 && x <80
fprintf ('Kytke termostaatti pois päältä / n')
writeDigitalPin (rpi, 26, 1) %sytyttää valot
muuten x 55
fprintf ('Käännä termostaattia ylöspäin 10 astetta / n')
writeDigitalPin (rpi, 26, 0) %sammuttaa valot
muuten x 45
fprintf ('Käännä termostaattia 20 astetta ylös / n')
writeDigitalPin (rpi, 26, 0) %sammuttaa valot
muuten x 40
fprintf ('Käännä termostaattia ylöspäin 25 astetta / n')
writeDigitalPin (rpi, 26, 0) %sammuttaa valot
muuten x 30
fprintf ('Käännä termostaattia ylöspäin 35 astetta / n')
muu
fprintf ('Käännä termostaatti jopa 65 astetta / n')
loppuun
Vaihe 5: Vaihe 5: Moottorin servomoduuli
Moottorin servomoduuli edustaa kykyä avata ja sulkea kaihtimet. Kun koti on jäähdytettävä, kaihtimet sulkeutuvat päästämään vähemmän lämpöä. Kun koti on lämmitettävä, kaihtimet avautuvat, jotta se lämpenee nopeammin. Servo päättää, mitä tehdä vastaanottamalla syötteen käyttäjältä, joka on vuorovaikutuksessa vaihtoehtovalikon kanssa. Moottorin koodi on seuraava:
s = servo (rpi, 3)
writeDigitalPin (rpi, 4, 1)
writePosition (s, 45)
temp_sys = menu ("Miltä sinusta tuntuu?") %temp Adjuster
jos temp_sys == 1 %kuuma
writeDigitalPin (rpi, 26, 1) %sytyttää valot
writePosition (s, 0) %kääntää moottorin CW/CCW
sulje kaihtimet, sammuta valot
elseif temp_sys == 2 %kylmä
writeDigitalPin (rpi, 26, 0) %sammuttaa valot
writePosition (s, 180) %kääntää moottoria CCW/CW
avaa kaihtimet, sytytä valot
elseif temp_sys == 3 %juuri sopiva
fprintf ('Lämpötilan tilan ylläpito. / n')
loppuun
Vaihe 6: Vaihe 6: Liiketunnistin
Liikeanturikamera ottaa valokuvan huoneeseen tulleista tai niistä poistuvista. Valitsimme tämän lisäsuojaominaisuudeksi niille, jotka ovat uteliaita siitä, kuka on ollut kotonaan. Kun liiketunnistin havaitsee liikkeen, Matlab -koodi kehottaa kameraa ottamaan kuvan ja näyttämään sen. Koodi on seuraava:
i = 0
kirkas nokka
nokka = kamerapaneeli (rpi);
kun taas i == 0
kuva (nokka); %kirkas kuvapuskuri
img = tilannekuva (nokka);
imagesc (img);
loppuun