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

SmartWay

Componentes e suprimentos

Fios de jumpers (genérico)
Geral
× 1
Transistor de uso geral NPN
Para circuito de célula de motor vibratório
× 1
Capacitor de cerâmica 0,1µF
Para circuito de célula de motor vibratório
× 1
Resistor 1k ohm
Para circuito de célula de motor vibratório
× 1
Resistor 221 ohm
Para circuito de LED RGB
× 1
Cátodo comum difuso RGB
× 1
Módulo GPS GY-NEO6MV2
× 1
Célula motora vibratória
× 1
Suporte de bateria UDOO 2AA para RTC
× 1
Arduino MKR Fox 1200
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino Web Editor
Sigfox

Sobre este projeto





Visão geral


Os pais sempre se preocupam com seus filhos. Os pais desejam que seus filhos cheguem pontualmente à escola e cheguem em casa no horário, seguindo o caminho designado.

O SmartWay visa remover essa preocupação da vida cotidiana dos pais. O SmartWay monitorará seu filho conforme ele entra e sai da escola, garantindo que ele sempre siga o caminho apropriado para chegar ao seu destino, a escola.

SWay monitorará a geolocalização do seu filho usando GPS e enviará imediatamente aos pais um e-mail se o filho se desviar do caminho que você atribuiu a ele. O SmartWay também enviará aos pais um e-mail quando a criança chegar em casa ou na escola, bem como os informará se a criança estiver atrasada. Dessa forma, os pais podem sentar e desfrutar do café sabendo que seu filho chega com segurança à escola e em casa.






Funcionalidade


O SmartWay monitorará continuamente a geolocalização do seu filho, desde o momento em que ele acorda até quando chega em casa. O aparelho também é equipado com LED RGB e motor vibratório para avisar seu filho caso não esteja indo na direção certa para a escola ou se atrasar, e parabenizá-lo na chegada à escola.

O dispositivo funciona por meio de várias funções para garantir que seu filho esteja seguro.
  • O primeiro loop if (off track) detecta se a criança se desviou do trajeto atribuído, o aparelho possui um sistema que detecta a quantidade de vezes que isso ocorre; se seu filho se desviar do curso na primeira vez, o aparelho irá avisá-lo girando o LED vermelho e vibrando o motor, então a criança terá dois minutos para voltar ao curso. Se a criança ficar fora do curso por mais dois minutos, os pais receberão um e-mail avisando que seu filho está fora do curso junto com sua geolocalização, o e-mail será enviado receptivamente em intervalos de 2 minutos até a chegada da criança em casa ou na escola.
  • if (horário escolar) e if (hora local) loops detectam se é hora de ir para a escola e para casa, então o dispositivo verifica se a criança chegou na escola ou em casa, se ela chegou a tempo, o LED ficará verde e o dispositivo enviará aos pais um e-mail informando que seus a criança chegou ao seu destino juntamente com a hora de chegada. Caso contrário, se estiver na hora de a escola começar e a criança não estiver na escola, também o fará

O dispositivo pode enviar apenas 12 bytes de informação, portanto, um pacote compacto é necessário ao enviar. Outras variáveis ​​serão configuradas no backend SigFox.

Existem quatro pacotes que o dispositivo pode enviar
  • a criança está fora do curso - ("fora do curso")
  • a criança chegou em casa - ("em casa")
  • a criança chegou à escola - ("na escola")
  • criança está atrasada - ("atrasada")

Sistema de Alerta

A criança que usa o dispositivo será alertada sempre que chegar à escola, chegar em casa ou se atrasar para chegar a um destino ou se desviar do curso

O dispositivo em ação





Benefícios


Os pais que usam este dispositivo terão benefícios em:
  • certifique-se de que seus filhos cheguem com segurança para a escola
  • certifique-se de que seus filhos cheguem pontualmente a esses locais
  • certifique-se de que seu filho não se desvie do curso
  • Economia de energia e baixo custo - baterias de longa duração





Construindo o projeto


Etapa 1:Aparelho necessário

Para começar a fazer o projeto, precisamos reunir nossos materiais. Para este projeto, você precisará de:
  • fios de ligação
  • 1, transistor NPN
  • 1, capacitor de cerâmica (0,1µF)
  • 3, resistores (220Ω)
  • 1, resistor (1KΩ)
  • 1, RGB LED
  • 1, Módulo GPS
  • 1, Célula motora vibratória
  • 1, Arduino MKR1200 raposa
  • 1, 2 caixas de pilhas AAA / AA
  • 2, pilhas AA

Etapa 2:Conectando o circuito

A próxima etapa é conectar o circuito; as imagens do Fritzing abaixo ilustrarão como isso é feito. A fiação possui várias partes, portanto, elas são divididas em imagens diferentes.

Etapa 3:Reconhecendo o Código

O código é composto por múltiplas funções, cada função desempenha um papel específico na composição do projeto.
  • Sistema de alerta
  • Obtenha GPS
  • Sincronizar RTC
  • Local do processo
  • Enviar pacote
  • Faça ações

Essas seções são explicadas a seguir.
  • Sistema de advertência
  void setOutputs () {pinMode (R, OUTPUT); pinMode (G, SAÍDA); pinMode (B, OUTPUT); pinMode (motorPin, OUTPUT);} void vibrateMotor () // faz vibrar a célula do motor {digitalWrite (motorPin, HIGH); atraso (1000); digitalWrite (motorPin, LOW);} void ledGreen () // LED, Verde {analogWrite (R, 0); analogWrite (G, 255); analogWrite (B, 0);} void ledOrange () // LED, laranja {analogWrite (R, 255); analogWrite (G, 45); analogWrite (B, 0);} void ledRed () // LED, vermelho {analogWrite (R, 255); analogWrite (G, 0); analogWrite (B, 0);} void resetLED () // Desliga o LED {analogWrite (R, 0); analogWrite (G, 0); analogWrite (B, 0);}  

Esta seção do código é encontrada em functions.h Arquivo. O código notificará a criança usando o dispositivo sobre o estado atual. No geral, esses loops controlam o LED RGB e a célula do motor vibratório.
  • Obtenha GPS
  bool getGPS (int run) {while (Serial1.available ()> 0) {if (gps.encode (Serial1.read ())) {if (run ==1) {processData (); } else if (run ==2) {synchRTC (); } if (gps.location.isValid () &&gps.time.isValid () &&gps.date.isValid ()) {return true; } else {return false; }}} if (millis ()> 10000 &&gps.charsProcessed () <10) {Serial.println ("Erro - Módulo GPS respondeu com erro"); Serial.println ("Código de terminação"); Serial.println ("________________________________________"); enquanto (1) {}; }}  

Este é o loop encarregado de receber a localização e a hora do módulo GPS. Existem 3 coisas que este loop faz, ele é usado no loop de configuração para sincronizar o GPS, ele é então usado para sincronizar o RTC de bordo com o GPS e é usado no loop principal para obter a geolocalização do dispositivo.
  • Sincronizar RTC
  void synchRTC () {Serial.println ("Sincronizando RTC"); Serial.println ("________________________________________"); Serial.println ("OK - Inicializando RTC"); rtc.begin (); Serial.println ("OK - Tempo de sincronização"); // temos que cortar os primeiros 2 dígitos da variável (2018 -> 18) uint16_t yearRAW =gps.date.year (); String yearString =String (yearRAW); yearString.remove (0,1); uint16_t year =yearString.toInt (); rtc.setTime (gps.time.hour (), gps.time.minute (), gps.time.second ()); rtc.setDate (gps.date.day (), gps.date.month (), ano); Serial.println ("Sucesso - RTC sincronizado"); Serial.println ("________________________________________"); Serial.println (""); Serial.println (""); Serial.println ("");}  

Esta seção de código sincroniza o RTC a bordo com a hora recebida do módulo GPS, ele primeiro lê os dados do módulo GPS e depois os processa. O loop então define a hora atual do RTC integrado com a hora recebida e inicia o RTC.
  • Processo Localização
  bool processData () {if (gps.location.isValid ()) {latitude =gps.location.lat (); longitude =gps.location.lng (); latitude =53.355504; longitude =-6,258452; if (check.isOut ()) {if (check.track ()) {Serial.println ("FORA DOS LIMITES"); warn.offTrackLoop (); }} if (check.isHomeTime () &&comesSchool) {if (check.isHome ()) {Serial.println ("EM CASA"); warn.arrivedHomeLoop (); } else {Serial.println ("ATRASADO -> CASA"); warn.lateLoop (); }} else if (check.isSchoolTime () &&comesHome) {Serial.println ("."); if (check.isSchool ()) {Serial.println ("NA ESCOLA"); warn.arrivedSchoolLoop (); } else {Serial.println ("ATRASADO -> ESCOLA"); warn.lateLoop (); }} else {Serial.println ("ON WAY"); }}}  

Este loop irá processar a localização do dispositivo e compará-lo com a hora atual para ver onde a criança deve estar neste momento. Em seguida, ele executará a ação apropriada com base no resultado.
  • Faça Ações
  struct Do {void offTrackLoop () {if (offTrackVar) {parseData (0); } vibrateMotor (); ledRed (); atraso (1000); vibrateMotor (); resetLED (); offTrackVar =true; atraso (120000); } void lateLoop () {if (! lateVar) {parseData (1); } vibrateMotor (); ledOrange (); atraso (1000); resetLED (); lateVar =verdadeiro; } void comesHomeLoop () {lateVar =false; offTrackVar =false; vibrateMotor (); ledGreen (); atraso (1000); resetLED (); parseData (2); chegouHome =verdadeiro; chegadoEscola =falso; } void chegouSchoolLoop () {lateVar =false; offTrackVar =false; vibrateMotor (); ledGreen (); atraso (1000); resetLED (); parseData (3); chegouHome =falso; chegadoEscola =verdadeiro; }};  

Esta estrutura é chamada para agir na resposta dada por Local do processo, avisará a criança ao alternar o LED RGB e a célula do motor vibratório. Ele também enviará um pacote para SigFox se necessário.
  • Enviar Pacote
  void parseData (estado interno) {SigFox.beginPacket (); // iniciar o processo de envio da mensagem if (state ==0) // off track {SigFox.print ("off track"); // enviar a mensagem} else if (state ==1) // late {SigFox.print ("late"); // envia a mensagem} else if (state ==2) // chegou em casa {SigFox.print ("em casa"); // envie a mensagem} else // chegou à escola {SigFox.print ("na escola"); // envie a mensagem} SigFox.endPacket ();}  

Esta função envia os dados para o SigFox, o envio do pacote é iniciado e o valor apropriado é analisado.

Configurando as Variáveis ​​

O código conterá várias variáveis ​​com TODO escrito como um comentário depois delas, essas variáveis ​​devem ser personalizadas para se adequar ao cliente, o cliente será solicitado a configurar
  • Hora da escola
  • Tempo que a criança leva para viajar
  • Horário em que termina a escola
  • Depurando?
  • Geolocalização escolar (LAT, LNG);
  • Geolocalização residencial (LAT, LNG);

O guia abaixo o orienta na configuração das variáveis.

Bibliotecas

SigFox - copyright (c) 2016 Arduino LLC GNU Lesser General Public License esta biblioteca é de domínio público

ctype - copyright (c) 2006 Free Software Foundation sob a GNU General Public License, esta biblioteca é de domínio público

RTCZero - copyright (c) 2015 Arduino LLC sob a GNU Lesser General Public License, esta biblioteca é de domínio público

String - copyright (c) 2009-10 Hernando Barragan, copyright (c) 2011 Paul Stoffrengen sob a GNU Lesser General Public License, esta biblioteca é de domínio público

TinyGPS ++ - copyright (c) 2008-13 Mikal Hart sob a GNU Lesser General Public License, esta biblioteca é de domínio público

Configuração

Certifique-se de que o circuito está conectado corretamente. Para obter detalhes sobre como configurar seu MKR fox, clique aqui para o tutorial do Arduino. Se você deseja saber mais sobre a biblioteca Arduino SigFox, clique aqui.

Programa de back-end

Você deve ter um Arduino MKR1200 fox registrado para programar o back-end.
  • Etapa 1

Abra o back-end SigFox e faça login em sua conta SigFox.
  • Etapa 2

clique em "Tipo de dispositivo" no menu suspenso no topo da página
  • Etapa 3:

selecione seu Arduino MKRfox e clique em editar
  • Etapa 4:

Selecione retornos de chamada no menu à esquerda e navegue até o botão "novo" no canto superior direito.
  • Etapa 5:

Depois de clicar em novo, serão apresentadas várias opções de configuração de retorno de chamada, clique em Retornos de chamada personalizados

Em seguida, uma janela será aberta, você deve preencher o formulário fornecido para criar seu retorno de chamada

No final, sua mensagem deve ser assim:

Agora clique em ok e está tudo pronto.

Final

A última coisa que você precisa fazer é carregar o código abaixo, certifique-se de que personalizou a variável marcada com "TODO" de acordo com sua preferência, espere a luz azul no módulo GOS piscar e, em seguida, desconecte o microcontrolador do computador e coloque as baterias na caixa de baterias. Estás pronto.

Projetei um invólucro para manter o dispositivo seguro e para torná-lo atraente, usei duas peças de acrílico e derreti as bordas curvando-as a 90 graus. Coloquei todo o circuito dentro e a caixa da bateria abaixo deles e, em seguida, amarrei os pedaços de plástico juntos usando duas braçadeiras.

No final, cobri um pedaço da parte superior (tampa transparente) para esconder todos os fios da vista e apenas permitir que o cérebro do projeto fosse visível.





Antecedentes


Eu pessoalmente sei como pode ser estressante executar a tarefa simples de mandar seu filho para a escola, todos se preocupam com todas as coisas que podem acontecer com seu filho enquanto ele vai para a escola.

Este projeto é dirigido a todas as pessoas que se sentem estressadas quando mandam seus filhos para a escola. SWay permitirá que você relaxe, sabendo que seu filho chegará em segurança à escola.





Código

SmartWay
O código completo

Peças personalizadas e gabinetes

Não incluído no Fritzing por padrão arduino_mkr_fox_1200_fixed_gwlzp1tuih_uh8ucYEGxI.fzpz

Esquemas

global_WZeRYkIUCF.fzz

Processo de manufatura

  1. Motores do comutador CA
  2. Protótipo da Raspoulette
  3. Robô Pi Simples
  4. Como verificar um motor CC
  5. O que é um Motor Linear?
  6. Uma introdução ao motor BLDC
  7. O que é um redutor de motor de engrenagem?
  8. O que é um servo motor?
  9. O que é servo motor redutor?
  10. Entendendo o motor de partida do motor