Saudações pessoal que acompanha o meu blog. Tudo em riba?
Aposto que todos vocÊs, pelo menos em algum momento na vida, ja brincaram com um carrinho a controle remoto, pensando, puxa que legal...
O ruím era quando o alcance acabava e o carrinho parava de funcionar não é mesmo :(
POis então, se voce fizesse o seu própio carrinho séria bem melhor :)
Mas ahe você caro leitor me questionaria. Tá seu zé goiaba ja tém projeto seu de carrinho por bluetooth... Mas e por wifi????:)
Claro que esse projeto ,apesar de ter suas vantagens,como alcance por mais de 2,5 km , fica-se impossibilitado o comando de voz, por exemplo...
Mas.. dá pra se fazer captura de de valores de sensores, banco de dados e, se voce for bão mesmo :). Dá pra fazer até gráficos em run time.
Fiz um código basicão para se usar com aqueles módulos de acrilicos que voce compra de robozinho, um desses aqui:
Pronto,agora voce compila este código aqui abaixo no seu nodemcu:
----------------------------------------------
#include <EEPROM.h>
#include <ESP8266WebServer.h>
// Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
boolean invalida=false;
int in1 =D4; //LED do nodeMCU
int in2=D5;
int in3=D0;
int in4=D1;
int botao3=D3;
//Situação do Relê
boolean ligado1 = false;
boolean ligado2=false;
boolean ligado3=false;
boolean ligado4=false;
boolean controle=false;
boolean luzautomatica=false;
boolean internet=false;
int valor=A0;
int valor1=0;
// Estrutura de configuração da EEPROM
const char *password= "teste";
ESP8266WebServer server(80);
void handleRoot()
{
String state = server.arg("funcao");
if (state == "car") {
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
delay(500);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
if (state=="cart"){
digitalWrite(in2,HIGH);
digitalWrite(in1,LOW);
digitalWrite(in4,HIGH);
digitalWrite(in3,LOW);
delay(500);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
if (state=="care"){
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
delay(500);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
if(state=="card"){
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
delay(500);
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
}
// HTML da pagina principal
String html = "<html><meta charset='UTF-8' language='pt-br'><title>Eletrônica e utilidades</title><body><center>";
html+="<style type='text/css' media='all'>body{background-color:#D3D3D3;color:#2F4F4F;width: 90%;}";
html+=".btn{background-color:#00008B;color:white;font-size:20px;font-family:Arial,Verdana}.btn:hover{background-color:white;color:#00008B;font-size:23px}";
html+=".btn1{background-color:#B0C4DE;color:blue;font-size:20px;font-family:Arial,Verdana}.btn1:hover{background-color:#000080;color:white;font-size:23px}";
html+="</style><h1>Eletrônica e utilidades</h1><div style='background-color:#D3D3D3;color:#00008B;;font-size:23px'><p>carrinho de controle</p>";
html+="</div><div style='background-color:#191970;color:#191970;width:50%;height:6%;font-size:23px'>";
html+="</div>";
html+="<div style='background-color:#00008B;color:white;height:60%;width:50%'>";
html +="<div style='background-color:#B0C4DE;color:#F8F8FF;height:60%;width:70%;margin: auto'><br><br><a href='/?funcao=car' class='btn1'>frente</a>";
html+="<br><br><a href='/?funcao=cart' class='btn1'>trás</a>";
html +="<br><br><a href='/?funcao=care' class='btn1'>esquerda</a><br><br><a href='/?funcao=card' class='btn1'>direita</a>";
html +="</div></div></center></body></html>";
;
//Script JS para não abrir uma nova página Bootstrap
html += "<script language='JavaScript' type='text/javascript'>";
html += "var a=document.getElementsByTagName('a');";
html += "for(var i=0;i<a.length;i++)";
html += "{";
html += "a[i].onclick=function()";
html += "{";
html += "window.location=this.getAttribute('href');";
html += "return false";
html += "}";
html += "}";
html += "</script>";
//Fim da instrução
html += "</center></div>";
html += "</body></html>";
// Enviando HTML para o servidor
server.send(200, "text/html", html);
}
void setup()
{
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(botao3,INPUT);
pinMode(in3,OUTPUT);
pinMode(in4,OUTPUT);
// Iniciando Serial
Serial.begin(9600);
// Iniciando EEPROM
EEPROM.begin(512);
WiFi.softAP("carrinho",password);//nome da rede e senha do AP
IPAddress myIP = WiFi.softAPIP();
// Apresenta dados da conexão
Serial.println("");
Serial.print("Connected to ");
Serial.println("192.168.4.1");
Serial.print("IP address: ");
// Atribuindo urls para funções
// Quando não especificado método, uma função trata todos
server.on("/", handleRoot);
server.begin();
Serial.println("HTTP server started");
// Apenas informando que servidor iniciou
Serial.println("HTTP server started");
}
void loop()
{// No loop só precisa dessa função
server.handleClient();
}
------------------------------------------------
Por ultimo faça o esquema eletrico com a ponte h conforme a imagem disponibilizada logo embaixo:
Agora o que vem a seguir é muito simples....
Apos compilar o nodemcu vai gerar um acess point com o nome de "carrinho".. Então se conecte a este acess point seja pelo computador, celular, etc. Uma vez conectado, digite no browser :192.168.4.1 e voce será redirecionado a esta tela:
Para facilitar mais galera fiz um apk que ao se conectar no acess point voce comanda direto pelo apk
Quem quiser usar é só baixar:
https://drive.google.com/file/d/0B2R0WnyZrxUqbjB5UHNZMmxqM1U/view?usp=sharing
E é isso ahe pessoal:
Materiais:
um nodemcu
um chassy arduino
uma ponte h
alguns jumpers.
Um comentário:
MUITO OBRIGADO MESMO POR ME AJUDAR FAZ 4 DIAS QUE ESTOU QUERENDO FAZER UM PROJETO DESSE ONLINE .
Deus te abençoe muito poste mais projetos por favor.
Postar um comentário