Inhoudsopgave:
Video: Smart Home-thermostaat: 4 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Onze Smart Home Thermostat is een programma waarmee een huishouden automatisch geld kan besparen op energierekeningen op basis van iemands voorkeuren.
Stap 1: Overzicht
De Smart Home Thermostaat gebruikt een temperatuursensor om de temperatuur in huis te krijgen. Deze temperatuurmeting wordt in het programma gezet waar het zal beslissen of het airconditioningsysteem het huis moet verwarmen of koelen op basis van de gewenste temperatuur van de huiseigenaar.
Er zijn twee standen voor de thermostaat: handmatig en automatisch. De handmatige modus die de temperatuur van het huis aanpast aan de gewenste temperatuur, wordt door de gebruiker ingesteld. En de automatische modus van de thermostaat zal de temperatuur van het huis automatisch wijzigen naar door de gebruiker ingestelde temperaturen. Er zijn twee temperatuurinstellingen voor de automatische modus: afwezigheidstemperatuur en huidige temperatuur. De afwezigheidstemperatuur wordt gebruikt om energie te besparen door de thermostaat op een vooraf ingestelde energiebesparende temperatuur te zetten wanneer de gebruiker niet thuis is. De huidige temperatuur wordt gebruikt wanneer de gebruiker thuis is en een comfortabele temperatuur wil. In de automatische modus van de thermostaat zoeken bewegingssensoren actief naar beweging om te bepalen of er iemand thuis is of niet. Op basis van hun uitlezing wordt de thuistemperatuur ingesteld op de afwezigheidstemperatuur of de huidige temperatuur.
Stap 2: Onderdelen en materialen
(15) Doorverbindingsdraden
(4) 220 Ohm Weerstanden
(1) 10K Ohm Weerstand
(1) Temperatuursensor
(1) Fotoweerstand:
(1) DAGU Mini DC-versnellingsbak
(1) Diode
(1) Transistor:
(1) Fotoweerstand:
(1) Broodplank
(1) Arduino MKR
Stap 3: Circuit
Afbeelding 1 = Grote afbeelding links
Afbeelding 2 = Rechtsboven
Afbeelding 3 = Midden Rechts
Afbeelding 4 = Rechtsonder
Figuur 1
Met behulp van het bovenstaande diagram hebben we elk van onze drie LED's bedraad. We hebben elke LED uit elkaar geplaatst omdat we met een groot broodplank werkten. Voor kleinere broodplanken kan het nodig zijn om de LED's dichter bij elkaar te plaatsen. Het is ook niet nodig om het breadboard van stroom te voorzien, omdat de LED's zo weinig stroom verbruiken. De 5V aansluiting op het breadboard hebben we niet gebruikt voor de leds. Elke verbinding van de LED's naar onze Arduino is gemaakt zoals de groene draad hierboven. Onze rode, blauwe en groene LED's zijn respectievelijk verbonden met de digitale pin 8, 9 en 10, aangeduid met een rode, blauwe en groene draad in onze afbeelding.
Figuur 2
Het bovenstaande diagram werd gebruikt om de fotoresistor te bedraden. We hebben zelf een paar correcties aangebracht; de concepten zijn echter nog steeds hetzelfde. De fotoresistor moet worden aangesloten op de analoge pin die we in pin A1 hebben. Zorg ervoor dat u een weerstand van 10K ohm gebruikt voor de weerstand die zich het dichtst bij de fotoweerstand bevindt.
figuur 3
Dit is het diagram dat wordt gebruikt om de temperatuursensor te bedraden. Verwar de hier gebruikte transistor niet met de temperatuursensor. Ze zien er bijna identiek uit. De temperatuursensor heeft waarschijnlijk TMP of een ander script geschreven op de platte kant van de sensor. De bedrading hier is heel eenvoudig, onze temperatuursensor is aangesloten op analoge pin A0 met een witte draad.
Figuur 4
De afbeelding hierboven werd gebruikt om de DAGU Mini DC Gearbox te bedraden. De groene draad die aan de versnellingsbak is bevestigd, is eigenlijk de rode draad die erop is aangesloten op onze foto. De versnellingsbak is in ons model met een oranje draad aangesloten op digitale pin 11. Verwar de hier gebruikte transistor niet met de temperatuursensor. Ze zien er bijna identiek uit. De temperatuursensor heeft waarschijnlijk TMP of een ander script geschreven op de platte kant van de sensor. U moet hier de transistor gebruiken en niet de temperatuursensor.
Stap 4: Arduino-code
Hier worden de belangrijkste onderdelen van de code uitgelegd. De code werkt niet alleen met wat hier wordt gegeven. Om de volledige werkende code te krijgen, is er een link onderaan de pagina.
Wanneer u de code van de programmeerbare thermostaat maakt, is een van de eerste dingen die u doet, de sensoren instellen en een for-lus maken die constant temperatuurmetingen van de temperatuursensor ontvangt.
Temperatuursensor en LED instellen:
tempPin = 'A0';%definieer anonieme functie die de spanning omzet in temperatuur tempCfromVolts = @(volt) (volt-0,5)*100; bemonsteringsduur = 5; % seconden. Hoe lang willen we samplen voor samplingInterval = 1; %Hoeveel seconden tussen temperatuurmetingen %setup vector van bemonsteringstijden samplingTimes = 0:samplingInterval:samplingDuration; %bereken het aantal monsters op basis van de duur en het interval numSamples = length(samplingTimes); %preallocate tijdelijke variabelen en variabele voor het aantal metingen dat het zal opslaan tempC = nullen (numSamples, 1); tempF = tempC; %We gebruiken deze keer een for-lus om een vooraf bepaald aantal %temperatuurmetingen te doen
De for-lus:
voor index = 1: numSamples % lees de spanning op tempPin en sla op in variabele volt volt = readVoltage (a, tempPin); tempC(index) = -1*tempCfromVolts(volt+0.3); tempF(index) = tempC(index)*(9/5)+32; %Geformatteerde uitvoer weergeven die de huidige temperatuurmeting communiceert fprintf('Temperatuur op %d seconden is %5.2f C of %5.2f F.\n', … samplingTimes(index), tempC(index), tempF(index)); %merk op dat deze weergave-uitvoer alleen in één keer zichtbaar wordt nadat de code %klaar is uitgevoerd, tenzij u de code kopieert/plakt naar een m-bestand met gewoon script. pauze(samplingInterval) %vertraging tot het einde van de volgende sample
Vervolgens creëren we ons gebruikersmenu zodat de gebruiker kan beslissen of hij de thermostaat in de handmatige of automatische modus wil zetten. We creëren ook een foutcode als de gebruiker geen van beide opties selecteert.
Het menu Handmatige modus vereist dat de gebruiker een getal voor de thermostaattemperatuur instelt, waarna het ofwel het huis verwarmt, het huis koelt of inactief is op basis van metingen. Om dit deel van de code in te stellen, heb je temperatuurmetingen van de temperatuursensor gebruikt en een code gemaakt die het huis zal koelen wanneer de temperatuurmeting hoger is dan de ingestelde temperatuur, en het huis zal verwarmen wanneer de temperatuurmeting lager is dan de ingestelde temperatuur.
Zodra u de temperatuurmetingen hebt, kunt u de code maken die de thermostaat vertelt om het huis te koelen wanneer de temperatuurmeting hoger is dan de ingestelde temperatuur, en het huis te verwarmen wanneer de temperatuurmeting lager is dan de ingestelde temperatuur. Voor het prototype gaat het blauwe lampje branden wanneer de thermostaat moet afkoelen en het rode lampje gaat branden wanneer de thermostaat moet verwarmen.
Menu-instellingen:
keuzes = {'Automatisch', 'Handmatig'};imode = menu('Modus', keuzes) if imode>0 h=msgbox(['Je koos 'keuzes{imode}]); else h=warndlg('Je hebt het menu gesloten zonder een keuze te maken') end waitfor(h);
De handmatige modus vereist dat de gebruiker een temperatuur voor de thermostaat invoert, en op basis van de metingen van de temperatuursensor begint hij ofwel het huis te koelen of het huis te verwarmen. Als de meetwaarde van de temperatuursensor hoger is dan de ingestelde temperatuur, begint hij het huis te koelen. Als de meetwaarde van de temperatuursensor lager is dan de ingestelde temperatuur, zal deze de woning verwarmen.
De handmatige modus start:
if imode == 2 dlg_prompts = {'Welke temperatuur heeft u het liefst?'}; dlg_title = 'Temperatuur'; dlg_defaults = {'68'}; opts. Resize = 'aan'; dlg_ans = inputdlg(dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty(dlg_ans) h=warndlg('Je hebt de inputdlg-opdracht geannuleerd'); else temp_manual = str2double(dlg_ans{1}) %[Add Temperature Regulation Setup slide below] end
Binnenin de if-statement voor de handmatige modus moet je de menu-interface schrijven zodat de gebruiker de gewenste thuistemperatuur kan kiezen, en vervolgens een while-statement implementeren dat de thuistemperatuur regelt.
Instelling temperatuurregeling:
while temp_manual <tempF writeDigitalPin(a, 'D9', 1) writeDigitalPin(a, 'D11', 1); end while temp_manual > tempF writeDigitalPin(a, 'D8', 1) writeDigitalPin(a, 'D11', 1); einde
De automatische modus vereist meer invoer dan de handmatige modus. Nadat de gebruiker naar de automatische modus is gegaan, stelt de gebruiker een normale en een afwezigheidstemperatuur in voor zijn thermostaat. Na deze te hebben geselecteerd, op basis van de modus waarin de thermostaat zich bevindt, gaat hij terug naar de temperatuurregelmodus
Stel de automatische modus in:
elseif imode == 1 dlg_prompts = {'Normaal', 'Afwezig'}; dlg_title = 'Temperatuurinstellingen'; dlg_defaults = {'68', '64'}; opts. Resize = 'aan'; dlg_ans = inputdlg(dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty(dlg_ans) h=warndlg('Je hebt de inputdlg-opdracht geannuleerd'); else temp_normal = str2double(dlg_ans{1}) temp_away = str2double(dlg_ans{2}) end waitfor(h); %[Voeg bewegingsdetector toe, stap hieronder]
We moeten ook de bewegingssensor instellen voor de instellingen van de automatische modus. Wanneer de bewegingsmelder beweging oppikt, zal hij de temperatuur op de huidige temperatuurinstelling houden, anders wordt hij ingesteld op de afwezigheidstemperatuur.
Run_Motion_Detector(a, inf) while lightStr == 0 temp = temp_away while tempF writeDigitalPin(a, 'D6', 1) ongeacht welke pin rood licht is in ook motor voor ventilator writeDigitalPin (a, 'D9', 1); end end while lightStr == 1 temp = temp_normal writeDigitalPin(a, 'D6', 1) %verandering naar de pin waar het normale licht in zit, terwijl tempF writeDigitalPin(a, 'D6', 1) welke pin ook rood licht is motor voor ventilator writeDigitalPin(a, 'D9', 1); einde einde
De volledige code vind je hier.
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