Nesse post, iremos utilizar a plataforma MIT App Inventor para criar um aplicativo que vai ligar e desligar uma lâmpada. O projeto utiliza a placa NodeMcu ESP12E, que vai atuar como um Web Server e receber informações do aplicativo para enviar ao Relé.
O MIT App Inventor é um ambiente de programação visual intuitivo que permite que todos criem aplicativos totalmente funcionais para telefones e tablets. Este possui um sistema de programação em blocos, o que facilita e agiliza o processo de criação de aplicativos.
A montagem será a seguinte:
O código será o seguinte:
#include <ESP8266WiFi.h> #ifndef STASSID #define STASSID "*****" #define STAPSK "*****" #endif const char* ssid = STASSID; const char* password = STAPSK; // Cria uma instância do servidor // Especifica a porta WiFiServer server(80); void setup() { Serial.begin(9600); // prepara a porta da lampada pinMode(13, OUTPUT); digitalWrite(13, 0); // Connecta na rede do wifi Serial.println(); Serial.println(); Serial.print(F("Conectando com ")); Serial.println(ssid); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(F(".")); } Serial.println(); Serial.println(F("WiFi connectado")); // Inicia o servidor server.begin(); Serial.println(F("Servidor iniciado")); // Escreve o endereço do IP Serial.println(WiFi.localIP()); } void loop() { // Vê se um cliente conectou WiFiClient client = server.available(); if (!client) { return; } Serial.println(F("novo cliente")); client.setTimeout(5000); // Lê a primeira linha do pedido String req = client.readStringUntil('\r'); Serial.println(F("pedido: ")); Serial.println(req); client.flush(); // Responde o pedido int val; if (req.indexOf(F("/gpio/0")) != -1) { val = 0; } else if (req.indexOf(F("/gpio/1")) != -1) { val = 1; } else { Serial.println(F("Pedido invalido")); val = digitalRead(13); } // Define a lampada de acordo com o pedido digitalWrite(13, val); // Lê o resto do pedido while (client.available()) { client.read(); } // Manda a resposta para o cliente client.print(F("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nA lampada esta agora ")); client.print((val) ? F("ligada") : F("desligada")); client.print(F("<br><br>Clique <a href='http://")); client.print(WiFi.localIP()); client.print(F("/gpio/1'>Aqui</a> para ligar a lampada, ou <a href='http://")); client.print(WiFi.localIP()); client.print(F("/gpio/0'>Aqui</a> para desligar a lampada.</html>")); Serial.println(F("Desconectando do cliente")); }
Onde estão os asteriscos, substitua pelo nome da sua rede WiFi
#define STASSID "*****"
e pela senha da sua rede WiFi
#define STAPSK "*****"
Com esse código, já podemos utilizar a lâmpada pelo navegador acessando pelo IP dado. Mas, agora, vamos para o aplicativo. Primeiro, entre no site do MIT App Inventor e acesse “Create Apps”
Após isso, faça o login e você será redirecionado para essa parte, onde você deve clicar em “Start new project”
Após clicar em “Start new project”, dê um nome ao projeto.
Após isso, você será direcionado a essa página
Vamos colocar 2 botões, um pra cada função da lâmpada(ligada/desligada). Para colocar o item no celular, basta arrastá-lo.
Temos, também, que colocar a conectividade Web.
Na direita, onde está escrito Button1 e Button2, podemos renomear o botão para “Ligar lâmpada” e “Desligar lâmpada”.
Agora, vamos para a parte do código do aplicativo.
Primeiro, clique em “Blocks”
Na parte dos botões, selecione o bloco “when button1 .click”
Após isso, selecione o componente Web1 e selecione o bloco “Set Url to”. Selecione, também, o bloco de texto e coloque o IP, dado anteriormente, na configuração do web server, junto com /gpio/1. Exemplo: http://192.168.1.113/gpio/1
Para o botão 2, repita o processo, apenas mudando de /1 para /0
Agora, adicione, nos dois, o bloco “call Web1 .get”
Código completo:
Clique na parte “Build” e selecione o formato desejado
O aplicativo será compilado, será dado um código qr e um link para você baixar o aplicativo e pronto! Agora, é só usar.
Com os conhecimentos desse post, você pode testar e fazer diferentes projetos com a placa nodemcu ESP12-E e aplicativos. Nosso app ficou como pode ser visto abaixo.
Mas, você também pode personalizar o seu aplicativo como quiser. Como, por exemplo, adicionar imagens de fundo:
https://www.youtube.com/watch?v=psqv5z3kYW8;
https://appinventor.mit.edu/explore/get-started;
Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.
|
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.
Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!