Sommario:

Arduino Smart Home System: 7 passaggi
Arduino Smart Home System: 7 passaggi

Video: Arduino Smart Home System: 7 passaggi

Video: Arduino Smart Home System: 7 passaggi
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Luglio
Anonim
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System
Arduino Smart Home System

In questo Instructable ti mostreremo come creare il tuo sistema di casa intelligente con App Designer di MATLAB con una scheda Sparkfun Red. Questo Instructable può essere utilizzato per acquisire una comprensione di base dell'App Designer di MATLAB, nonché per utilizzare una fotoresistenza, un servomotore e un sensore di movimento PIR.

Passaggio 1: per iniziare: materiali

Questo progetto richiede i seguenti materiali:

- Arduino Uno (Per questo progetto abbiamo utilizzato una scheda Sparkfun Red)

- Una fotoresistenza

- Un mini servomotore

- Un servomotore continuo

- Un sensore di movimento PIR

- Un sensore di temperatura

- 2 LED

- Fili e resistori secondo necessità

Passaggio 2: Passaggio 2: affrontare il problema da risolvere

L'obiettivo principale di questo progetto era creare un sistema di casa intelligente facile da usare codificando una scheda Arduino Uno con MATLAB. Inizialmente abbiamo pensato di lavorare solo con un sensore di temperatura e umidità, tuttavia se fossimo rimasti con quei due sensori il nostro sistema di casa intelligente non sarebbe stato facilmente commercializzabile per un pubblico generico. Abbiamo deciso che volevamo creare un sistema energetico domestico intelligente globale che funzionasse come un termostato intelligente e un sistema di sicurezza. Infine, volevamo lavorare con AppDesigner di MATLAB in modo che l'utente possa facilmente modificare la casa intelligente a suo piacimento.

Passaggio 3: Passaggio 3: configurazione della GUI e del flusso del codice di base

Passaggio 3: configurazione della GUI e del flusso del codice di base
Passaggio 3: configurazione della GUI e del flusso del codice di base

Per iniziare dovrai aprire MATLABs AppDesigner e inserire quanto segue:

Due campi di modifica numerici per un input di soglia caldo e freddo

Un pulsante per sbloccare la porta

E quattro spie luminose per il camino, la porta, il ventilatore e la luce di inondazione.

Due etichette per comunicare con l'utente.

Per questo progetto abbiamo trovato più facile lavorare con le variabili globali e la funzione di avvio all'interno del designer. Avrai bisogno di queste variabili all'interno della funzione di avvio:

globale

a = arduino('COM3', 'uno', 'Librerie', 'Servo'); global s global p global hotUI global coldUI global unlock global temp global curr_temp global int_light

Al momento abbiamo solo un'assegnazione per la variabile a in modo che il tuo computer possa leggere l'arduino. COM3 potrebbe differire a seconda della porta utilizzata dal computer.

Quando esegui il codice, verrà avviato all'interno della funzione di avvio creando le variabili globali e calibrando il sistema. Alla fine di questa funzione ci sarà una funzione timer che chiama una proprietà che abbiamo chiamato Timer. All'interno di questa proprietà Timer inseriamo il codice che esegue il sistema di casa in modo che il timer non esegua nuovamente il codice di calibrazione.

Nota: non abbiamo fornito alcuna istruzione di cablaggio per il sistema. Abbiamo fatto riferimento al manuale fornito con la scheda SparkFun Red.

Passaggio 4: Passaggio 3: Configurazione del sistema di termostato

Passaggio 3: configurazione del sistema di termostato
Passaggio 3: configurazione del sistema di termostato
Passaggio 3: configurazione del sistema di termostato
Passaggio 3: configurazione del sistema di termostato

La funzione per il termostato funziona come segue:

L'utente inserirà la temperatura che considera troppo calda o troppo fredda. Una volta che il termometro effettua la lettura, se la casa è troppo fredda, il "camino" (un LED rosso) si accenderà e riscalderà la casa. Se la casa è troppo calda, un "ventilatore" (servomotore continuo) si accenderà per raffreddare la casa.

Per codificare il sistema Termostato:

Inizieremo all'interno della funzione di avvio per visualizzare la temperatura corrente e consentire all'utente di inserire le proprie soglie di freddo e caldo.

p = 'A0' %pin fotoresistenza

volt = readVoltage(a, temp); celc = (volt-0,5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str(curr_temp); %Il numero dell'etichetta può cambiare la pausa(10); %Potrebbe voler cambiare!!!!!

Quindi completeremo il sistema del termostato all'interno della proprietà Timer.

curr_temp globale

global coldUI global un hotUI globale if curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %Diventa verde la spia della GUI writePWMDutyCycle(a, 'D11',.9) %Le successive tre righe di codice eseguono la pausa della ventola del servo (10) writePWMDutyCycle(a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Questo disattiva tutte le lampade della GUI e l'app del caminetto. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D13', 0); fine

Passaggio 5: Passaggio 4: configurazione del sistema di porte

Passaggio 4: configurazione del sistema di porte
Passaggio 4: configurazione del sistema di porte

La funzione per la porta funziona come segue:

Quando esegui per la prima volta il tuo codice MATLAB, l'app ti chiederà di aprire la porta in modo che la fotoresistenza possa eseguire una lettura iniziale della luce. Una volta completato, il timer si attiverà e la fotoresistenza eseguirà le letture della luce secondaria. Se la lettura della luce secondaria è più chiara di quella iniziale, un servomotore bloccherà la porta. Se l'utente desidera che la porta venga sbloccata, può premere un pulsante sull'app che sbloccherà la porta.

Per configurare il servomotore e la fotoresistenza:

Per codificare il sistema della porta:

Inizieremo all'interno della funzione di avvio per prendere le letture iniziali della luce.

s = servo(a, 'D9') %Pin può cambiare in base al cablaggio

app. Label_4. Text='Apri la porta per calibrare il sistema'; pausa(15); %Questo dà tempo all'utente di aprire la porta int_light = readVoltage(a, p); app. Label_4. Text = 'Puoi rimuovere il dito';

Successivamente, completeremo il codice all'interno della proprietà Timer

sblocco globale

global int_light global s global a %Ottieni una lettura della luce corrente da confrontare curr_light = readVoltage(a, p); % -- Lock Door -- if int_light<curr_light writePosition(s, 1) %Le posizioni del servo possono differire per pausa del motore (0.5); app. DoorStateLamp. Color = [0,47 0,67 0,19]; end % -- Sblocca porta -- se sblocca == 1234 pause(0.5); writePosition(s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; fine

Infine creeremo la richiamata del pulsante di sblocco. Una volta che l'utente preme il pulsante di sblocco, alla variabile globale unlock verrà assegnato un numero che può completare l'istruzione if finale nella proprietà Timer.

sblocco globale

sbloccare = 1234;

Passaggio 6: Passaggio 6: configurazione del sistema di illuminazione Flood Light

Passaggio 6: configurazione del sistema Flood Light
Passaggio 6: configurazione del sistema Flood Light

La funzione per il proiettore funziona come segue:

Quando avvii il codice MATLAB, il sensore di movimento PIR inizierà a rilevare il movimento. Una volta rilevato un tipo di movimento, interromperà un segnale di alimentazione. Una volta interrotto il segnale, si accenderà una luce di inondazione all'esterno della casa.

Per configurare il sistema di illuminazione diffusa:

Per codificare il sistema di illuminazione diffusa:

Questa volta possiamo saltare alla proprietà Timer perché non abbiamo bisogno di scrivere variabili extra.

human_detected = readDigitalPin(a, 'D2'); %Pin può cambiare in base alla configurazione se human_detected == 0 writeDigitalPin(a, 'D7', 1) %Pin può cambiare 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

Passaggio 7: conclusione

Ora che hai una bozza della tua GUI con App Designer e il tuo codice per Arduino sei pronto per fare le tue modifiche o collegare il tuo Arduino e via!

Consigliato: