Cuprins:
- Pasul 1: Pentru a începe: materiale
- Pasul 2: Pasul 2: Abordarea problemei de rezolvat
- Pasul 3: Pasul 3: Configurarea GUI și a fluxului de cod de bază
- Pasul 4: Pasul 3: Configurarea sistemului termostat
- Pasul 5: Pasul 4: Configurarea sistemului de ușă
- Pasul 6: Pasul 6: Configurarea sistemului de lumină de inundații
- Pasul 7: Concluzie
Video: Sistem Arduino Smart Home: 7 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
În acest Instructable vă vom arăta cum să vă creați propriul sistem inteligent de acasă cu aplicația MATLAB's Designer cu o placă Sparkfun Red. Acest instructabil poate fi folosit pentru a obține o înțelegere de bază a proiectantului de aplicații al MATLAB, precum și pentru a utiliza un fotorezistor, servomotor și un senzor de mișcare PIR.
Pasul 1: Pentru a începe: materiale
Acest proiect necesită următoarele materiale:
- Arduino Uno (Pentru acest proiect am folosit o placă Sparkfun Red)
- Un fotorezistor
- Un mini-servomotor
- Un servomotor continuu
- Un senzor de mișcare PIR
- Un senzor de temperatură
- 2 LED-uri
- Firele și rezistențele după cum este necesar
Pasul 2: Pasul 2: Abordarea problemei de rezolvat
Scopul principal al acestui proiect a fost crearea unui sistem inteligent ușor de utilizat, prin codificarea unei plăci Arduino Uno cu MATLAB. Mai întâi ne-am gândit să lucrăm doar cu un senzor de temperatură și umiditate, totuși, dacă am rămâne cu acești doi senzori, sistemul nostru inteligent de casă nu ar putea fi comercializat cu ușurință pentru un public general. Am decis că dorim să creăm un sistem global de energie inteligentă pentru casă, care să funcționeze ca un termostat inteligent și un sistem de securitate. În cele din urmă, am vrut să lucrăm cu AppDesigner de la MATLAB, astfel încât utilizatorul să poată modifica cu ușurință casa inteligentă după bunul plac.
Pasul 3: Pasul 3: Configurarea GUI și a fluxului de cod de bază
Pentru a începe, va trebui să deschideți MATLABs AppDesigner și să plasați următoarele:
Două câmpuri de editare numerică pentru o intrare de prag cald și rece
Un buton pentru deblocarea ușii
Și patru lămpi indicatoare pentru șemineu, ușă, ventilator și lumină de inundații.
Două etichete pentru a comunica cu utilizatorul.
Pentru acest proiect, am găsit mai ușor să lucrăm cu variabile globale și funcția de pornire în cadrul proiectantului. Veți avea nevoie de aceste variabile în cadrul funcției de pornire:
globală a
a = arduino ('COM3', 'uno', 'Biblioteci', 'Servo'); global s global p global hotUI global coldUI global unlock global temp global curr_temp global int_light
În acest moment avem doar o sarcină pentru variabila a, astfel încât computerul dvs. să poată citi arduino. COM3 poate diferi în funcție de portul pe care îl poate utiliza computerul.
Când rulați codul, acesta va începe în cadrul funcției de pornire, creând variabilele globale și calibrând sistemul. La sfârșitul acestei funcții va exista o funcție de temporizare care apelează o proprietate numită Timer. În cadrul acestei proprietăți Timer, introducem codul care rulează sistemul de acasă, astfel încât temporizatorul să nu execute din nou codul de calibrare.
Notă: Nu am dat instrucțiuni de cablare pentru sistem. Ne-am referit la manualul care vine cu placa SparkFun Red.
Pasul 4: Pasul 3: Configurarea sistemului termostat
Funcția pentru termostat funcționează după cum urmează:
Utilizatorul va introduce ce temperatură consideră că este prea caldă sau prea rece. Odată ce termometrul a citit, dacă locuința este prea rece, atunci „șemineul” (un LED roșu) se va aprinde și va încălzi casa. Dacă locuința este prea fierbinte, atunci un "ventilator" (servomotor continuu) va porni răcirea casei.
Pentru a codifica sistemul termostat:
Vom începe în cadrul funcției de pornire pentru a afișa temperatura curentă și pentru a permite utilizatorului să introducă pragurile la rece și cald.
p = 'A0'% Pin fotorezistor
volt = readVoltage (a, temp); celc = (volt-0,5). * 100; curr_temp = celc * 9/5 + 32; app. Label_4. Text = num2str (curr_temp); % Numărul etichetei poate schimba pauza (10); % Poate vrea să se schimbe !!!!!
Apoi vom finaliza sistemul de termostat în cadrul proprietății Timer.
global curr_temp
global coldUI global a global hotUI if curr_temp hotUI app. FanStateLamp. Color = [0,47 0,67 0,19]; % Se transformă în lampă GUI verde writePWMDutyCycle (a, 'D11',.9)% Următoarele trei linii de cod execută servo pauza ventilatorului (10) writePWMDutyCycle (a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; % Aceasta oprește toate lămpile GUI și aplicația pentru șemineu. FanStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D13', 0); Sfârșit
Pasul 5: Pasul 4: Configurarea sistemului de ușă
Funcția pentru ușă funcționează după cum urmează:
Când rulați codul MATLAB pentru prima dată, aplicația vă va cere să deschideți ușa, astfel încât fotorezistorul să poată efectua o citire inițială a luminii. Odată ce acest lucru este finalizat, temporizatorul se va activa și fotorezistorul va efectua citiri secundare ale luminii. Dacă citirea luminii secundare este mai ușoară decât cea inițială, un servomotor va bloca ușa. Dacă utilizatorul dorește ușa deblocată, poate apăsa un buton din aplicație care va debloca ușa.
Pentru a configura servomotorul și fotorezistorul:
Pentru a codifica sistemul ușii:
Vom începe în cadrul funcției de pornire pentru a face citirile inițiale ale luminii.
s = servo (a, 'D9')% Pin se poate schimba pe baza cablării
app. Label_4. Text = 'Vă rugăm să deschideți ușa pentru a calibra sistemul'; pauză (15); % Aceasta oferă timp utilizatorului să deschidă ușa int_light = readVoltage (a, p); app. Label_4. Text = 'Puteți scoate degetul';
Apoi, vom completa codul în cadrul proprietății Timer
deblocare globală
global int_light global s global a% Obțineți o citire curentă a luminii pentru a compara curr_light = readVoltage (a, p); % - Blocați ușa - dacă int_light <curr_light writePosition (s, 1)% Pozițiile servo pot diferi în funcție de pauza motorului (0,5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; end% - Deblocare ușă - dacă deblocare == 1234 pauză (0,5); writePosition (s,.52) app. DoorStateLamp. Color = [0,85 0,33 0,10]; Sfârșit
În cele din urmă vom crea butonul de deblocare callback. Odată ce utilizatorul apasă butonul de deblocare, deblocării variabilei globale i se va atribui un număr care poate completa instrucțiunea finală if din proprietatea Timer.
deblocare globală
deblocare = 1234;
Pasul 6: Pasul 6: Configurarea sistemului de lumină de inundații
Funcția pentru lumina de inundație funcționează după cum urmează:
Când porniți codul MATLAB, senzorul de mișcare PIR va începe să detecteze mișcarea. Odată ce detectează un anumit tip de mișcare, va întrerupe semnalul de alimentare. Odată ce semnalul este tăiat, o lumină de inundație se va aprinde în afara casei.
Pentru a configura sistemul de lumină de inundație:
Pentru a codifica sistemul de lumină de inundații:
De această dată putem trece la proprietatea Timer, deoarece nu este nevoie să scriem nicio variabilă suplimentară.
uman_detectat = readDigitalPin (a, 'D2'); % Pin se poate modifica în funcție de configurație dacă human_detected == 0 writeDigitalPin (a, 'D7', 1)% Pin poate modifica app. FloodLightStateLamp. Color = [0,47 0,67 0,19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0,9 0,9 0,9]; writeDigitalPin (a, 'D7', 0) end
Pasul 7: Concluzie
Acum, că aveți o schiță a GUI-ului dvs. cu aplicația Designer și codul dvs. pentru Arduino, sunteți gata să faceți propriile editări sau să conectați Arduino și să plecați!
Recomandat:
Sistem Alexa Smart Home folosind modulul de releu NodeMCU: 10 pași
Sistem Alexa Smart Home folosind modulul de releu NodeMCU: În acest proiect IoT, am realizat sistemul Alexa Smart Home Automation folosind NodeMCU ESP8266 & Modulul de releu. Puteți controla cu ușurință lumina, ventilatorul și alte aparate de uz casnic cu comanda vocală. Pentru a conecta difuzorul inteligent Echo Dot la
SmartBox - Sistem Smart Home pentru camera ta: 6 pași
SmartBox - Sistem Smart Home pentru camera dvs.: Bună ziua tuturor! În acest instructiv, vă voi explica cum să creați un sistem de cameră inteligentă. Acest sistem conține două dispozitive: un dispozitiv general cu senzor de umiditate și senzor de temperatură care măsoară calitatea vieții actuale în camera dvs. Tu
Sistem Smart Home: 6 pași
Sistem Smart Home: Acest instructabil vă va ajuta să explicați cum să configurați și să utilizați sistemul nostru Smart Home utilizând software-ul Matlab și hardware-ul Raspberry Pi. La sfârșitul acestui instructable, ar trebui să puteți utiliza pe deplin produsul nostru cu ușurință
Sistem Smart Home ieftin și ușor: 7 pași
Sistem Smart Home ușor și ieftin: Bună, sunt Ed. Sunt un copil de 15 ani, cu o pasiune pentru calcul, programare și inginerie electrică. Din moment ce sunt destul de tânăr, locuiesc în casa părinților mei, acest proiect a început când am decis să mă mut în camera mansardă / mansardă, în procesul de design
Sistem IoT Smart Home: 8 pași
IoT Smart Home System: Acesta este sistemul Keefe și Jons Smart Home de pe iot