Inhoudsopgave:
- Stap 1: Om te beginnen: materialen
- Stap 2: Stap 2: Het probleem benaderen om op te lossen
- Stap 3: Stap 3: De GUI en basiscodestroom configureren
- Stap 4: Stap 3: Het thermostaatsysteem instellen
- Stap 5: Stap 4: Het deursysteem instellen
- Stap 6: Stap 6: Het Flood Light-systeem instellen
- Stap 7: Conclusie
Video: Arduino Smart Home-systeem: 7 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
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
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
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
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
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:
Smart Home van Raspberry Pi: 5 stappen (met afbeeldingen)
Smart Home van Raspberry Pi: er zijn al verschillende producten die uw flat slimmer maken, maar de meeste zijn eigen oplossingen. Maar waarom heb je een internetverbinding nodig om een lamp te schakelen met je smartphone? Dat was voor mij een reden om mijn eigen Smar te bouwen
Smart Home op afstand: 5 stappen
Remote Smart Home: Materiaal: dunne gelamineerde hout platen. 1 x grondplaat met een diameter van 1 cmkleine nagels2 x breadbords plakbandveel kabels met diameter 0.3 cmveel jumper kabels gereedschap:boormachinelijmpistoolsoldeerboutschroevendra
Smart Home maken met behulp van Arduino-besturingsrelaismodule - Ideeën voor domotica: 15 stappen (met afbeeldingen)
Smart Home maken met behulp van Arduino-besturingsrelaismodule | Ideeën voor domotica: in dit domotica-project zullen we een smart home-relaismodule ontwerpen die 5 huishoudelijke apparaten kan bedienen. Deze relaismodule kan worden bediend vanaf mobiel of smartphone, IR-afstandsbediening of tv-afstandsbediening, handmatige schakelaar. Dit slimme relais kan ook de r
Smart Home met Arduino: 11 stappen (met afbeeldingen)
Smart Home met Arduino: Hallo. Ik zal je laten zien hoe je je eigen slimme huis kunt bouwen. Het toont de temperatuur zowel binnen als buiten, of het raam open of gesloten is, toont wanneer het regent en alarmeert wanneer de PIR-sensor beweging detecteert. Ik heb de applicatie op Android gemaakt om
Smart Home Met Arduino MKR1000 en M.I.T. Android-app: 4 stappen
Smart Home Met Arduino MKR1000 en M.I.T. Android App: In deze tutorial beschrijf ik hoe je je smart home kunt verbeteren met slechts een paar componenten. Het hart van dit smart home-ontwerp is het Arduino MKR1000-bord, aangestuurd met een app, ontworpen op de ontwikkelwebsite van de M.I.T. (Massachusetts Instituut