Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Automação residencial inteligente e sistema de segurança usando 1Sheeld

Componentes e suprimentos

Arduino UNO
× 1
1Sheeld
× 1
Relé (genérico)
Iam usando YW Robot Relay 4 Channel
× 1
Buzzer
× 2
Sensor de temperatura
Iam usando LM35DZ
× 1
Fios de jumpers (genérico)
× 1
Sensor de movimento PIR (genérico)
× 1
Chave magnética SparkFun da porta
× 2
Adafruit LCD padrão - 16x2 branco em azul
× 1

Ferramentas e máquinas necessárias

Cortador a laser (genérico)

Sobre este projeto























Olá, visão geral


A história começa aqui.

Decidimos fazer este projeto porque foi uma grande jogada para construir tudo isso juntos, este projeto irá ajudá-lo a compreender muitos conceitos e você obterá uma boa experiência, então vamos começar a aprender como construir essas coisas legais :)

Como nosso projeto funciona:

Este projeto torna você capaz de controlar todas as luzes de sua casa com comandos de voz ou com um SMS :), mas isso também era um sistema de segurança, quando algum estranho entra em sua casa enquanto você está dormindo ou sai de casa, ele envia um e-mail Para você diz que um estranho entrou em sua casa e um sistema de alarme (campainha) funcionará em sua casa. Além disso, quando você envia um SMS para acender ou apagar as luzes, ele envia um e-mail para avisar que o pedido foi Executado, também se o sensor Tmp detectar que a temperatura É Mais de 35 Um Alarme (Buzzer) Funcionará Em Sua Casa E O Sistema Enviará Para Você Um E-mail Diz Que O Temp. Era superior a 35.

NOTA:Não se esqueça de dizer Jarvis antes de qualquer comando que você queira dar :) Para tornar o sistema capaz de ouvir seu comando.

NOTA:Após qualquer comando que você der ao sistema, Jarvis responderá a você :) Como se você estivesse falando com seu assistente real.

NOTA:Para ligar o sistema de segurança, dê ao seu smartphone um comando de voz (segurança ativada), para desligar o sistema de segurança, diga (segurança desativada)

vamos saber mais sobre 1sheeld:

1Sheeld transforma seu smartphone em 40 escudos Arduino diferentes. Portanto, não precisamos comprar escudos para o Arduino, pois os temos em nosso smartphone.

Este é o motivo pelo qual usamos a placa 1Sheeld. Você não precisa comprar nenhum sensor porque já os tem em seu smartphone.

Se você quiser mais informações sobre como começar a usar 1Sheeld, clique aqui

Primeira coisa, você precisa pegar o arquivo CAD que carregamos e cortá-lo com a máquina de corte a laser.
  • Então você precisa colocar o sensor magnético da chave da porta na porta assim
  • Era um sensor digital, portanto, retornará um valor digital 0 OU 1
  • Você precisa calibrar seu sensor antes de usá-lo para saber qual é a leitura quando ele estava aberto e quando estava fechado.

As lâmpadas AC
  • Então você precisa cortar as paredes para colocar as lâmpadas em seus lugares específicos.
  • Conecte todos os fios das lâmpadas em paralelo.

O sensor de temperatura
  • Iam usando LM35DZ que tem 3 pernas
  • + V está conectado a 5V no Arduino
  • GND para o solo no Arduino
  • SAÍDA para o pino A0 no Arduino, que nos dará a leitura

Como usar 1sheeld?

1- Empilhe 1Sheeld no topo de sua placa Arduino e escreva o código usando a biblioteca 1Sheeld.

2 - Carregue o código no Arduino usando o IDE do Arduino (você pode baixar o IDE do Arduino daqui)

3 - Observação:certifique-se de que a chave UART esteja no modo de upload.

4 - Após concluir o upload do código, traga o switch de volta para o modo operacional

Nota:não se esqueça! Se você não mudar o interruptor UART de volta para o modo operacional, seu projeto não funcionará corretamente, pois você não terá comunicação entre 1Sheeld e a placa Arduino.





O aplicativo 1Sheeld:

  • Abra seu aplicativo 1Sheeld, você pode baixá-lo aqui
  • Em seguida, abra seu aplicativo e conecte-se à placa. Será necessário inserir o código de emparelhamento (o código de emparelhamento padrão é 1234) e conectar-se a 1Sheeld via bluetooth.
  • Em seguida, escolha as proteções que usaremos (SMS, reconhecimento de voz, texto para fala, relógio, e-mail).
  • Agora tente o seu trabalho :)

NOTA:Nós fizemos nosso próprio Jarvis feminino:D

Faça seu próprio Jarvis.

Código

  • Sistema de automação residencial e segurança inteligente
Sistema de automação e segurança residencial inteligente Arduino
 / * * Equipe de sistema de segurança e automação residencial inteligente SADEE * E-MAIL:[email protected] * Para mais projetos como nossa página FB:https://www.facebook.com/Scientific-%D9%90Association-of- the-Department-of-Electrical-Engineering-At-ACU-260274217766395 / * / # define CUSTOM_SETTINGS // Usado para definir uma blindagem específica com a qual trabalharemos para salvar a memória do Arduino # define INCLUDE_VOICE_RECOGNIZER_SHIELD // Ajude-nos a nos comunicar com o 1 Sheeld Board com comandos de voz # define INCLUDE_TEXT_TO_SPEECH_SHIELD #define INCLUDE_CLOCK_SHIELD # define INCLUDE_SMS_SHIELD # define INCLUDE_EMAIL_SHIELD #include  #include  #include  horas; // Variáveis ​​que economizarão horas e minutos String strh; // Usará esta linha para converter o valor interno que o relógio lê em StringString strm; char h [4]; char m [4]; LiquidCrystal lcd (2,3,4,5,6,7); # define receptionLamp A1 // Este é o relé de recepção #define bedRoomLamp A2 // Este é o quarto #define pathRoomLamp A3 // Este é o banheiro #define balaconyLamp A4 // Esta é a cozinha const char timeCommand [] ="que horas são"; // Os comandos que diremos ao 1Sheeld para executar sua tarefaconst char receptionCommandOn [] ="reception on"; const char receptionCommandOff [] ="recepção de"; const char whatsUp [] ="bom dia"; const char pathRoomCommandOn [] ="banheiro ligado"; const char pathRoomCommandOff [] ="banheiro desligado"; const char balaconyCommandOn [] ="cozinha ligada"; const char balaconyCommandOff [] ="cozinha desligada"; const char bedRoomCommandOn [] ="quarto ligado"; const char bedRoomCommandOff [] ="quarto desligado"; const char lightsOn [] ="ligado"; // Isso é para SMS Shield quando enviamos um SMS Contém (luzes acesas) As luzes acenderãoconst char lightsOff [] ="off"; // Isto é para SMS Shield quando enviamos um SMS contém (Lights ooff) As luzes irão desligar // ************************** *************************************************** ***************************** const char securityModeOn [] ="segurança ativada"; // Isto é para o sistema de segurança quando dissemos (Segurança ativada) Então acionamos o sistema de segurança Qualquer um quebrará o sistema O alarme funcionaráconst char securityModeOff [] ="segurança desativada"; // Desligando o sistema de segurança, qualquer pessoa quebra o sistema de segurança O alarme não funcionará // ****************************** *************************************************** *********************** const char mainCommand [] ="jarvis"; // Dizemos jarvis antes de qualquer comando de voz para fazer o sistema me ouvir String noon; // # define tmp A0 // Para o sensor TMP, usamos LM35DZ // int voltage, degree; // As variáveis ​​que conterão as diferentes tensões durante a mudança de temperaturas, e o grau em Celisus após um equalizador matemático simples. byte smile [] ={// Fazendo um símbolo de sorriso na tela de cristal líquido B00000, B01001, B01001, B00000, B00000, B10001, B01110, B00000,}; # define magnetReception 8 // O interruptor magnético para a recepção # define magnetBalacony 9 // A chave magnética para o Balaconyint buzzer2 =10; // Este Buzzer iS para sensor de temperatura // D11 estava livre; int buzzer1 =A5; // Esta campainha é para os interruptores magnéticos. Se alguém quebrar o sistema de segurança, a campainha funcionaráint magnetReceptionState; // A variável conterá a leitura do switch magnético se for 1 ou 0int magnetBalaconyState; int state =0; // Isso para segurança Jarvisbool; // Para o sistema de segurança void setup () {noTone (buzzer1); noTone (buzzer2); // analogReference (INTERNAL); // Referência para que o sensor TMP seja preciso 1.1 VoltagedigitalWrite (receptionLamp, HIGH); digitalWrite (bedRoomLamp, HIGH); digitalWrite (pathRoomLamp, HIGH); digitalWrite (balaconyLamp, HIGH); // passState =false; lcd.begin (16 , 2); // Comece o LCD OneSheeld.begin (); // Comece o OneSheeld BoardpinMode (receptionLamp, OUTPUT); pinMode (bedRoomLamp, OUTPUT); pinMode (balaconyLamp, OUTPUT); pinMode (pathRoomLamp, OUTPUT); pinMode (buzzer1, OUTPUT); // para switchpinMode magnético (magnetReception, INPUT_PULLUP); // Usamos o resistor PULLUP embutido no BoardpinMode (magnetBalacony, INPUT_PULLUP); // pinMode (tmp, INPUT); pinMode (buzzer2, OUTPUT); // para temperatura sensorlcd.createChar (0, smile); lcd.clear (); lcd.setCursor (0,0); lcd.print ("Bem-vindo ao"); delay (4000); lcd.clear (); lcd.setCursor (0,0); lcd.print ("Smart Home"); lcd.setCursor (0,1); lcd.print ("Automation And"); delay (4000); lcd.clear (); lcd .setCursor (0,0); lcd.print ("Sistema de segurança"); atraso (4000); lcd.clear (); lcd.setCursor (0,0); lcd.print ("CALIBRANDO ...."); delay (10000); if (! VoiceRecognition.isNewCommandReceived ()) // Se não houver Comandos de Voz Imprima este WOrds {lcd.clear (); lcd.setCursor (1,0); lcd.print ("Estamos aqui para"); lcd.setCursor (4,1); lcd.print ("AJUDE-O"); } security =false;} void loop () {Clock.queryDateAndTime (); // Esta função para consultar a data e hora usando a proteção do relógio no OneSheeld BoardSMS.setOnSmsReceive (&MyFunction); // Esta função para os minutos de SMS =Clock.getMinutes (); hours =Clock.getHours (); if (hours> 12) // Fazemos isso para alterar o horário do sistema de 24 horas para o sistema de 12 horas e para saber é É AM ou PM {horas- =12; meio-dia ="P M";} else {meio-dia ="A M"; } strh =String (horas); strm =String (minutos); strh.toCharArray (h, 4); // Convertendo as horas que convertemos em string para ser um Char Arraystrm.toCharArray (m, 4); VoiceRecognition.start (); // Inicia o Voice Recognition ShieldOneSheeld.delay (8000); // Atrase para fazer os pedidos, em seguida, inicie o Agaimif (VoiceRecognition.isNewCommandReceived ()) {if (! Strcmp (mainCommand, VoiceRecognition.getLastCommand ())) // Compare o último comando de voz com o comando principal, que é "Alexa" {TextToSpeech .dizer ("sim senhor"); // Esta função serve para ordenar que a proteção de texto para fala execute sua tarefa lcd.clear (); lcd.setCursor (8,0); lcd.write (byte (0)); estado =1; } if (! strcmp (receptionCommandOn, VoiceRecognition.getLastCommand ()) &&state ==1) // Compare as duas strings, o último comando recebido e a string que criei antes de {TextToSpeech.say ("ok senhor lâmpada na recepção está ligada "); OneSheeld.delay (2500); digitalWrite (receptionLamp, LOW); lcd.clear (); lcd.setCursor (0,0); lcd.print ("The Hall Lamp Is"); lcd.setCursor (8,1); lcd.print ("LIGADO"); estado =0; } else if (! strcmp (receptionCommandOff, VoiceRecognition.getLastCommand ()) &&state ==1) {TextToSpeech.say ("ok senhor lâmpada na recepção está desligada"); OneSheeld.delay (2500); digitalWrite (receptionLamp, HIGH); lcd.clear (); lcd.setCursor (0,0); lcd.print ("The Hall Lamp Is"); lcd.setCursor (7,1); lcd.print ("DESLIGADO"); estado =0; } else if (! strcmp (bedRoomCommandOn, VoiceRecognition.getLastCommand ()) &&state ==1) {TextToSpeech.say ("ok sir lamp in the bedRoom is on"); OneSheeld.delay (2500); digitalWrite (bedRoomLamp, LOW); lcd.clear (); lcd.setCursor (0,0); lcd.print ("The BedRoom"); lcd.setCursor (0,1); lcd.print ("lâmpada está:LIGADA"); estado =0; } else if (! strcmp (bedRoomCommandOff, VoiceRecognition.getLastCommand ()) &&state ==1) {TextToSpeech.say ("ok senhor lâmpada no quarto está desligada"); OneSheeld.delay (2500); digitalWrite (bedRoomLamp, HIGH); lcd.clear (); lcd.setCursor (0,0); lcd.print ("O quarto"); lcd.setCursor (0,1); lcd.print ("lâmpada está:DESLIGADA"); estado =0; } else if (! strcmp (pathRoomCommandOn, VoiceRecognition.getLastCommand ()) &&state ==1) {TextToSpeech.say ("ok senhor lâmpada no banheiro está ligada"); OneSheeld.delay (2500); digitalWrite (pathRoomLamp, LOW); lcd.clear (); lcd.setCursor (0,0); lcd.print ("O banheiro"); lcd.setCursor (0,1); lcd.print ("lâmpada está:LIGADA"); estado =0; } else if (! strcmp (pathRoomCommandOff, VoiceRecognition.getLastCommand ()) &&state ==1) {TextToSpeech.say ("ok senhor lâmpada no banheiro está desligada"); OneSheeld.delay (2500); digitalWrite (pathRoomLamp, HIGH); lcd.clear (); lcd.setCursor (0,0); lcd.print ("O banheiro"); lcd.setCursor (0,1); lcd.print ("lâmpada está:DESLIGADA"); } else if (! strcmp (balaconyCommandOn, VoiceRecognition.getLastCommand ()) &&state ==1) {TextToSpeech.say ("ok senhor lâmpada na cozinha está ligada"); OneSheeld.delay (2500); digitalWrite (balaconyLamp, LOW); lcd.clear (); lcd.setCursor (0,0); lcd.print ("A cozinha"); lcd.setCursor (0,1); lcd.print ("Lâmpada está:LIGADA"); estado =0; } else if (! strcmp (balaconyCommandOff, VoiceRecognition.getLastCommand ()) &&state ==1) {TextToSpeech.say ("ok senhor lâmpada na cozinha está desligada"); OneSheeld.delay (2500); digitalWrite (balaconyLamp, HIGH); lcd.clear (); lcd.setCursor (0,0); lcd.print ("A cozinha"); lcd.setCursor (0,1); lcd.print ("Lâmpada está:DESLIGADA"); estado =0; } else if (! strcmp (whatsUp, VoiceRecognition.getLastCommand ()) &&state ==1) {lcd.clear (); lcd.setCursor (0,0); lcd.print ("Bom dia :)"); lcd.setCursor (0,1); lcd.print ("É um bom dia"); TextToSpeech.say ("bom dia, senhor"); OneSheeld.delay (1500); TextToSpeech.say ("o tempo no cairo é"); OneSheeld.delay (1500); TextToSpeech.say (h); OneSheeld.delay (1000); TextToSpeech.say (m); OneSheeld.delay (1000); TextToSpeech.say (meio-dia); estado =0; } else if (! strcmp (timeCommand, VoiceRecognition.getLastCommand ()) &&state ==1) {lcd.clear (); lcd.setCursor (0,0); lcd.print ("Time In Cairo Is"); lcd.setCursor (0,1); lcd.print (h); lcd.print (":"); lcd.print (m); lcd.print (""); lcd.print (meio-dia); TextToSpeech.say ("o tempo no cairo é"); OneSheeld.delay (1500); TextToSpeech.say (h); OneSheeld.delay (1000); TextToSpeech.say (m); OneSheeld.delay (1000); TextToSpeech.say (meio-dia); estado =0; } // *********************************************** ************************************************* senão if (! strcmp (securityModeOn, VoiceRecognition.getLastCommand ()) &&state ==1) {lcd.clear (); lcd.setCursor (0,0); lcd.write ("Ok, Sir Feel Safe"); lcd.setCursor (0,1); lcd.write ("Modo de segurança"); atraso (200); TextToSpeech.say ("sistema de segurança acionado"); segurança =verdadeiro; estado =0; } else if (! strcmp (securityModeOff, VoiceRecognition.getLastCommand ()) &&state ==1) {lcd.clear (); lcd.setCursor (0,0); lcd.write ("Ok, Senhor Segurança"); lcd.setCursor (0,1); lcd.write ("está DESLIGADO"); atraso (200); TextToSpeech.say ("sistema de segurança foi desligado"); segurança =falso; estado =0; }} // ********************************************* ************Sistema de segurança ************************************ **** HIGH || magnetBalaconyState ==HIGH) // Se alguém abrir a porta enquanto o sistema de segurança estiver funcionando, irá dar um alarme {tone (buzzer1, 1500); Email.send ("[email protected]", "Sistema de segurança residencial", "Alguém entrou em sua casa, tenha cuidado"); OneSheeld.delay (3500); } else if (magnetReceptionState ==LOW || magnetBalaconyState ==LOW) {noTone (buzzer1); }} else if (security ==false) {noTone (buzzer1);} / * voltage =analogRead (tmp); voltagem =voltagem * 1100/1024; grau =tensão / 10; if (grau> =35) {tom (campainha 2,1500); Email.send ("[email protected]", "Sistema de segurança residencial", "A temperatura na cozinha é superior a 45, tenha cuidado"); OneSheeld.delay (5000); } else if (grau <25) {noTone (buzzer2); } * /} // ******************************************* *************************************************** *********************************** void MyFunction (char * phoneNumber, char * messageBody) // Função SMS () {if (! strcmp (lightsOn, messageBody)) // Se enviarmos "luzes acesas" como SMS, todas as luzes acenderão {digitalWrite (receptionLamp, LOW); atraso (500); digitalWrite (pathRoomLamp, LOW); atraso (500); digitalWrite (bedRoomLamp, LOW); atraso (500); digitalWrite (balaconyLamp, LOW); atraso (500); TextToSpeech.say ("todas as luzes foram ligadas"); lcd.clear (); lcd.setCursor (0,0); lcd.print ("Todas as luzes estão LIGADAS"); atraso (300); Email.send ("[email protected]", "Sistema de segurança residencial", "todas as luzes foram ligadas"); OneSheeld.delay (3500);} else if (! Strcmp (lightsOff, messageBody)) // Se enviarmos "luzes apagadas" como SMS, todas as luzes serão desligadas {digitalWrite (receptionLamp, HIGH); atraso (500); digitalWrite (pathRoomLamp, HIGH); atraso (500); digitalWrite (bedRoomLamp, HIGH); atraso (500); digitalWrite (balaconyLamp, HIGH); atraso (500); TextToSpeech.say ("todas as luzes foram desligadas"); lcd.clear (); lcd.setCursor (0,0); lcd.print ("Todas as luzes estão desligadas"); atraso (300); Email.send ("[email protected]", "Sistema de segurança residencial", "todos foram desligados"); OneSheeld.delay (3500);}} 

Peças personalizadas e gabinetes

drawing_lasser_cutting_lvvsN9X9Xg.dwg

Esquemas


Processo de manufatura

  1. Aplicações de automação residencial
  2. Silicon Labs para apresentar soluções de conectividade de automação residencial e predial inteligente
  3. Controlador Smart Home de 433 MHz com Sensorflare e RaspberryPi
  4. Sistema de segurança residencial Raspberry Pi com câmera e sensor PIR
  5. Sistema de atendimento usando Arduino e RFID com Python
  6. Controle remoto universal usando Arduino, 1Sheeld e Android
  7. IOT - Jar inteligente usando ESP8266, Arduino e sensor ultrassônico
  8. Sonar usando arduino e exibição no IDE de processamento
  9. Braço robótico simples e inteligente usando Arduino
  10. Sistema purificador de ar simples e inteligente