Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Deze instructable helpt u uit te leggen hoe u ons Smart Home-systeem kunt instellen en gebruiken met behulp van de Matlab-software en de Raspberry Pi-hardware. Aan het einde van deze instructable zou je ons product met gemak volledig moeten kunnen gebruiken!
Stap 1: Stap 1: Benodigde onderdelen en materialen
- Raspberry Pi
- Broodplank (x2)
- PIR Bewegingssensor
- LCD-module
- LED verlichting
- Condensator
- Raspberry Pi-camera
- Micro servomotor
- Draden met twee uiteinden (20)
Stap 2: Stap 2: Probleemstelling
De problemen die ons product probeert aan te pakken, zijn handmatige lichtregelingen, binnentemperatuurregeling en energie-efficiëntie. We hebben ons gericht op de hoeveelheid energie die het gemiddelde huis verbruikt en we wilden manieren vinden om het energieverbruik te verminderen. Het aan laten staan van lampen en onnodige thermostaattemperaturen zorgen voor een zeer hoog onnodig energieverbruik. Het licht wordt door beweging geactiveerd tot waar het uitgaat wanneer een kamer leeg is, en de thermostaat past zich aan aan een milieuvriendelijke temperatuur op basis van de aflezing van de buitentemperatuur.
Stap 3: Stap 3: Configuratie van bewegingssensor
De bewegingssensor is aangesloten op een 3,3V-voedingspin, grondpin en een digitale pin naar keuze. Ze zijn respectievelijk verbonden met de VCC-, GND- en OUT-poorten op de bewegingssensor. De bewegingssensor detecteert wanneer er iemand in de buurt is en activeert de LED om aan te geven dat de lichten zijn ingeschakeld. Zodra er geen beweging meer wordt gedetecteerd, gaat de LED vanzelf uit. De code is als volgt:
terwijl het waar is
motionDetected = readDigitalPin(rpi, 3);
als beweging gedetecteerd == 1
schrijfDigitalPin(rpi, 16, 1)
anders
schrijfDigitalPin(rpi, 16, 0)
einde
einde
Stap 4: Stap 4: LCD-moduleweergave
Het LCD-scherm haalt de temperatuurgegevens uit de live weersinformatie van internet. De LCD-module geeft vervolgens de huidige temperatuurmeting weer. In Matlab wordt de temperatuur uitgelezen en doorloopt vervolgens een if-lus om te bepalen hoeveel de temperatuurinstelling in huis moet worden aangepast. De code is als volgt:
url='https://forecast.weather.gov/MapClick.php?lat=35.9606&lon=-83.9207&FcstType=json';
data = webbread(url);
a = data.currentobservation. Temp;
fprintf('De buitentemperatuur is %s\n', a)
x = str2num(a);
als x > 80
fprintf('Zet de thermostaat 15 graden lager')
writeDigitalPin(rpi, 26, 1) %zet lichten aan
andersif x > 75 && x < 80
fprintf('Schakel thermostaat uit \n')
writeDigitalPin(rpi, 26, 1) %zet lichten aan
anders x 55
fprintf('Zet de thermostaat 10 graden hoger \n')
writeDigitalPin(rpi, 26, 0) %schakelt lichten uit
anders als x 45
fprintf('Zet de thermostaat 20 graden hoger \n')
writeDigitalPin(rpi, 26, 0) %schakelt lichten uit
anders als x 40
fprintf('Zet de thermostaat 25 graden hoger \n')
writeDigitalPin(rpi, 26, 0) %schakelt lichten uit
anders als x 30
fprintf('Zet de thermostaat 35 graden hoger \n')
anders
fprintf('Draai de thermostaat naar 65 graden \n')
einde
Stap 5: Stap 5: Motorservomodule
De Motor Servo Module staat voor de mogelijkheid om de jaloezieën te openen en te sluiten. Wanneer de woning gekoeld moet worden, gaan de jaloezieën dicht om minder warmte binnen te laten. Als de woning verwarmd moet worden, gaan de jaloezieën open om sneller op te warmen. De servo beslist wat hij moet doen door input te ontvangen van de gebruiker in interactie met een menu met opties. De code voor de motor is als volgt:
s = servo(rpi, 3)
schrijfDigitalPin(rpi, 4, 1)
schrijfPositie(s, 45)
temp_sys = menu('Hoe voel je je?') %temp aanpasser
if temp_sys == 1 %hot
writeDigitalPin(rpi, 26, 1) %zet lichten aan
schrijfpositie(s, 0) % draait motor CW/CCW
sluit de jaloezieën, doe de lichten uit
elseif temp_sys == 2 %koud
writeDigitalPin(rpi, 26, 0) %schakelt lichten uit
schrijfPositie(s, 180) %draait motor CCW/CW
jaloezieën openen, lichten aan
elseif temp_sys == 3% precies goed
fprintf('Temperatuurstatus handhaven.\n')
einde
Stap 6: Stap 6: Bewegingssensor Camera
De bewegingssensorcamera maakt een foto van degenen die een kamer binnenkomen of verlaten. We kozen dit als een extra beveiligingsfunctie voor degenen die nieuwsgierig zijn naar wie er in hun huis is geweest. Wanneer de bewegingssensor beweging detecteert, vertelt de Matlab-code de camera om een afbeelding te maken en deze weer te geven. De code is als volgt:
ik=0
duidelijke camera
cam = camerabord (rpi);
terwijl ik==0
momentopname (camera); % duidelijke beeldbuffer
img = momentopname (camera);
afbeeldingen (img);
einde