Tutorial do Arduino:JARVIS v1 | Como fazer uma automação residencial
Componentes e suprimentos
| × | 1 | ||||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 10 |
Ferramentas e máquinas necessárias
|
Aplicativos e serviços online
|
Sobre este projeto
Por que construímos isso?
Sendo um fã do Homem de Ferro, fiquei muito inspirado por JARVIS, um assistente pessoal controlado por voz e eu queria muito construir um sistema de automação residencial. Embora existam muitos sistemas disponíveis, decidi construir meu próprio sistema de automação residencial usando o Arduino.
Como funciona:
Este projeto visa controlar dispositivos elétricos e eletrônicos como Luz, Ventilador, TV, etc. Isso é feito usando o Arduino e o circuito de retransmissão que é instalado em cada cômodo da casa. Os dados serão publicados no Arduino via módulo Bluetooth e outras implementações podem ser feitas.
A principal tarefa seria adquirir os dados e publicá-los no Arduino usando um dispositivo móvel. E posteriormente com os dados, pode ser feito um controle para ligar / desligar os aparelhos.
Construção de Hardware
O circuito é muito simples. O custo geral deste produto seria inferior a $ 20.
Etapa 1:peças e materiais
Os componentes necessários para este projeto são:
- Arduino
- Relay Breakout board
- Módulo Bluetooth - HC-05
- Cabos de jumpers
Etapa 2:conexões
As conexões a seguir são feitas usando cabos Jumper. Para esta demonstração, usei quatro relés, o que significa que quatro dispositivos podem ser controlados usando o APP.
* Arduino -> MÓDULO BT *
- TX -> RX
- RX -> TX
- VCC -> 3,3v
- GND -> GND
* Arduino -> Relay Board *
- IN1 -> D2
- IN2 -> D3
- IN3 -> D4
- IN4 -> D5
- VCC -> VCC
- GND -> GND
Etapa 3:o código
Você pode encontrar o código de exemplo abaixo.
String voice;
int
led1 =2, // Conecte o LED 1 ao pino 2
led2 =3, // Conecte o LED 2 ao pino 3
led3 =4, // Conecte o LED 3 ao pino 4
led4 =5, // Conecte o LED 4 ao pino 5
led5 =6; // Conecte o LED 5 ao pino # 6
// -------------------------- Chame uma função ------ ------------------------- //
void allon () {
digitalWrite (led1, HIGH);
digitalWrite (led2, HIGH);
digitalWrite (led3, HIGH);
digitalWrite (led4, HIGH);
digitalWrite (led5, HIGH);
}
void alloff () {
digitalWrite (led1, LOW);
digitalWrite (led2, LOW);
digitalWrite (led3, LOW);
digitalWrite (led4, LOW);
digitalWrite (led5, LOW);
}
// ----------------------------- ------------------------------------------ //
configuração nula () {
Serial.begin (9600);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (led4, OUTPUT);
pinMode (led5, OUTPUT);
}
// -------------------- -------------------------------------------------- - //
void loop () {
while (Serial.available ()) {// Verificar se há um byte disponível para ler
delay (10); // Atraso adicionado para tornar a coisa estável
char c =Serial.read (); // Realizar uma leitura serial
if (c =='#') {break;} // Sai do loop quando o # é detectado após a palavra
voz + =c; // Abreviação de voice =voice + c
}
if (voice.length ()> 0) {
Serial.println (voz);
// ---- -------------------------------------------------- ----------------- //
// ---------- Controle vários pinos / LEDs ---------- //
if (voice =="* all on") {allon ();} // Desativa todos os pinos (função de chamada)
else if (voice =="* all off") { alloff ();} // Ativar todos os pinos (função de chamada)
// ---------- Ativar um por um -------- - //
else if (voice =="* TV on") {digitalWrite (led1, HIGH);}
else if (voice =="* fan on") {digitalWrite (led2, ALTO);}
else if (voz =="* computador ligado") {digitalWrite (led3, HIGH);}
else if (voz =="* luzes do quarto acesas") {digitalWrite (led4 , HIGH);}
else if (voice =="* banheiro lights on") {digitalWrite (led5, HIGH);}
// ---------- Desligue um -Por um ---------- //
else if (voz =="* TV desligada") {digitalWrite (led1, LOW);}
else if (voz =="* ventilador desligado") {digitalWrite (led2, LOW);}
else if (voz =="* compute r off ") {digitalWrite (led3, LOW);}
else if (voz ==" * luzes do quarto apagadas ") {digitalWrite (led4, LOW);}
else if (voz ==" * luzes do banheiro apagadas ") {digitalWrite (led5, LOW);}
// ----------------------------- ------------------------------------------ //
voz ="";}} // Redefine a variável após iniciar
Etapa 4:Aplicativo
Por enquanto usaremos o aplicativo pronto. Nos dias seguintes publicarei o aplicativo uma vez após o processamento dos certificados.
BT Voice Control para Arduino criado por SimpleLabsIN:https://apkpure.com/bt-voice-control-for-arduino/robotspace.simplelabs.amr_voice/download?from=details
Vídeo de trabalho deste projeto:
Atualmente, a funcionalidade se limita a ligar ou desligar os dispositivos, mas pode processar a linguagem natural em nível básico que permite ao usuário integrar o processamento da linguagem natural aos outros projetos.
Muito obrigado ao Hackster.io por permitir que eu e todos os usuários desta grande plataforma participássemos.
Obrigado por realizar essas atividades que incentivam os jovens e adolescentes a criar e inventar.
Dê um joinha se realmente te ajudou e siga meu canal para projetos interessantes. :)
Compartilhe este vídeo se quiser.
Feliz por ter se inscrito:https://www.youtube.com/c/rahulkhanna24june?sub_confirmation=1
Obrigado por ler!
Código
- Amostra de código
Amostra de código Arduino
// Codificado por:Angelo Casimiro (27/4/14) // Arduino ativado por voz (Bluetooth + Android) // Sinta-se à vontade para modificá-lo, mas lembre-se de dar creditString voice; intled1 =2, // Conectar LED 1 Para o pino # 2led2 =3, // Conecte o LED 2 ao pino # 3led3 =4, // Conecte o LED 3 ao pino # 4led4 =5, // Conecte o LED 4 ao pino # 5led5 =6; // Conecte o LED 5 ao pino 6 // -------------------------- Chame uma função ---------- --------------------- // void allon () {digitalWrite (led1, HIGH); digitalWrite (led2, HIGH); digitalWrite (led3, HIGH); digitalWrite (led4, HIGH); digitalWrite (led5, HIGH);} void alloff () {digitalWrite (led1, LOW); digitalWrite (led2, LOW); digitalWrite (led3, LOW); digitalWrite (led4, LOW); digitalWrite (led5, LOW);} // ---------------------------------------- ------------------------------- // void setup () {Serial.begin (9600); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT);} // ---------------------------------------- ------------------------------- // void loop () {while (Serial.available ()) {// Verificar se houver um byte disponível para ler o retardo (10); // Atraso adicionado para tornar a coisa estável char c =Serial.read (); // Realiza uma leitura serial if (c =='#') {break;} // Sai do loop quando o # é detectado após a palavra voice + =c; // Abreviação de voice =voice + c} if (voice.length ()> 0) {Serial.println (voice); // -------------------- -------------------------------------------------- - // // ---------- Controle vários pinos / LEDs ---------- // if (voice =="* all on") {allon ();} / / Desativar todos os pinos (função de chamada) else if (voz =="* all off") {alloff ();} // Ativar todos os pinos (função de chamada) // ---------- Ativar On One-By-One ---------- // else if (voice =="* TV on") {digitalWrite (led1, HIGH);} else if (voice =="* fan on" ) {digitalWrite (led2, HIGH);} else if (voz =="* computer on") {digitalWrite (led3, HIGH);} else if (voz =="* luzes do quarto acesas") {digitalWrite (led4, HIGH) );} else if (voice =="* banheiro lights on") {digitalWrite (led5, HIGH);} // ---------- Desligue um por um ------ ---- // else if (voice =="* TV off") {digitalWrite (led1, LOW);} else if (voice =="* fan off") {digitalWrite (led2, LOW);} else if (voz =="* computador desligado") {digitalWrite (led3, LOW);} else if (voz =="* luzes do quarto apagadas") {digitalWrite (led4, LOW);} else i f (voz =="* luzes do banheiro apagadas") {digitalWrite (led5, LOW);} // --------------------------- -------------------------------------------- // voz ="";}} // Redefine a variável após iniciar
Repo do Projeto
https://github.com/Rahul24-06/Arduino-Tutorial-JARVIS-v1-How-to-make-a-Home-AutomationEsquemas
Processo de manufatura
- RASPBERRY PI HOME AUTOMATION
- Faça uma máquina de escrever trabalhos de casa DIY em casa
- Encontre-me
- Como fazer um botão de teclado punível personalizável
- Joystick Arduino
- Como fazer música com um Arduino
- Como fazer a abertura automática de porta baseada no Arduino
- Monitor doméstico
- Como fazer um carro Arduino controlado por Bluetooth
- Como usar o Modbus com Arduino