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.
Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!