Cuprins:

Notificator De Ruído: 7 Pași
Notificator De Ruído: 7 Pași

Video: Notificator De Ruído: 7 Pași

Video: Notificator De Ruído: 7 Pași
Video: Fix iPhone 7 / 7 Plus Home Button Making Loud Mechanic Noise / Grinding Sound or Clicking 2024, Noiembrie
Anonim
Notificador De Ruído
Notificador De Ruído

O notificator de ruído as o próprio name diz permite alertar o usuário sobre algum ruído detectado, e com este alertă sau utilizatorul poate investiga o care este ocorrendo. O notificator de ruído possui um sensor de áudio que detecta qualquer ruído relevante nas proximities, e când detecta este ruído é disparado uma notificação para todos os smartphones e outros dispositivos móveis that possuem o aplicative do notifier de barulho instalado.

Ele pot fi folosite în contexturi vários, cum ar fi exemplu monitorizare o sunt do bebê, caz ele acorde și comite a chorar sau notificator de ruído irá alertar os celulares dos pais. Puteți folosi și prea, pentru a notifica barulhos în interiorul a două automóveis și sau imóveis, putând captura și notifica um barulho em um horariu incomum nestes lugares, com isto o usuario poate investiga o care este ocorrendo evitând até chiar um roubo.

Pasul 1: Estrutura Geral

Estrutura Geral
Estrutura Geral

A imagem acima ilustra o funcționare generală a proiectului. Inicia-se através da detecção de qualquer ruído pelo sensor de som que é ligado a placa ESP8266 NodeMCU. Această placă trebuie să aibă acces la internet prin intermediul módului WiFi. A detecta o ruído ela envia uma requiseção HTTP a API, that deve estar hospedada on internet (no my case utilizei o serviço nas nuvens da Amazon Web Services). O API pentru această dată este configurată cu două servicii pentru Firebase, sau Firebase Cloud Messaging (FCM). O FCM posibilă diferit notificări pentru dispozitivul de calitate pe care trebuie să-l aplicați configurat cu un proiect gerado na base do Firebase. Desta forma, A API aciona o FCM passando o identificador da notificação e o horario care a solicitat un API a fost realizat. O FCM dispare uma mensagem de notificare pentru dispozitivele care sunt compatibile cu proiectul.

Pasul 2: Arduino - Diagrama De Pinagem Dos Componentes

Arduino - Diagrama De Pinagem Dos Componentes
Arduino - Diagrama De Pinagem Dos Componentes

Com relação a parte física do Arduino, são poucos componentes necessários e bem simples de se montar, conforme mostra o diagrama acima.

Os sensores foram interligados a placa ESP8266 através de uma protoboard e alguns jumpers. O sensor de som possui 3 pinos, sendo que um é o GND (ligado em um pino terra da placa), outro é o VCC (ligado em um pino de 3.3 volts da placa) eo OUT (ligado no pino D3 da placa), responsável por enviar os sinais analógicos para a placa ao detectar um ruído.

În acest proiect sau LED serve apenas pentru identificarea când senzorul identificat este rujat și acionou a API pentru trimiterea unei notificări, nu este un component vital, dar auxilia a înțelegeri sau proces în funcționare. O LED posui 2 pinos, o pino menor (catodo) este ligat na porta D2 da placa e o pino maior (anodo) é ligado em uma porta GND, pentru care o LED ascenda corect.

Abaixo a listă de componente necesare pentru montarea sau proiectul de acord cu diagrama:

• 1 Placa NodeMCU ESP8266

• 1 senzor de som (Ligado na porta D3)

• 1 Protoboard

• 1 LED (Ligado na porta D2)

• 1 rezistor de 3v

• 5 Jumpers Macho / Femea

Pasul 3: Arduino - Código Do Projeto

Arduino - Código Do Projeto
Arduino - Código Do Projeto

Asim as a ligação dos componentes eletrônicos do arduíno, o codul dele prea este destul de simplu. Estou deixando o link do projeto no Github para poderem baixa-lo e executa-lo.

Inicialmente este nevoie de importarea algelor bibliotecilor din placa ESP8266 necesare pentru modulul WiFi și pentru realizarea cererii HTTP. Depois é necessário definir os componentes de entrada e saída em su respectivas portas, o sensor de som foi ligado no pino D2 that corresponde a GPIO0 definido as component de entrada, e o LED no pino D3 that corresponde a GPIO4 definido as component de saída. Lembrând că o diagramă de pinagem da ESP8266 posibile numerație diferită până la referință nu cod, veja sau diagramă în acest link pentru melhor înțelegere.

Definiți-vă și ca credențe de redare WiFi și modul de conexiune ca stațiune (WIFI_STA). Após a definição é verificado se a placa conseguiu se conecta na rede WiFi specificată. Enquanto a conexão não é estabelecida a verificação ocorre de meio em meio segundo.

Com a conexiune a internet stabelecida via WiFi, o Arduíno fica rodando em loop infinito, verificând se o sensor detectou algum ruído no ambiente. Caso não tenha detectado, ele desliga o LED, caso contrário ele liga o LED e chama o method callAPI () răspunde pe fazer la solicitarea HTTP a API. Pentru că a chamada a API não ocorra várias vezes é colocado um delay de 5 segundos, asim chiar că o ruído seja intermitente a API va fi acționat de 5 în 5 segundos, se preferă să poți fi în timp.

Ao chamar o method callAPI (), este definit sau tip de cerere (în niciun caz GET) e o endpoint da API, este endpoint vai variar de acord cu IP-ul serverului și da rota că vocea criou. Caso a requisição ocorra corretamente is mostrado a mensagem de sucesso no console, case contrário é mostrado a mensagem de erro gerado pela API no console do Arduíno IDE. Apos a expus un mesaj finalizat la conexiunea

Pasul 4: Configurarea O Firebase

O Firebase este o responsabilă pentru receber a notificação disparada pela API e envia-las aos dispozitive mobile care possuem a aplicação deste projeto. Trebuie să fie configurat atât pe API cât și pe aplicația Android.

În primul rând trebuie să se creeze un proiect fără Firebase, accesând site-ul firebase.google.com. Criarul sau proiectul, va avea posibilitatea de a adăuga o aplicație Firebase pentru a fi criată pentru receber ca notificări. Ao criar o aplicativo va fi posibil să descărcați uma arquivo chamado google-services.json este arquivo deve ser colocado na raiz do your projecteto no Android. O arquivo contém detalhes de configuração, as chaves e identificadores, pentru os servicile care se vor ativa la proiectul tău în Firebase. Nu aveți grijă de Firebase, configurați-vă și depuneți în Cloud Messaging. Găzduiește-ți valoarea de la șarjă la serverul și codul de remitere, este nevoie de setări necesare pentru configurarea API-ului.

Pasul 5: Configurarea API Com O Firebase

No tópico referente a estrutura generală a proiectului a trecut prin funcționalitatea da API. Ela é responsável por atender a requisição do Arduíno e acionar o Firebase enviando os dados that irão compor a mensagem de notificação. A API can be construídas in diverse linguagens, as Java, Python, Node. JS, and other linguagens that possuem supporte as bibliotecas to Firebase Cloud Messaging.

În acest proiect a fost creat un API cu ASP. Net C # găzduit cu un server Windows și Amazon Web Services. Acest tutorial nu are ca scop explicarea detaliată a unei configurări a API-ului, dar puteți lăsa un link contendând sau codul fontului desta API pe GitHub.

Totul pentru soluția acestei API este un fir de păr primar Visual Studio sau un proiect de tip WEB ASP. NET API. O configurație a API-ului a fost realizată cu un arhiv (DefaultController.cs). Neste arquivo foi definido o nome da rota, o tipo da rota (GET), os dados da notificação, a requisição ao FCM (passando as chaves e o cod gerado ao criar o projeto no Firebase), e o retorno da rota când ea for chamada.

Pasul 6: Criando Aplicativo Para Receber As Notificações Da API

Após ter criado a projecteto no Firebase e vinculado as chaves geradas a rota configurado em sua API, missing apenas criar o aplicative that receberá as notificações enviadas pela API ao Firebase. În acest proiect a fost dezvoltat un aplicativ nativ pentru Android, dar poderia a fost făcută pentru iOS, UWP, sau até chiar și cu un aplicativ multiplataforma. Da aceeași formă că API, este disponibilizat um link pentru accesarea sau codul fontului aplicativ dezvoltat în acest proiect.

O aplicație criată poate avea o funcție de receber as notificações provindas do Firebase, e salvá-las no banco local do aplicativo (folosind o Realm), și a prezentat-las na tela inițial în forma de listă (folosind adaptor). Pentru receber as notificações do Firebase, trebuie să importați o bibliotecă de la FCM pentru codul fontului colocând-o nu Gradle, și să configurați o clasă care să ofere o metodă onMessageReceived din clasa de serviciu FirebaseMessagingService. Această metodă care se înregistrează ca notificări disparate în Firebase Cloud Messaging.

Ao receber uma notificação do FCM, o code faz o tratamento da notificação jogando ela em uma model do tipo Realm for salvar no banco local do aplicativo. Além disto, este gerado uma notificação no celular for alertar o usuário o mais rapide possível.

Pasul 7: Concluzie

Podemos ver no video that o Arduíno consigue identifikar o barulho ao estalar os dedos, e com isto ele ascende o LED e envia uma requiseção a API configurada para enviar a data e ora da requiseção ao Firebase Cloud Messaging, o FCM então dispara a notificação para os dispozitive that possuem instalado o aplicative criado e înregistrado for receber estas notificações.

Cu acest proiect putem concluziona că o ocupare a forței de muncă Arduíno în ansamblu împreună cu alte tehnologii, ca uma API Rest-Full și um serviciu de Push Notification, posibilități inumerate aplicații care putem facilita ca atividades do dia-a-dia. This tutorial mostra um projecteto basic that you can ser realizado with these tecnologias, mas se can fazer something muito mais advancedado using other sensores for Arduíno, that se encaixe in outros contextos de use mais abrangentes.

Recomandat: