Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Denna instruktör hjälper dig att förklara hur du konfigurerar och använder vårt Smart Home System med hjälp av Matlab -programvaran och Raspberry Pi -maskinvaran. I slutet av denna instruerbara, bör du enkelt kunna använda vår produkt helt enkelt!
Steg 1: Steg 1: Nödvändiga delar och material
- Raspberry Pi
- Brödbräda (x2)
- PIR Rörelsesensor
- LCD -modul
- LED-ljus
- Kondensator
- Raspberry Pi -kamera
- Mikro servomotor
- Dubbla trådar (20)
Steg 2: Steg 2: Problemmeddelande
Problemen som vår produkt försöker ta itu med är manuella ljuskontroller, temperaturkontroll inomhus och energieffektivitet. Vi fokuserade på mängden energi som det genomsnittliga hemmet använder och vi ville hitta sätt att minska energianvändningen. Ljus som lyser och onödiga termostattemperaturer står för mycket hög onödig energianvändning. Ljuset kommer att vara rörelseaktiverat till där de stängs av när ett rum är ledigt, och termostaten justerar till en miljöeffektiv temperatur baserat på avläsningen av utomhustemperaturen.
Steg 3: Steg 3: Rörelsessensorkonfiguration
Rörelsesensorn är ansluten till en 3.3V strömstift, jordstift och en digital stift som du väljer. De är anslutna till VCC-, GND- och OUT -portarna på rörelsesensorn. Rörelsesensorn känner av när någon är i närheten och aktiverar lysdioden för att indikera att lamporna är tända. När rörelse inte längre upptäcks stängs lysdioden av. Koden är följande:
medan det är sant
motionDetected = readDigitalPin (rpi, 3);
if motionDetected == 1
writeDigitalPin (rpi, 16, 1)
annan
writeDigitalPin (rpi, 16, 0)
slutet
slutet
Steg 4: Steg 4: LCD -modulskärm
LCD -skärmen tar temperaturdata från information om levande väder från internet. LCD -modulen visar sedan aktuell temperaturavläsning. I Matlab läses temperaturen och går sedan igenom en if -loop för att bestämma hur mycket temperaturinställningen i hemmet ska justeras. Koden är följande:
url = 'https://forecast.weather.gov/MapClick.php? lat = 35.9606 & lon = -83.9207 & FcstType = json';
data = webread (url);
a = data.currentobservation. Temp;
fprintf ('Utetemperaturen är %s / n', a)
x = str2num (a);
om x> 80
fprintf ('Sänk termostaten 15 grader')
writeDigitalPin (rpi, 26, 1) %tänder lampor
annarsif x> 75 && x <80
fprintf ('Stäng av termostaten / n')
writeDigitalPin (rpi, 26, 1) %tänder lampor
annars x 55
fprintf ('Vrid termostaten upp 10 grader / n')
writeDigitalPin (rpi, 26, 0) %släcker lampor
annars x 45
fprintf ('Vrid termostaten upp 20 grader / n')
writeDigitalPin (rpi, 26, 0) %släcker lampor
annarsif x 40
fprintf ('Vrid termostaten upp 25 grader / n')
writeDigitalPin (rpi, 26, 0) %släcker lampor
annars x 30
fprintf ('Vrid termostaten upp 35 grader / n')
annan
fprintf ('Vrid termostaten upp till 65 grader / n')
slutet
Steg 5: Steg 5: Motorservomodul
Motorservomodulen ska representera förmågan att öppna och stänga persiennerna. När hemmet måste kylas stängs persiennerna för att släppa in mindre värme. När hemmet behöver värmas öppnas persiennerna för att värma upp det snabbare. Servon bestämmer vad som ska göras genom att ta emot input från användaren som interagerar med en meny med alternativ. Koden för motorn är följande:
s = servo (rpi, 3)
writeDigitalPin (rpi, 4, 1)
writePosition (s, 45)
temp_sys = meny ('Hur mår du?') %temp justerare
om temp_sys == 1 %het
writeDigitalPin (rpi, 26, 1) %tänder lampor
writePosition (s, 0) %vrider motorn CW/CCW
stäng persienner, släck lampor
elseif temp_sys == 2 %kallt
writeDigitalPin (rpi, 26, 0) %släcker lampor
writePosition (s, 180) %vrider motorn CCW/CW
öppna persienner, tända lampor
elseif temp_sys == 3 %helt rätt
fprintf ('Bibehåller temperaturstatus. / n')
slutet
Steg 6: Steg 6: Rörelsessensor
Rörelsesensorkameran tar ett foto av dem som kommer in eller lämnar ett rum. Vi valde detta som en extra säkerhetsfunktion för dem som är nyfikna på vem som har varit i sitt hem. När rörelsessensorn upptäcker rörelse säger Matlab -koden till kameran att ta en bild och visa den. Koden är följande:
jag = 0
klar kamera
cam = kamerabord (rpi);
medan i == 0
ögonblicksbild (kamera); %klar bildbuffert
img = ögonblicksbild (kamera);
bilderc (img);
slutet