Inhoudsopgave:
- Stap 1: Lichtgevoelige LED
- Stap 2: Mini-aan/uit-schakelaar
- Stap 3: Tweede fotocel
- Stap 4: RGB-LED
- Stap 5: Temperatuursensor
- Stap 6: DAGU-motorreductor
- Stap 7: Coderen
Video: EF230 Smart Home-project: 7 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Benodigde onderdelen en materialen:
- 1 Arduino MKR 1000
- 3 Breadboards
- 2 mini-fotocellen
- 1 NPN-transistoren
- 1 mini-aan/uit-schakelaar
- 1 LED – RGB (4-polig)
- 1 LED (kleur naar keuze)
- 1 Diode 1N4148
- 1 10K Ohm Weerstanden
- 5 100 Ohm Weerstand
- 1 temperatuursensor TMP36
- 1 DAGU 48:1 Verhouding Motorreductor
- 25 jumperdraden
- USB-kabel
- MATLAB-programma
-
SIK Experiment Guide voor het Arduino 101/Genuino 101 Board - SIK Experiment Guide Link
Dit project beschrijft het conceptuele ontwerp van een smart home-systeem dat gegevens zou gebruiken om huiseigenaren te helpen hun energieverbruik en beveiliging te optimaliseren. Het bevat een lichtsensor om de buitenverlichting 's nachts in te schakelen, een lichtsensor voor beveiliging en een temperatuursensor en ventilator voor het regelen van de binnentemperatuur.
Stap 1: Lichtgevoelige LED
- De lichtgevoelige LED-opstelling is bedoeld om de buitenverlichting van een huis weer te geven die 's nachts aangaat.
- Wanneer de mini-fotocel een verminderde hoeveelheid licht detecteert, zal de LED oplichten.
- Voor een slimme woning heeft dit gevolgen voor energie en veiligheid. Het bespaart energie door de lichten overdag uit te laten en zorgt 's nachts voor meer veiligheid.
- De exacte bedrading en opstelling voor dit deel van het project is te vinden onder experiment 7 in de SIK Experiment Guide.
Stap 2: Mini-aan/uit-schakelaar
- De overstap is de eerste stap in het beveiligingsproces van het slimme huis.
- Wanneer ingeschakeld, zal de schakelaar een reactie initiëren met de vraag of de gebruiker naar de 'Thuis'-modus of 'Afwezig'-modus wil gaan.
- Als de modus 'Thuis' is geselecteerd, wordt de beveiliging als uitgeschakeld beschouwd, maar als u de modus 'Afwezig' selecteert, wordt het beveiligingssysteem ingeschakeld.
- De bedrading voor dit deel van het project is te vinden onder experiment 6 in de Experiment Guide. Voor de doeleinden van het slimme huis hoeven de LED's en hun verbindingsdraden gevonden in experiment 6 niet te worden opgenomen.
Stap 3: Tweede fotocel
- De tweede fotocel dient als bewegingssensor voor het beveiligingssysteem van het slimme huis.
- De sensor wordt alleen gebruikt als het systeem in de 'Afwezig' modus staat zoals beschreven in de vorige stap.
- Als de fotocel een afname van de hoeveelheid licht ervaart die hij ontvangt, herkent hij dit als beweging in huis.
- De opzet voor dit deel van het project is te vinden onder experiment 7 in de SIK Experiment Guide. Alleen de fotocel en de bijbehorende aansluitdraden hoeven echter in de bedrading te worden opgenomen.
Stap 4: RGB-LED
- De RGB-led wordt gebruikt in combinatie met de mini-schakelaar en de tweede fotocel voor het beveiligingssysteem van het slimme huis.
- De drie verschillende kleuren worden gebruikt als indicatoren voor de slimme thuisbewoner.
- Wanneer het systeem in de 'Home'-modus wordt gezet, wordt de LED blauw. Wanneer het systeem in de 'Afwezig'-modus wordt gezet, wordt de LED groen. Wanneer de fotocel die als bewegingssensor wordt gebruikt, wordt geactiveerd, knippert het lampje rood.
- De bedrading voor de RGB LED is te vinden in experiment 3 van de SIK Experiment Guide.
Stap 5: Temperatuursensor
- De temperatuursensor is een belangrijk onderdeel van het besparen van energie in het slimme huis.
- De bewoner kan een gewenste temperatuur voor zijn huis invoeren wanneer het slimme huis in gebruik is.
- Temperatuursensor is hoe het systeem weet hoe ver de werkelijke temperatuur verwijderd is van de gewenste temperatuur.
- Opstelling voor de temperatuursensor is te vinden in experiment 9 van de SIK Experiment Guide.
Stap 6: DAGU-motorreductor
- Door de motor kan de smart home de temperatuur in huis regelen op basis van de gewenste temperatuur en de uitlezingen van de temperatuursensor.
- De motor fungeert als de AC-eenheid in huis en draait met verschillende snelheden op basis van hoeveel hoger de werkelijke temperatuur is dan de gewenste temperatuur. Hoe groter het verschil, hoe sneller de motor draait.
- De bedrading voor de motor is te vinden in de Experiment Guide onder experiment 11.
Stap 7: Coderen
- De code voor het slimme huis bevat meerdere gebruikersinterfaces waarmee de bewoner gemakkelijk kan begrijpen hoe het werkt en de instellingen gemakkelijk kan wijzigen.
- Met het smart home-systeem ontvangt de bewoner een e-mail als de bewegingssensor afgaat terwijl hij/zij weg is.
- De enige wijziging die moet worden aangebracht, is het invoeren van de informatie voor de e-mail van de afzender en het e-mailadres van de ontvanger.
duidelijk een; duidelijke s; duidelijk m; clc; sluit alles; % Wis arduino- en servovariabelen zodat ze elke keer opnieuw kunnen worden gedefinieerd, zodat de code effectief wordt uitgevoerd ("clear m" is nodig om een van de while-lussen goed te laten functioneren)a = arduino(); % Stel de Arduino-variabele in
s = servo(a, 'D6'); % Stel de servovariabele in
% Initialiseer e-mailvariabelen voor waarschuwingsmail van het beveiligingssysteem
e-mails = {'adres van ontvanger invoegen'}; % Array van e-mails waarnaar de beveiligings-e-mail moet worden verzonden
% Instellingen voor e-mailvoorkeuren die nodig zijn voor het gebruik van een Gmail om e-mail te verzenden
setpref('Internet', 'E_mail', 'e-mailadres van de afzender');
setpref('Internet', 'SMTP_Gebruikersnaam', 'gebruikersnaam afzender');
setpref('Internet', 'SMTP_Password', 'wachtwoord afzender');
props = java.lang. System.getProperties;
props.setProperty('mail.smtp.auth', 'true');
props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port', '465');
% E-mailonderwerp en tekstvariabelen
subj = 'Inbraakalarm bij u thuis';
text = 'Hallo, dit is uw Smart Home-beveiligingssysteem dat u informeert dat er beweging is gedetecteerd buiten uw huis. Wij hebben voor u de nodige maatregelen genomen en contact opgenomen met autoriteiten. Blijf Veilig.';
terwijl het waar is
prompt = {'Voer de gewenste thuistemperatuur in (tussen 65F en 85F):'}; % Prompt voor gebruikersinvoermenu
dlgtitle = 'Temperatuur selecteren'; % Titel voor gebruikersinvoermenu
dimt = [1 30]; % Afmetingen voor gebruikersinvoermenu
definitie = {'72'}; % Standaardinvoer die verschijnt wanneer het menu voor het eerst wordt geopend
tempsel_array = inputdlg(prompt, dlgtitle, dims, definitie); % Pop-up gebruikersinvoermenu dat het ingevoerde nummer in een array opslaat
if ~isempty(tempsel_array) % Als de array NIET leeg is
tempsel_char = cell2mat(tempsel_array); % Converteer de array naar een tekenreeks
tempsel = str2double(tempsel_char); % Converteer de tekenreeks naar cijfers
thingSpeakWrite(chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Schrijf de geselecteerde temperatuur naar uw ThingSpeak-kanaal
break % Breek uit de while-lus zodat het menu niet meerdere keren verschijnt
else % Als de gebruiker op annuleren klikt in plaats van een temperatuur in te voeren
msg1 = msgbox('Geen temperatuur geselecteerd, standaard ingesteld op 85F', 'Waarschuwing!'); % Bericht weergegeven aan gebruiker na klikken op annuleren
wachten op (msg1); % Wacht tot het berichtvenster is gesloten voordat u doorgaat
tempsel = 85; % Stel de temperatuur in op wat er in het berichtvenster stond
thingSpeakWrite(chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Schrijf de geselecteerde temperatuur naar uw ThingSpeak-kanaal
break % Breek uit de while-lus zodat het menu niet meerdere keren verschijnt
einde
einde
terwijl het waar is
chID = 745517; % ThingSpeak-kanaal-ID
writeKey = 'G9XOQTP8KOVSCT0N'; % Sleutel voor toegang tot het ThingSpeak-kanaal
% Sensoren initialiseren om gegevens op te halen
tempread = leesVoltage (a, 'A3'); % Lees de spanning van de temperatuursensor
lightl1 = leesVoltage (a, 'A2'); % Lichtniveau voor de fotoresistor die naar de rode LED gaat
lightl2 = leesVoltage(a, 'A5'); % Lichtniveau voor de fotoresistor die naar het beveiligingssysteem gaat
switchv = leesVoltage (a, 'A0'); % Waarde voor de schakelaar
% Converteer de temperatuurgegevens van spanning naar graden Fahrenheit
tempC = (tempread - 0,5) * 100; % Zet spanning om in temperatuur in Celsius
tempF = (tempC * 9/5) + 32; % Zet temperatuur in Celsius om in temperatuur in Fahrenheit
% Initialiseer de pinnummers voor de meerkleurige LED
redp = 'D9'; % Pin voor rood licht van LED
groenp = 'D10'; % Pin voor groen licht van LED
blauw = 'D11'; % Pin voor blauw licht van LED
if tempsel < tempF % Als de geselecteerde temperatuur hoger is dan de kamertemperatuur
schrijfPositie(s, 1); % Servo begint te bewegen
pauze(10) % Servo blijft 10 seconden draaien om aan te geven dat de AC na een bepaalde tijd zou worden uitgeschakeld
schrijfPositie(s, 0); % Zet ventilator uit om door te gaan met code zonder ventilator aan
tempsel = 150; % Wijzig de temperatuurwaarde om uit de lus te breken nadat de ventilator is uitgeschakeld, opnieuw alleen om door te gaan met de code
einde
if lightl1 <= 3 % Als de eerste fotoresistor een laag lichtniveau detecteert
writeDigitalPin(a, 'A1', 1); % Schakel de rode LED in die staat voor buitenverlichting
else % Als het lichtniveau weer hoog is
writeDigitalPin(a, 'A1', 0); % Schakel de rode LED uit wanneer het lichtniveau weer hoog genoeg is
einde
als schakelaarv > 3 % Als de schakelaar is ingeschakeld
A = bestaan('m', 'var'); % Controleer op het bestaan van variabele 'm', dit zal initialiseren voor de while-lus en kan worden verbroken wanneer een menu-item wordt geselecteerd (daarom moet m wissen aan het begin van de code)
terwijl A==0 % Loop wordt uitgevoerd totdat variabele 'm' bestaat
menutext = 'Welke beveiligingsmodus wilt u invoeren?'; % Tekst voor het pop-upmenu voor beveiliging
keuzes = {'Thuis', 'Afwezig'}; % Keuzes voor het pop-upmenu voor beveiliging
m = menu(menutekst, keuzes); % Pop-upmenu voor beveiligingssysteemmodi
break % Zorgt ervoor dat de while-lus wordt verbroken, zodat het menu niet meerdere keren verschijnt
einde
if m == 1 % Als 'Thuis'-modus is geselecteerd
writeDigitalPin(a, bluep, 1); % Zet alleen blauw licht aan in de van kleur veranderende LED
writeDigitalPin(a, redp, 0);
writeDigitalPin(a, greenp, 0);
elseif m == 2 % Als de modus 'Afwezig' is geselecteerd
writeDigitalPin(a, bluep, 0);
writeDigitalPin(a, redp, 0);
writeDigitalPin(a, greenp, 1); % Schakel alleen het groene lampje in de van kleur veranderende LED in
if lightl2 <= 3 % Als het lichtniveau in de tweede fotoresistor laag is, wat duidt op beweging gedetecteerd door het beveiligingssysteem
sendmail (e-mails, subj, tekst); % Stuur een e-mail met de eerder gedefinieerde e-maileigenschappen writeDigitalPin(a, greenp, 0); % Knipperende rode kleur 2 keer aan en uit
writeDigitalPin(a, redp, 1);
pauze(0.3)
writeDigitalPin(a, redp, 0);
pauze(0.3)
writeDigitalPin(a, redp, 1);
pauze(0.3)
writeDigitalPin(a, redp, 0);
pauze(0.3)
writeDigitalPin(a, redp, 1); % Eindig met ononderbroken rood na het knipperen om aan te geven dat er beweging is totdat het lichtniveau weer omhoog gaat
msg2 = msgbox('Indringer gedetecteerd door beveiligingssysteem, er is een e-mail verzonden naar de huiseigenaren om hen te informeren.', 'WAARSCHUWING!'); % Berichtvenster om de gebruiker te informeren over beweging en om te informeren over de verzonden e-mail waitfor(msg2) % Wacht tot het berichtvenster sluit voordat u verdergaat
anders
writeDigitalPin(a, greenp, 1); % Zodra het lichtniveau weer is gestegen, wordt het weer groen
einde
einde
elseif switchv < 3,3% Als de schakelaar is uitgeschakeld
writeDigitalPin(a, bluep, 0); % Schakel de LED volledig uit om aan te geven dat het beveiligingssysteem is uitgeschakeld
writeDigitalPin(a, redp, 0);
writeDigitalPin(a, greenp, 0);
einde
einde
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