Indholdsfortegnelse:
Video: Smart Home -termostat: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Vores Smart Home Thermostat er et program, der automatisk kan spare en husstands penge på elregninger baseret på en persons præferencer.
Trin 1: Oversigt
Smart Home -termostaten bruger en temperatursensor til at få temperaturen i hjemmet. Denne temperaturmåling sættes ind i programmet, hvor det afgør, om klimaanlægget skal opvarme eller afkøle huset baseret på den ønskede husejers temperatur.
Der er to tilstande til termostaten: manuel og automatisk. Den manuelle tilstand, der justerer hjemmets temperatur til den ønskede temperatur, indstilles af brugeren. Og termostatens automatiske tilstand ændrer automatisk temperaturen i hjemmet til temperaturer, der er forudindstillet af brugeren. Der vil være to temperaturindstillinger for den automatiske tilstand: Udetemperatur og nuværende temperatur. Udetemperaturen bruges til at spare energi ved at ændre termostaten til en forudindstillet energibesparende temperatur, når brugeren ikke er hjemme. Den nuværende temperatur vil blive brugt, når brugeren er hjemme og ønsker en behagelig temperatur. I termostatens automatiske tilstand leder bevægelsessensorer aktivt efter bevægelse for at afgøre, om nogen er hjemme eller ej. Baseret på deres aflæsning vil hjemmetemperaturen enten blive indstillet til ude -temperatur eller nuværende temperatur.
Trin 2: Dele og materialer
(15) Jumper Wires
(4) 220 Ohm modstande
(1) 10K Ohm modstand
(1) Temp Sensor
(1) Fotomodstand
(1) DAGU Mini DC gearkasse
(1) Diode
(1) Transistor
(1) Fotoresistor
(1) Brødbræt
(1) Arduino MKR
Trin 3: Kredsløb
Figur 1 = Stort venstre billede
Figur 2 = Øverst til højre
Figur 3 = Mellem højre
Figur 4 = nederst til højre
figur 1
Ved hjælp af diagrammet ovenfor tilsluttede vi hver af vores tre lysdioder. Vi fordelte hver LED, da vi arbejdede med et stort brødbræt. Ved mindre brødbrætter kan det være nødvendigt at sætte lysdioderne tættere sammen. Det er også unødvendigt at tænde brødbrættet, da lysdioderne trækker så lidt strøm. Vi brugte ikke 5V -forbindelsen på brødbrættet til lysdioderne. Hver forbindelse fra lysdioderne til vores Arduino blev foretaget som den grønne ledning er ovenfor. Vores røde, blå og grønne lysdioder er forbundet til henholdsvis Digital Pin 8, 9 og 10, der er markeret med en rød, blå og grøn ledning i vores billede.
Figur 2
Diagrammet ovenfor blev brugt til at tilslutte fotoresistoren. Vi lavede nogle få af vores egne rettelser; men begreberne er stadig de samme. Fotoresistoren skal forbindes til en analog pin, som vi har i pin A1. Sørg for at bruge en 10K ohm modstand til modstanden tættest på fotoresistoren.
Figur 3
Dette er diagrammet, der bruges til at koble temperatursensoren. Sørg for ikke at tage fejl af transistoren, der bruges her med temperatursensoren. De ser næsten identiske ud. Temperatursensoren vil sandsynligvis have TMP eller et andet script skrevet på sensorens flade side. Ledningerne her er meget enkle, vores temperatursensor er tilsluttet analog pin A0 med en hvid ledning.
Figur 4
Billedet ovenfor blev brugt til at tilslutte DAGU Mini DC gearkassen. Den grønne ledning, der er knyttet til gearkassen, er faktisk den røde ledning, der er forbundet til den i vores billede. Gearkassen er forbundet til digital pin 11 med en orange ledning i vores model. Sørg for ikke at tage fejl af transistoren, der bruges her med temperatursensoren. De ser næsten identiske ud. Temperatursensoren vil sandsynligvis have TMP eller et andet script skrevet på sensorens flade side. Du skal bruge transistoren her og ikke temperatursensoren.
Trin 4: Arduino -kode
Her forklares de vigtigste dele af koden. Koden fungerer ikke kun med det, der er givet her. For at få den fulde arbejdskode er der et link nederst på siden.
Når du opretter den programmerbare termostats kode, er en af de første ting, du gør, at opsætte sensorerne og oprette en for loop, der konstant vil få temperaturmålinger fra temperatursensoren.
Opsætning af temperatursensor og LED:
tempPin = 'A0';%definerer anonym funktion, der konverterer spændingen til temperatur tempCfromVolts = @(volt) (volt-0,5)*100; samplingDuration = 5; %sekunder. Hvor lang tid vil vi prøve for samplingInterval = 1; %Hvor mange sekunder mellem temperaturmålinger %opsætter vektor for prøveudtagningstider samplingTimes = 0: samplingInterval: samplingDuration; %beregner antallet af prøver baseret på varighed og interval numSamples = length (samplingTimes); %forudfordel temp variabler og variabel for antallet af aflæsninger det vil gemme tempC = nuller (numSamples, 1); tempF = tempC; %Vi vil bruge en for loop denne gang til at tage et forudbestemt antal %temperaturmålinger
For -løkken:
for index = 1: numSamples %aflæser spændingen ved tempPin og gemmer i variabel volt volt = readVoltage (a, tempPin); tempC (indeks) = -1*tempCfromVolts (volt+0,3); tempF (indeks) = tempC (indeks)*(9/5) +32; %Displayformateret output, der kommunikerer den aktuelle temperaturaflæsning fprintf ('Temperatur ved %d sekunder er %5.2f C eller %5.2f F. / n', … samplingTimes (index), tempC (index), tempF (index)); %bemærk, at denne visningsoutput kun bliver synlig på én gang, efter at koden er %færdig med at udføre, medmindre du kopierer/indsætter koden i en almindelig scriptmfile. pause (samplingInterval) %forsinkelse indtil næste prøve slut
Dernæst opretter vi vores brugermenu, så brugeren kan beslutte, om termostaten skal sættes i manuel eller automatisk tilstand. Vi opretter også en fejlkode, hvis brugeren ikke vælger en af de to muligheder.
Menuen Manuel tilstand kræver, at brugeren indstiller et tal for termostattemperaturen, så vil den enten opvarme hjemmet, afkøle hjemmet eller være inaktiv baseret på aflæsninger. For at konfigurere denne del af koden brugte du temperaturmålinger fra temperatursensoren og opretter kode, der vil afkøle hjemmet, når temperaturaflæsning er højere end den indstillede temperatur, og opvarme boligen, når temperaturaflæsning er lavere end den indstillede temperatur.
Når du har fået temperaturmålingerne, kan du oprette den kode, der vil fortælle termostaten at afkøle hjemmet, når temperaturaflæsning er højere end den indstillede temperatur, og varme hjemmet, når temperaturmåling er lavere end den indstillede temperatur. For prototypen lyser det blå lys, når termostaten skal afkøle, og det røde lys tændes, når termostaten skal varme.
Menuopsætning:
valg = {'Automatisk', 'Manuel'}; imode = menu ('Tilstand', valg) hvis imode> 0 h = msgbox (['Du har valgt' valg {imode}]); ellers h = warndlg ('Du lukkede menuen uden at vælge') afslut waitfor (h);
Den manuelle tilstand kræver, at brugeren indtaster en temperatur for termostaten, derefter baseret på målingerne fra temperatursensoren, begynder den enten at afkøle huset til opvarmning af huset. Hvis temperaturfølerens aflæsning er højere end den indstillede temperatur, begynder den at afkøle hjemmet. Hvis temperatursensorens aflæsning er lavere end den indstillede temperatur, vil den opvarme boligen.
Den manuelle tilstand starter:
hvis imode == 2 dlg_prompts = {'Hvilken temperatur foretrækker du?'}; dlg_title = 'Temperatur'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, vælger); hvis isempty (dlg_ans) h = warndlg ('Du annullerede inputdlg -kommandoen'); else temp_manual = str2double (dlg_ans {1}) %[Tilføj temperaturreguleringsopsætningsbillede nedenfor] slut
Inde i if -sætningen for den manuelle tilstand skal du skrive menuens grænseflade, så brugeren kan vælge den ønskede hjemmetemperatur, og derefter implementere en while -erklæring, der regulerer hjemmetemperaturen.
Opsætning af temperaturregulering:
mens temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); afslut mens temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); ende
Den automatiske tilstand kræver flere input end den manuelle tilstand. Efter at have åbnet den automatiske tilstand, vil brugeren indstille en normal og en væk -temperatur for deres termostat. Efter at have valgt disse, baseret på hvilken tilstand termostaten er i, vil den gå tilbage til temperaturreguleringstilstanden
Indstil den automatiske tilstand:
elseif imode == 1 dlg_prompts = {'Normal', 'væk'}; dlg_title = 'Temperaturindstillinger'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, vælger); hvis isempty (dlg_ans) h = warndlg ('Du annullerede inputdlg -kommandoen'); ellers temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) afslut waitfor (h); %[Tilføj bevægelsesdetektor trin herunder]
Vi skal også konfigurere bevægelsessensoren til indstillingerne for automatisk tilstand. Når bevægelsesdetektoren opfanger bevægelse, vil den beholde temperaturen på den aktuelle temperaturindstilling, ellers vil den indstille til indstillingen for fjerntemperatur.
Run_Motion_Detector (a, inf) while lightStr == 0 temp = temp_away while temp tempF writeDigitalPin (a, 'D6', 1) uanset pin rødt lys er også i motor til fan writeDigitalPin (a, 'D9', 1); slut ende, mens lightStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1) %ændres til den pin, det normale lys er i, mens temp tempF writeDigitalPin (a, 'D6', 1) uanset hvilken pin rødt lys også er i motor til blæser writeDigitalPin (a, 'D9', 1); ende ende
Den fulde kode kan findes her.
Anbefalede:
Smart Home af Raspberry Pi: 5 trin (med billeder)
Smart Home af Raspberry Pi: Der er allerede flere produkter derude, der gør din lejlighed smartere, men de fleste af dem er proprietære løsninger. Men hvorfor har du brug for en internetforbindelse for at skifte lys med din smartphone? Det var en af grundene til at jeg byggede mit eget Smar
STONE LCD Med Smart Home: 5 trin
STONE LCD With Smart Home: I dag fik jeg STONEs serielle portdrevdisplay, som kan kommunikere via MCUs serielle port, og UI -logikdesignet på denne skærm kan designes direkte ved hjælp af VGUS -softwaren på STONEs officielle websted, hvilket er meget indkvartering
DIY Smart Garage Door Opener + Home Assistant Integration: 5 trin
DIY Smart Garage Door Opener + Home Assistant Integration: Gør din normale garageport smart ved hjælp af dette DIY -projekt. Jeg vil vise dig, hvordan du bygger det og styrer det ved hjælp af Home Assistant (over MQTT) og har mulighed for eksternt at åbne og lukke din garageport.Jeg bruger et ESP8266 -bord kaldet Wemos
Lav et Smart Home -kontrolsystem på STONE HMI Disp: 23 trin
Lav et Smart Home Control System på STONE HMI Disp: Projekt introduktion Følgende vejledning viser dig, hvordan du bruger STONE STVC050WT-01 berøringsskærmsmodul til at lave et simpelt kontrolsystem til husholdningsapparater
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 trin
Sonoff B1 Firmware Home Automation Openhab Google Home: Jeg kan virkelig godt lide Tasmota -firmwaren til mine Sonoff -switches. Men a var ikke rigtig tilfreds med Tasmota-firmwaren på min Sonoff-B1. Det lykkedes ikke fuldt ud at integrere det i min Openhab og kontrollere det via Google Home. Derfor skrev jeg mit eget firma