![Notificações de eventos em tempo real usando NodeMCU (Arduino), Google Firebase e Laravel: 4 etapas (com imagens) Notificações de eventos em tempo real usando NodeMCU (Arduino), Google Firebase e Laravel: 4 etapas (com imagens)](https://i.howwhatproduce.com/images/003/image-7269-49-j.webp)
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03
![Image Image](https://i.howwhatproduce.com/images/003/image-7269-51-j.webp)
![](https://i.ytimg.com/vi/Ki5t_-Jjpjg/hqdefault.jpg)
![Notificações de eventos em tempo real usando NodeMCU (Arduino), Google Firebase e Laravel Notificações de eventos em tempo real usando NodeMCU (Arduino), Google Firebase e Laravel](https://i.howwhatproduce.com/images/003/image-7269-52-j.webp)
Você já quis ser notificado quando uma ação fosse realizada em seu site, mas o e-mail não fosse a opção certa? Quer ouvir um som ou um sino sempre que fizer uma venda? Ou há necessidade de sua atenção imediata devido a uma emergência em casa?
Este dispositivo pode alertá-lo em tempo real sobre qualquer coisa de que você goste.
Etapa 1: Conecte o circuito
![Ligue o circuito Ligue o circuito](https://i.howwhatproduce.com/images/003/image-7269-53-j.webp)
![Ligue o circuito Ligue o circuito](https://i.howwhatproduce.com/images/003/image-7269-54-j.webp)
O dispositivo que construí consiste em uma placa NodeMCU com uma campainha para me alertar sobre as vendas feitas em um site. O microcontrolador é programado usando o software Arduino e a parte de acionamento pode ser qualquer aplicativo da web, iOS ou Android. Eu criei dois aplicativos web simples, um em Laravel e outro em HTML e JavaScript simples para o exemplo.
Uma vez que a placa NodeMCU pode operar com segurança até cerca de 12mA de corrente nos pinos, a campainha é conectada por meio de um transistor NPN. Usei o 2N2222 porque tenho muitos deles por aí, mas tenho certeza de que o princípio será o mesmo com qualquer outro transistor NPN.
Para conectar o circuito, conecte o coletor do transistor ao pino Vin na placa. A campainha opera a 5 V e como vamos alimentar o dispositivo via USB, este pino nos dará a tensão antes do regulador de 3,3 V da placa.
Em seguida, conecte o lado positivo da campainha no emissor do transistor e o pino negativo da campainha a qualquer um dos pinos de aterramento da placa. Usei o pino 2, mas você também pode conectá-lo nos pinos 9, 25 ou 29.
A base do transistor é conectada ao pino D2, que se correlaciona com o GPIO 4 no software Arduino. Com essa configuração, o transistor funcionará efetivamente como uma chave ligando a campainha em cada evento. Em vez da campainha, você pode conectar um relé da mesma maneira para poder acionar qualquer aparelho elétrico como lâmpadas, máquinas ou uma sirene, se estiver fazendo algum dispositivo de alarme.
Etapa 2: preparar os aplicativos da web
![Prepare os aplicativos da web Prepare os aplicativos da web](https://i.howwhatproduce.com/images/003/image-7269-55-j.webp)
![Prepare os aplicativos da web Prepare os aplicativos da web](https://i.howwhatproduce.com/images/003/image-7269-56-j.webp)
![Prepare os aplicativos da web Prepare os aplicativos da web](https://i.howwhatproduce.com/images/003/image-7269-57-j.webp)
Para a parte de acionamento e tempo real do dispositivo, usaremos o Firebase Realtime Database do Google. Este é um banco de dados de nuvem NoSQL maravilhoso feito pelo Google que fornece sincronização de dados em tempo real entre cada uma das plataformas em que está sendo usado.
Primeiro crie o projeto com um nome de sua escolha. Depois de criado, crie um único nó chamado “contagem” e inicie-o com o valor 0, se for o caso. Esta será a nossa contagem inicial que queremos seguir no futuro.
O aplicativo Laravel usa o pacote “firebase-php” do Kreait, e está no link abaixo. Instale o pacote executando “composer require kreait / firebase-php”. Assim que a instalação for concluída, precisamos criar o controlador onde a ação acontecerá. Chamei o método de "atualização" e o conectei nas rotas em uma ação POST.
Para recuperar a instância do Firebase, você precisa de um arquivo json que deve ser baixado do console do Firebase. Coloque este arquivo na raiz do seu projeto Laravel e nomeie-o firebase.json. Ao recuperar a instância do firebase, precisamos fornecer o caminho para este arquivo usando o método withCredentials.
Depois de obter a instância do firebase, precisamos obter a referência ao banco de dados e ao nó que criamos anteriormente. Em cada ação, vamos obter o valor atual do nó, aumentá-lo em um e salvá-lo de volta ao banco de dados. Isso manterá o controle de nossos eventos sobre os quais precisamos notificar.
O mesmo pode ser alcançado com HTML e JavaScript simples, usando a biblioteca firebase fornecida. Com ele, primeiro precisamos fornecer ao array de configuração as configurações apropriadas do console do Firebase e inicializar o aplicativo. Uma vez inicializado, obtemos uma referência ao nó onde armazenamos as contagens de eventos e anexamos um ouvinte para recuperar qualquer alteração de valor.
Além disso, em vez de enviar o formulário como no exemplo do Laravel, agora temos uma função JavaScript que está sendo chamada no clique do botão, atualiza a contagem e grava o valor atualizado de volta no banco de dados.
Etapa 3: programe a placa NodeMCU
![Programe a placa NodeMCU Programe a placa NodeMCU](https://i.howwhatproduce.com/images/003/image-7269-58-j.webp)
![Programe a placa NodeMCU Programe a placa NodeMCU](https://i.howwhatproduce.com/images/003/image-7269-59-j.webp)
![Programe a placa NodeMCU Programe a placa NodeMCU](https://i.howwhatproduce.com/images/003/image-7269-60-j.webp)
Para programar o NodeMCU, usei o software Arduino e depois de instalar a placa nele, certifiquei-me de selecionar a versão e a porta adequadas para que eu pudesse fazer o upload do software. O meu é a versão 1.0, então verifique com sua placa antes de prosseguir.
A primeira parte do código do Arduino configura todas as definições necessárias que você precisará ajustar em seu dispositivo. A primeira dessas configurações é o ssid do WiFi e sua senha, então precisamos configurar o url do firebase e o segredo do db do firebase. Infelizmente, essa não é a maneira recomendada de se conectar ao banco de dados, mas no momento é a única maneira que a biblioteca oferece suporte. Você pode encontrar esse segredo em Configurações do projeto, menu de contas de serviço no console do firebase.
A próxima definição é o caminho que iremos verificar para atualizações e o id do dispositivo. O ID do dispositivo é necessário, portanto, caso tenhamos vários dispositivos para notificar sobre os mesmos eventos, precisamos saber qual dispositivo nos notificou sobre o evento e manter um registro disso. Por último, precisamos configurar o pino no qual conectamos a campainha e este é D2 em nosso caso.
A função de configuração define o pino led embutido e os pinos D2 como saídas, inicia a comunicação serial para saber o que está acontecendo e se conecta à rede WiFi especificada. Assim que a conexão for estabelecida, ele iniciará a comunicação com o Firebase e obterá o último valor informado. Em seguida, ele começa a escutar as alterações no caminho especificado.
No loop principal, há uma chamada para a função de piscar que pisca o led embutido por 500 milissegundos para que possamos dizer que o dispositivo está ativo. Quando uma alteração é detectada e há dados disponíveis que podemos ler com a função disponível, o novo valor do nó está sendo lido, a diferença é calculada, pois pode ter ocorrido vários eventos nesse meio tempo e um bipe é produzido a cada vez da diferença.
Por exemplo, se a diferença entre o último valor relatado e o novo valor for 4, 4 bipes serão produzidos para que você saiba que 4 novas compras foram feitas. A função de bipe usa a função de tom embutida para tocar uma frequência especificada através da campainha por um período de tempo definido.
Depois que os bipes são produzidos, o novo valor é atualizado para o dispositivo especificado e o streaming é reiniciado novamente. Atualmente, há um problema aberto na biblioteca do arduino firebase de que o streaming não continua automaticamente depois que salvamos manualmente um valor, portanto, precisamos reiniciá-lo.
Etapa 4: Aproveite o seu dispositivo
![Aproveite o seu dispositivo! Aproveite o seu dispositivo!](https://i.howwhatproduce.com/images/003/image-7269-61-j.webp)
Todo o código que usei está disponível em minha conta do GitHub no link abaixo, juntamente com o link para o esquema do projeto.
Código fonte
Esquemático
O código pode ser facilmente adotado para funcionar em diversos cenários e eventos diferentes e tenho certeza de que você se divertirá muito brincando com ele.
Para mim, esta foi uma construção muito divertida e consegui aprender muito sobre ela e por isso estou muito feliz. Espero que isso possa ajudá-lo com o seu projeto, mas se você ficar preso em alguma parte dele ou precisar de mais esclarecimentos, por favor, deixe-me saber nos comentários e eu farei o meu melhor para ajudá-lo.
Se você gostou do projeto, por favor, inscreva-se no meu canal no YouTube:
Prove o código
Recomendado:
Robô SCARA: Aprendendo sobre cinemática progressiva e inversa !!! (Plot Twist Aprenda a fazer uma interface em tempo real no ARDUINO usando PROCESSING !!!!): 5 etapas (com imagens)
![Robô SCARA: Aprendendo sobre cinemática progressiva e inversa !!! (Plot Twist Aprenda a fazer uma interface em tempo real no ARDUINO usando PROCESSING !!!!): 5 etapas (com imagens) Robô SCARA: Aprendendo sobre cinemática progressiva e inversa !!! (Plot Twist Aprenda a fazer uma interface em tempo real no ARDUINO usando PROCESSING !!!!): 5 etapas (com imagens)](https://i.howwhatproduce.com/images/009/image-26659-j.webp)
Robô SCARA: Aprendendo sobre cinemática progressiva e inversa !!! (Plot Twist Aprenda a fazer uma interface em tempo real no ARDUINO usando PROCESSING !!!!): Um robô SCARA é uma máquina muito popular no mundo da indústria. O nome significa Braço do robô de montagem compatível com seletiva ou Braço do robô articulado com conformidade seletiva. É basicamente um robô de três graus de liberdade, sendo os dois primeiros displ
ESP01 Moodlight com Firebase em tempo real + OTA: 7 etapas
![ESP01 Moodlight com Firebase em tempo real + OTA: 7 etapas ESP01 Moodlight com Firebase em tempo real + OTA: 7 etapas](https://i.howwhatproduce.com/images/003/image-8540-j.webp)
ESP01 Moodlight com Firebase em tempo real + OTA: Suporta modo R-G-B e efeito Fade. Também há suporte para controle de brilho. Suporte para atualização OTA
Como fazer relógio em tempo real usando Arduino e display TFT - Arduino Mega RTC com display TFT de 3,5 polegadas: 4 etapas
![Como fazer relógio em tempo real usando Arduino e display TFT - Arduino Mega RTC com display TFT de 3,5 polegadas: 4 etapas Como fazer relógio em tempo real usando Arduino e display TFT - Arduino Mega RTC com display TFT de 3,5 polegadas: 4 etapas](https://i.howwhatproduce.com/images/006/image-16956-9-j.webp)
Como fazer relógio em tempo real usando Arduino e display TFT | Arduino Mega RTC com display TFT de 3,5 polegadas: Visite meu canal no Youtube. Introdução: - Neste post vou fazer “Relógio em tempo real“usando LCD touch TFT de 3,5 polegadas, Arduino Mega Módulo 2560 e DS3231 RTC… .Antes de começar… verifique o vídeo do meu canal no YouTube… Nota: - Se você estiver usando Arduin
Lista de tarefas pendentes em tempo real usando o Google Firebase: 12 etapas
![Lista de tarefas pendentes em tempo real usando o Google Firebase: 12 etapas Lista de tarefas pendentes em tempo real usando o Google Firebase: 12 etapas](https://i.howwhatproduce.com/images/001/image-2507-105-j.webp)
Lista de tarefas em tempo real usando o Google Firebase: Olá! Todos nós usamos listas de tarefas no dia a dia, seja online ou offline. Enquanto as listas off-line tendem a se perder, e as listas virtuais podem ser perdidas, excluídas acidentalmente ou até mesmo esquecidas. Então decidimos fazer um no Google Firebase
Notificações de máquina de lavar usando MESH: 4 etapas (com imagens)
![Notificações de máquina de lavar usando MESH: 4 etapas (com imagens) Notificações de máquina de lavar usando MESH: 4 etapas (com imagens)](https://i.howwhatproduce.com/images/001/image-885-112-j.webp)
Notificações de máquina de lavar usando MESH: Oops! Eu esqueci das roupas na máquina de lavar … Você sempre se esquece de pegar suas roupas depois de lavadas? Esta receita irá atualizar sua máquina de lavar para receber notificações via Gmail ou IFTTT assim que suas roupas estiverem prontas para a foto