Sommario:
- Passaggio 1: LED sensibile alla luce
- Passaggio 2: mini interruttore di alimentazione
- Passaggio 3: seconda fotocellula
- Passaggio 4: LED RGB
- Passaggio 5: sensore di temperatura
- Passaggio 6: motoriduttore DAGU
- Passaggio 7: codice
Video: Progetto casa intelligente EF230: 7 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Parti e materiali necessari:
- 1 Arduino MKR 1000
- 3 taglieri
- 2 Mini Fotocellule
- 1 transistor NPN
- 1 mini interruttore di alimentazione
- 1 LED – RGB (4 poli)
- 1 LED (colore a scelta)
- 1 Diodo 1N4148
- 1 resistori da 10K Ohm
- Resistenza da 5 100 Ohm
- 1 Sensore di temperatura TMP36
- 1 motoriduttore rapporto DAGU 48:1
- 25 fili di ponticello
- Cavo USB
- Programma MATLAB
-
Guida agli esperimenti SIK per la scheda Arduino 101/Genuino 101 - Collegamento alla guida agli esperimenti SIK
Questo progetto descrive in dettaglio la progettazione concettuale di un sistema di casa intelligente che utilizzerebbe i dati per aiutare i proprietari di case a ottimizzare l'utilizzo di energia e la sicurezza. Include un sensore di luce per accendere le luci esterne di notte, un sensore di luce per la sicurezza e un sensore di temperatura e una ventola per il controllo della temperatura interna.
Passaggio 1: LED sensibile alla luce
- La configurazione del LED sensibile alla luce è pensata per rappresentare le luci esterne di una casa che si accende di notte.
- Quando la mini fotocellula rileva una quantità di luce ridotta, il LED si accende.
- Per una casa intelligente questo ha implicazioni energetiche e di sicurezza. Risparmierà energia lasciando le luci spente durante il giorno e fornirà una maggiore sicurezza durante la notte.
- Il cablaggio e la configurazione esatti per questa parte del progetto possono essere trovati nell'esperimento 7 nella Guida all'esperimento SIK.
Passaggio 2: mini interruttore di alimentazione
- L'interruttore è il primo passo nel processo di sicurezza della casa intelligente.
- Quando è acceso, l'interruttore avvierà una risposta chiedendo all'utente se desidera accedere alla modalità "Casa" o "Fuori casa".
- Se viene selezionata la modalità "Casa", la sicurezza è considerata disattivata, ma selezionando la modalità "Fuori casa" si attiverà il sistema di sicurezza.
- Il cablaggio per questa parte del progetto può essere trovato nell'esperimento 6 nella Guida all'esperimento. Ai fini della casa intelligente, i LED e i loro cavi di collegamento trovati nell'esperimento 6 non devono essere inclusi.
Passaggio 3: seconda fotocellula
- La seconda fotocellula funge da sensore di movimento per il sistema di sicurezza della casa intelligente.
- Il sensore viene utilizzato solo quando il sistema è in modalità 'Away' come descritto nel passaggio precedente.
- Se la fotocellula avverte una diminuzione della quantità di luce che riceve, la riconosce come movimento all'interno della casa.
- La configurazione per questa parte del progetto può essere trovata nell'esperimento 7 nella Guida all'esperimento SIK. Tuttavia, nel cablaggio è necessario includere solo la fotocellula e i relativi cavi di collegamento.
Passaggio 4: LED RGB
- Il LED RGB viene utilizzato in combinazione con il mini interruttore di alimentazione e la seconda fotocellula per il sistema di sicurezza della casa intelligente.
- I tre diversi colori vengono utilizzati come indicatori per il residente della casa intelligente.
- Quando il sistema è in modalità 'Home', il LED diventa blu. Quando il sistema è in modalità 'Away' il LED diventa verde. Quando interviene la fotocellula utilizzata come sensore di movimento, la luce lampeggia in rosso.
- Il cablaggio per il LED RGB può essere trovato nell'esperimento 3 della SIK Experiment Guide.
Passaggio 5: sensore di temperatura
- Il sensore di temperatura è una parte importante del risparmio energetico nella casa intelligente.
- Il residente è in grado di inserire una temperatura desiderata per la propria casa quando la casa intelligente è in uso.
- Il sensore di temperatura è il modo in cui il sistema sa quanto la temperatura effettiva è lontana dalla temperatura desiderata.
- L'impostazione per il sensore di temperatura può essere trovata nell'esperimento 9 della Guida all'esperimento SIK.
Passaggio 6: motoriduttore DAGU
- Il motore consente alla smart home di regolare la temperatura in casa in base alla temperatura desiderata e alle letture del sensore di temperatura.
- Agendo come l'unità CA in casa, il motore girerà a velocità diverse in base a quanto è più alta la temperatura effettiva rispetto alla temperatura desiderata. Maggiore è la differenza, più velocemente il motore gira.
- Il cablaggio per il motore può essere trovato nella Guida agli esperimenti nell'esperimento 11.
Passaggio 7: codice
- Il codice per la casa intelligente include più interfacce utente che consentono al residente di capire facilmente come funziona e di modificare facilmente le impostazioni.
- Con il sistema di casa intelligente, il residente riceverà un avviso via e-mail se il sensore di movimento viene attivato mentre sono assenti.
- L'unica modifica da fare è inserire le informazioni per l'e-mail del mittente e l'indirizzo e-mail del destinatario.
chiaro un; chiara s; chiaro m; clc; chiudi tutto; % Cancella le variabili arduino e servo in modo che possano essere ridefinite ogni volta in modo che il codice venga eseguito in modo efficace ("clear m" è necessario affinché uno dei cicli while funzioni correttamente)a = arduino(); % Imposta la variabile arduino
s = servo(a, 'D6'); % Imposta la variabile servo
% Inizializza le variabili e-mail per l'e-mail di avviso del sistema di sicurezza
emails = {'inserire l'indirizzo del destinatario'}; % Array di e-mail a cui inviare l'e-mail di sicurezza
% Impostazioni delle preferenze di posta elettronica necessarie per utilizzare un Gmail per inviare la posta da
setpref('Internet', 'E_mail', 'indirizzo email del mittente');
setpref('Internet', 'Nome utente_SMTP', 'nome utente del mittente');
setpref('Internet', 'SMTP_Password', 'password del mittente');
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');
% oggetto dell'email e variabili di testo
subj = 'Allarme intruso a casa tua';
text = 'Ciao, questo è il tuo sistema di sicurezza Smart Home che ti informa che è stato rilevato un movimento fuori casa. Abbiamo preso le misure necessarie e contattato le autorità per te. Rimani al sicuro.';
mentre vero
prompt = {'Inserisci la temperatura domestica desiderata (tra 65F e 85F):'}; % Richiedi il menu di input dell'utente
dlgtitle = 'Selezione temperatura'; % Titolo per il menu di input dell'utente
dim = [1 30]; % Dimensioni per il menu di input dell'utente
definput = {'72'}; % Input predefinito che viene visualizzato quando il menu viene aperto per la prima volta
tempsel_array = inputdlg(prompt, dlgtitle, dims, definput); % Menu di input utente popup che salverà il numero inserito in un array
if ~isempty(tempsel_array) % Se l'array NON è vuoto
tempsel_char = cell2mat(tempsel_array); % Converti l'array in una stringa di caratteri
tempsel = str2double(tempsel_char); % Converti la stringa di caratteri in numeri
thingSpeakWrite(chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Scrivi la temperatura selezionata sul tuo canale ThingSpeak
break % Interrompere il ciclo while in modo che il menu non venga visualizzato più volte
else % Se l'utente fa clic su Annulla invece di inserire una temperatura
msg1 = msgbox('Nessuna temperatura selezionata, il valore predefinito è 85F', 'Attenzione!'); % Messaggio visualizzato all'utente dopo aver fatto clic su Annulla
waitfor(msg1); % Attendi che la finestra di messaggio si chiuda prima di continuare
tempsel = 85; % Impostare la temperatura su quanto indicato nella finestra del messaggio
thingSpeakWrite(chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Scrivi la temperatura selezionata sul tuo canale ThingSpeak
break % Interrompere il ciclo while in modo che il menu non venga visualizzato più volte
fine
fine
mentre vero
ID bambino = 745517; % ID canale ThingSpeak
writeKey = 'G9XOQTP8KOVSCT0N'; Tasto % per l'accesso al canale ThingSpeak
% Inizializza i sensori per recuperare i dati
tempread = readVoltage(a, 'A3'); % Leggere la tensione del sensore di temperatura
lightl1 = readVoltage(a, 'A2'); % Livello di luce per la fotoresistenza che va al LED rosso
lightl2 = readVoltage(a, 'A5'); % Livello di luce per la fotoresistenza che va al sistema di sicurezza
switchv = readVoltage(a, 'A0'); Valore % per l'interruttore
% Converti i dati della temperatura dalla tensione in gradi Fahrenheit
tempC = (tempread - 0,5) * 100; % Converti la tensione in temperatura in gradi Celsius
tempF = (tempC * 9/5) + 32; % Converti la temperatura in gradi Celsius in temperatura in Fahrenheit
% Inizializzare i numeri dei pin per il LED multicolore
redp = 'D9'; % Pin per luce rossa da LED
greenp = 'D10'; % Pin per luce verde da LED
bluep = 'D11'; % Pin per luce blu da LED
se tempsel < tempF % Se la temperatura selezionata è maggiore della temperatura ambiente
writePosition(s, 1); % Il servo inizierà a muoversi
pause(10) % Il servo continuerà a girare per 10 secondi per indicare che l'AC si spegnerà dopo un determinato periodo di tempo
writePosition(s, 0); % Spegnere la ventola allo scopo di continuare il codice senza ventola accesa
tempsel = 150; % Modificare il valore della temperatura per uscire dal ciclo dopo che la ventola si è spenta, di nuovo solo allo scopo di continuare il codice
fine
if lightl1 <= 3 % Se la prima fotoresistenza rileva un basso livello di luce
writeDigitalPin(a, 'A1', 1); % Accendere il LED rosso che rappresenta le luci esterne
altrimenti % Se il livello di luce è di nuovo alto
writeDigitalPin(a, 'A1', 0); % Spegnere il LED rosso quando il livello di luce è di nuovo abbastanza alto
fine
se interruttorev > 3 % Se l'interruttore è acceso
A = esiste('m', 'var'); % Verifica l'esistenza della variabile 'm', questo verrà inizializzato per il ciclo while e consentirà di interromperlo quando viene selezionata una voce di menu (questo è il motivo per cui clear m deve essere eseguito all'inizio del codice)
mentre A==0 % Il ciclo verrà eseguito finché non esiste la variabile 'm'
menutext = 'In quale modalità di sicurezza vuoi entrare?'; % Testo per il menu a comparsa di sicurezza
scelte = {'Casa', 'Fuori'}; % Scelte per il menu a comparsa di sicurezza
m = menu(testomenu, scelte); % Menu a comparsa per le modalità del sistema di sicurezza
break % Assicura che il ciclo while sia interrotto in modo che il menu non venga visualizzato più volte
fine
if m == 1 % Se è selezionata la modalità 'Home'
writeDigitalPin(a, bluep, 1); % Accendere solo la luce blu nel LED che cambia colore
writeDigitalPin(a, redp, 0);
writeDigitalPin(a, greenp, 0);
elseif m == 2 % Se è selezionata la modalità 'Away'
writeDigitalPin(a, bluep, 0);
writeDigitalPin(a, redp, 0);
writeDigitalPin(a, greenp, 1); % Accendere solo la luce verde nel LED che cambia colore
if lightl2 <= 3 % Se il livello di luce nella seconda fotoresistenza è basso, rappresentando un movimento rilevato dal sistema di sicurezza
sendmail (e-mail, oggetto, testo); % Invia un messaggio di posta elettronica con le proprietà di posta elettronica precedentemente definite writeDigitalPin(a, greenp, 0); % Flash rosso acceso e spento 2 volte
writeDigitalPin(a, redp, 1);
pausa(0.3)
writeDigitalPin(a, redp, 0);
pausa(0.3)
writeDigitalPin(a, redp, 1);
pausa(0.3)
writeDigitalPin(a, redp, 0);
pausa(0.3)
writeDigitalPin(a, redp, 1); % Termina con un rosso fisso dopo aver lampeggiato per mostrare che c'è movimento fino a quando il livello della luce non torna su
msg2 = msgbox('Intruso rilevato dal sistema di sicurezza, è stata inviata un'e-mail ai proprietari della casa per informarli.', 'ATTENZIONE!'); % Finestra di messaggio per informare l'utente del movimento e per informare sull'e-mail inviata waitfor(msg2) % Attendi che la finestra di messaggio si chiuda prima di continuare
altro
writeDigitalPin(a, greenp, 1); % Una volta che il livello di luce è aumentato di nuovo, tornerà al verde
fine
fine
elseif switchv < 3,3 % Se l'interruttore è spento
writeDigitalPin(a, bluep, 0); % Spegnere completamente il LED per mostrare che il sistema di sicurezza è spento
writeDigitalPin(a, redp, 0);
writeDigitalPin(a, greenp, 0);
fine
fine
Consigliato:
Luce LED da scrivania intelligente - Illuminazione intelligente con Arduino - Area di lavoro Neopixel: 10 passaggi (con immagini)
Luce LED da scrivania intelligente | Illuminazione intelligente con Arduino | Neopixels Workspace: Al giorno d'oggi trascorriamo molto tempo a casa, studiando e lavorando virtualmente, quindi perché non rendere il nostro spazio di lavoro più grande con un sistema di illuminazione personalizzato e intelligente basato su Arduino e LED Ws2812b. Qui ti mostro come costruire il tuo Smart Luce LED da scrivania che
Vaso per piante intelligente automatico - (fai da te, stampa 3D, Arduino, autoirrigazione, progetto): 23 passaggi (con immagini)
Vaso per piante intelligente automatico - (fai da te, stampato in 3D, Arduino, Self Watering, Project): Ciao, a volte quando ci allontaniamo da casa per alcuni giorni o siamo molto occupati, le piante della casa soffrono (ingiustamente) perché non vengono annaffiate quando sono bisogno di essa. Questa è la mia soluzione. È un vaso intelligente che include: serbatoio dell'acqua integrato. Un senso
Proteggi in modo intelligente la tua casa intelligente: 14 passaggi
Proteggi in modo intelligente la tua casa intelligente: sto partecipando al concorso sicuro e protetto. Se ti piace il mio tutorial, per favore votalo! Ti mostrerò come proteggere in modo semplice ed economico la tua casa e il suo ambiente. Contiene dei segmenti in cui imparerai come: 1. Configura y
Avviare una casa intelligente - Finale del progetto: 6 passaggi
Avvio di una casa intelligente - Finale del progetto: Projeto apresentado é parte do projeto final do curso de IoT applicado a Smart Home.O projeto mostrado a seguir é parte do projeto final a ser apresentado no curso de IoT aplicada a Smart Home, que consiste de sensori e attuatori conec
Bruciatore alimentato tramite USB! Questo progetto può bruciare attraverso plastica/legno/carta (il progetto divertente deve anche essere un legno molto fine): 3 passaggi
Bruciatore alimentato tramite USB! Questo progetto può bruciare attraverso plastica/legno/carta (il progetto divertente deve anche essere un legno molto fine): NON FARLO UTILIZZANDO USB!!!! ho scoperto che può danneggiare il tuo computer da tutti i commenti. il mio computer va bene comunque Utilizzare un caricabatterie per telefono da 600 mA 5 V. ho usato questo e funziona bene e nulla può essere danneggiato se usi una spina di sicurezza per interrompere l'alimentazione