Inhoudsopgave:

Arduino Smart Home-systeem: 7 stappen
Arduino Smart Home-systeem: 7 stappen

Video: Arduino Smart Home-systeem: 7 stappen

Video: Arduino Smart Home-systeem: 7 stappen
Video: Amazing arduino project 2024, November
Anonim
Arduino Smart Home-systeem
Arduino Smart Home-systeem
Arduino Smart Home-systeem
Arduino Smart Home-systeem

In deze Instructable laten we u zien hoe u uw eigen smart home-systeem kunt maken met MATLAB's App Designer met een Sparkfun Red-bord. Deze Instructable kan worden gebruikt om een basisbegrip te krijgen van MATLAB's App Designer, evenals om een fotoresistor, servomotor en een PIR-bewegingssensor te gebruiken.

Stap 1: Om te beginnen: materialen

Dit project vereist de volgende materialen:

- Arduino Uno (voor dit project hebben we een Sparkfun Red-bord gebruikt)

- Een fotoresistor

- Een mini-servomotor

- Eén continue servomotor

- Een PIR-bewegingssensor

- Een temperatuursensor

- 2 LED's

- Draden en weerstanden indien nodig

Stap 2: Stap 2: Het probleem benaderen om op te lossen

Het belangrijkste doel van dit project was om een eenvoudig te gebruiken smart home-systeem te creëren door een Arduino Uno-bord te coderen met MATLAB. We dachten er eerst aan om alleen met een temperatuur- en vochtigheidssensor te werken, maar als we bij die twee sensoren zouden blijven, zou ons smart home-systeem niet gemakkelijk op de markt kunnen worden gebracht voor een algemeen publiek. We besloten dat we een algeheel slim energiesysteem voor thuis wilden creëren dat zou werken als een slimme thermostaat en een beveiligingssysteem. Ten slotte wilden we werken met MATLAB's AppDesigner, zodat de gebruiker het slimme huis gemakkelijk naar eigen wens kan aanpassen.

Stap 3: Stap 3: De GUI en basiscodestroom configureren

Stap 3: De GUI en basiscodestroom configureren
Stap 3: De GUI en basiscodestroom configureren

Om te beginnen moet je MATLABs AppDesigner openen en het volgende plaatsen:

Twee numerieke invoervelden voor invoer van warme en koude drempels

Een knop om de deur te ontgrendelen

En vier indicatielampjes voor de open haard, deur, ventilator en schijnwerper.

Twee labels om met de gebruiker te communiceren.

Voor dit project vonden we het makkelijker om te werken met globale variabelen en de opstartfunctie binnen de ontwerper. U hebt deze variabelen nodig binnen de opstartfunctie:

globaal

a = arduino('COM3', 'uno', 'Bibliotheken', 'Servo'); global s global p global hotUI global coldUI global unlock global temp global curr_temp global int_light

Op dit moment hebben we alleen een opdracht voor de variabele a, zodat je computer de arduino kan lezen. COM3 kan verschillen, afhankelijk van de poort die uw computer gebruikt.

Wanneer u de code uitvoert, begint deze binnen de opstartfunctie met het maken van de globale variabelen en het kalibreren van het systeem. Aan het einde van deze functie is er een timerfunctie die een eigenschap aanroept die we Timer hebben genoemd. Binnen deze Timer-eigenschap hebben we de code ingevoerd die het thuissysteem uitvoert, zodat de timer de kalibratiecode niet opnieuw uitvoert.

Opmerking: we hebben geen bedradingsinstructies voor het systeem gegeven. We hebben verwezen naar de handleiding die bij het SparkFun Red-bord wordt geleverd.

Stap 4: Stap 3: Het thermostaatsysteem instellen

Stap 3: Het thermostaatsysteem instellen
Stap 3: Het thermostaatsysteem instellen
Stap 3: Het thermostaatsysteem instellen
Stap 3: Het thermostaatsysteem instellen

De functie voor de thermostaat werkt als volgt:

De gebruiker geeft aan welke temperatuur hij of zij te warm of te koud vindt. Zodra de thermometer meet en het huis te koud is, gaat de "open haard" (een rode LED) aan en verwarmt het huis. Als het huis te warm is, zal een "ventilator" (continue servomotor) het huis koelen.

Om het thermostaatsysteem te coderen:

We beginnen binnen de opstartfunctie om de huidige temperatuur weer te geven en laten de gebruiker hun koude en warme drempels invoeren.

p = 'A0' %Fotoresistor pin

volt = leesVoltage (a, temp); celc = (volt-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str(curr_temp); %Labelnummer kan pauze(10) wijzigen; %Misschien willen veranderen!!!!!

Dan zullen we het thermostaatsysteem binnen de Timer-eigenschap voltooien.

globale curr_temp

global coldUI global een global hotUI if curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %Wordt GUI-lamp groen writePWMDutyCycle(a, 'D11',.9) %De volgende drie regels code voeren de servoventilatorpauze uit (10) writePWMDutyCycle(a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Hiermee worden alle GUI-lampen en de open haard-app uitgeschakeld. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D13', 0); einde

Stap 5: Stap 4: Het deursysteem instellen

Stap 4: Het deursysteem instellen
Stap 4: Het deursysteem instellen

De functie voor de deur werkt als volgt:

Wanneer u uw MATLAB-code voor het eerst uitvoert, vraagt de app u om de deur te openen, zodat de fotoresistor een eerste lichtmeting kan uitvoeren. Zodra dat is voltooid, wordt de timer geactiveerd en neemt de fotoresistor secundaire lichtmetingen. Als de secundaire lichtwaarde lichter is dan de initiële, zal een servomotor de deur vergrendelen. Als de gebruiker de deur ontgrendeld wil hebben, kunnen ze op een knop op de app drukken om de deur te ontgrendelen.

Om de servomotor en fotoweerstand te configureren:

Om het deursysteem te coderen:

We beginnen binnen de opstartfunctie om de eerste lichtmetingen uit te voeren.

s = servo(a, 'D9') %Pin kan veranderen op basis van bedrading

app. Label_4. Text='Open de deur om het systeem te kalibreren'; pauze(15); %Dit geeft de gebruiker de tijd om de deur te openen int_light = readVoltage(a, p); app. Label_4. Text = 'U mag uw vinger verwijderen';

Vervolgens zullen we de code binnen de Timer-eigenschap voltooien

globale ontgrendeling

global int_light global s global a %Haal een huidige lichtwaarde op om te vergelijken curr_light = readVoltage(a, p); % -- Deur vergrendelen -- if int_light<curr_light writePosition(s, 1) %Servo-posities kunnen verschillen per motorpauze (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; einde % -- Deur ontgrendelen -- indien ontgrendelen == 1234 pauze (0,5); writePosition(s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; einde

Ten slotte zullen we de ontgrendelknop callback maken. Zodra de gebruiker op de ontgrendelknop drukt, krijgt de globale variabele ontgrendeling een nummer toegewezen dat de laatste if-instructie in de Timer-eigenschap kan voltooien.

globale ontgrendeling

ontgrendelen = 1234;

Stap 6: Stap 6: Het Flood Light-systeem instellen

Stap 6: Het Flood Light-systeem instellen
Stap 6: Het Flood Light-systeem instellen

De functie voor de schijnwerper werkt als volgt:

Wanneer u de MATLAB-code start, begint de PIR-bewegingssensor beweging te detecteren. Zodra het een soort beweging detecteert, schakelt het een stroomsignaal uit. Zodra dat signaal wordt onderbroken, gaat een schijnwerper buiten het huis aan.

Om het schijnwerpersysteem te configureren:

Om het schijnwerpersysteem te coderen:

Deze keer kunnen we naar de eigenschap Timer gaan omdat we geen extra variabelen hoeven te schrijven.

human_detected = readDigitalPin (a, 'D2'); %Pin kan veranderen op basis van configuratie als human_detected == 0 writeDigitalPin(a, 'D7', 1) %Pin kan app. FloodLightStateLamp. Color veranderen = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D7', 0) end

Stap 7: Conclusie

Nu je een concept van je GUI hebt met de App Designer en je code voor de Arduino, ben je klaar om je eigen bewerkingen uit te voeren of je Arduino in te pluggen en te gaan!

Aanbevolen: