Olá pessoal, tudo bem com vocês? Espero que sim! :D
Hoje trago mais um guia sobre IoT e Blip. Vamos criar uma API no ESP32 e usar o Ngrok para permitir a comunicação da nossa rede local, onde o ESP32 está conectado ao Wi-Fi. Assim, poderemos deixar essa rota acessível para que o bot (Contato Inteligente) nos notifique sempre que uma venda for realizada, semelhante ao sino que algumas empresas utilizam para anunciar vendas.
Requisitos
Software
- Arduino IDE
- Lib WiFi
- Lib ESP32Servo
- Ngrok
Hardware
- ESP32
- Servo motor (usei o SG90 9g, mas pode ser qualquer servomotor compatível com a Lib ESP32Servo)
- Eixo metálico ou parafuso longo para acoplar no servo
1º Passo: conexão do Servo Motor
Vamos conectar a porta do servo motor de acordo com a imagem:
Há um padrão de conexão onde o marrom representa o GND, o vermelho é o VIN, e o laranja deve ser conectado à porta 13 do ESP32.
2º passo: criação da API com Arduino IDE
Iremos criar a API utilizando a Arduino IDE.
Código:
#include <WiFi.h>
#include <ESP32Servo.h>
Em seguida, testaremos a interface web gerada, utilizando as informações fornecidas pelo Arduino IDE na seção de monitor serial.
Acessando o IP Informado
Acesse o IP informado pelo monitor serial. O site criado terá a API junto com ele. Altere o valor da posição e identifique a angulação do servo para entender como está o movimento.
3º passo: configuração do Ngrok
Com o Ngrok, usaremos o seguinte comando:
ngrok http ipondoesp32:80
Substitua <ipdoesp32>
pelo IP que o ESP32 está conectado. Após isso, o Ngrok irá gerar uma URL aleatória.
Vamos copiar a URL do Forwarding para usar no bot com o parâmetro de movimentação do ângulo:
?value=40&
4º passo: definição da requisição no Bot
Vamos definir a requisição no bot no bloco onde registramos a venda realizada. Na ação de entrada, adicione uma requisição HTTP do tipo GET, colocando a URL do Ngrok com o valor do ângulo que o servo vai fazer, por exemplo:
https://51ec-2804-d45-d900-2100-9135-5540-a99c-1523.ngrok-free.app/?value=161&
No cabeçalho, adicione a chave Connection com o valor Close.
Como ação de saída, configure o ângulo para voltar a uma posição inicial para que possa ser acionado novamente:
https://51ec-2804-d45-d900-2100-9135-5540-a99c-1523.ngrok-free.app/?value=40&
Agora é só testar!
Segue um vídeo do ESP32 fazendo o trabalho de soar o gongo (o gabinete do PC):
https://drive.google.com/file/d/1Li5BRlkhJFepjGTe_KvgcsOUlOyQjuYj/view?usp=drive_link
-
Exemplo de conversa com o bot
Referências Técnicas
- Ngrok: Ngrok Blog
- Conexão do ESP32 com Servomotor: Random Nerd Tutorials