Papibakigrafo
Membro Pleno-
Posts
463 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Papibakigrafo postou
-
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Não, é só dar UPLOAD no código de exemplo? -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Apareceu nada. Not Found: /edit ---------------- Eu fiz o seguinte: instalei o arquivo .jar, abri a pasta onde est[a o meu código, e tinha a pasta data. Coloquei os arquivos de JS e CSS dentro da pasta. Depois, com meu código aberto, deu STECK UPLOAD. Mudei os caminhos dos arquivos CSS e JS e dei UPLOAD no meu código. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@ViniciusKruz Sim, cerca de 1-2 minutos. O que eu faço depois disso? kkkkk -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Instalei, coloquei o estilo.css na pasta data, onde est[a o meu .ino e j[a cliquei em Steck Data Upload. Só isso? Como faço para "ler"o arquivo estilo.css? -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@ViniciusKruz, consegui adaptar ao meu código! Obrigado! Só um probleminha que encontrei: está demorando uma eternindade em abrir a página principal em modo AP. Nem sei o tempo exato, mas deixei mais de 2 minutos e não abriu a página. EDIT: já descobri o porque: meu CSS e JS estão na internet =/ -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
entendi, irei testar mais tarde! Obrigado pela ajuda @ViniciusKruz -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Amigos, vai uma vez preciso da ajudinha de vocês! O código abaixo está funcionando certinho, gravando os dados na EEPROM e configurando o Wifi. Mas eu queria adaptá-lo para, se não conseguir conectar, ele iniciar em modo AP: Segue o código! /* ////////////////////////// Comparação das saidas Digitais entre nodeMCU - Arduino NodeMCU – Arduino D0 = 16; D1 = 5; D2 = 4; D3 = 0; D4 = 2; D5 = 14; D6 = 12; D7 = 13; D8 = 15; D9 = 3; D10 = 1; */ #include <EEPROM.h> #include <ESP8266WebServer.h> ///// DADOS EEPROM ///// // Locais dos itens da configuração #define VERSION_START 500 #define CONFIG_START 6 // ID de Configuração - Toda vez que "alterar" o código, modificar esse valor! #define CONFIG_VERSION "1d" // Estrutura de configuração da EEPROM struct ConfigStruct { char ssid[50]; char senha[50]; IPAddress ip; IPAddress gateway; } wifiConfig; //Porta do WebServer ESP8266WebServer server(80); ////////////////////// ///// DADOS RELE ///// //Relê int rele = 2; //LED do nodeMCU //Situação do Relê boolean ligado1 = false; ////////////////////// void saveConfig() { for (unsigned int t = 0; t < sizeof(wifiConfig); t++) { EEPROM.write(CONFIG_START + t, *((char*)&wifiConfig + t)); } // Salvando o ID da versão para puxar da EEPROM // da proxima vez que for carregar EEPROM.write(VERSION_START + 0, CONFIG_VERSION[0]); EEPROM.write(VERSION_START + 1, CONFIG_VERSION[1]); EEPROM.commit(); } void loadConfig() { if (EEPROM.read(VERSION_START + 0) == CONFIG_VERSION[0] && EEPROM.read(VERSION_START + 1) == CONFIG_VERSION[1]) { // Carregando a estrutura main config for (unsigned int t = 0; t < sizeof(wifiConfig); t++) *((char*)&wifiConfig + t) = EEPROM.read(CONFIG_START + t); } else { // Configuração inicial do nodeMCU String ssid = "TP-LINK_F10B92"; String senha = "********"; ssid.toCharArray(wifiConfig.ssid, 50); senha.toCharArray(wifiConfig.senha, 50); wifiConfig.ip = IPAddress(192, 168, 10, 100); wifiConfig.gateway = IPAddress(192, 168, 10, 1); saveConfig(); } } //Página principal void handleRoot() { ligado1 = false; // HTML da pagina principal String html = "<html><head><title>On Home</title>"; html += "<meta http-equiv='Content-Type' content='charset=utf-8'>"; html += "<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'>"; html += "<meta name='apple-mobile-web-app-status-bar-style' content='black'>"; html += "<meta name='apple-mobile-web-app-capable' content='yes' />"; html += "<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'>"; html += "<link rel='icon' href='http://www.blocodochapolin.com.br/arduino/img/icone.png' type='image/x-icon' />"; html += "<link rel='apple-touch-icon-precomposed' href='http://www.blocodochapolin.com.br/arduino/img/icone.png'>"; html += "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script>"; html += "<script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js'></script>"; html += "</head>"; html += "<style>.navbar-header { width:100%; height:50px; } .navbar-brand{ width:100%; }</style>"; html += "<body>"; html += "<nav class='navbar navbar-inverse text-center' role='navigation'><div class='navbar-header'><div class='navbar-brand'>On House</div></div></nav>"; html += "<div class='container' align='center'>"; html += "<hr>"; html += "<div class='panel panel-default'>"; html += "<div class='panel-heading text-center'><b>Sala</b></div>"; html += "<div class='panel-body'>"; html += "<div class='btn-group btn-group-justified'>"; html += "<a href='/rele1?estado=on' class='btn btn-success'>Ligar</a>"; html += "<a href='/rele1?estado=off' class='btn btn-danger'>Desligar</a>"; html += "</div>"; html += "</div>"; html += "</div>"; html += "<div id='estado1' style='display:none'>"; html += (ligado1); html += "</div>"; html += "</div></div>"; //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 += "</body></html>"; // Enviando HTML para o servidor server.send(200, "text/html", html); } void rele1() { String state = server.arg("estado"); if (state == "on") { digitalWrite(rele, HIGH); ligado1 = true; } else if (state == "off") { digitalWrite(rele, LOW); ligado1 = false; } // HTML da pagina "rele1" String html = "<html><head><title>On Home</title>"; html += "<meta http-equiv='Content-Type' content='charset=utf-8'>"; html += "<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'>"; html += "<meta name='apple-mobile-web-app-status-bar-style' content='black'>"; html += "<meta name='apple-mobile-web-app-capable' content='yes' />"; html += "<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'>"; html += "<link rel='icon' href='http://www.blocodochapolin.com.br/arduino/img/icone.png' type='image/x-icon' />"; html += "<link rel='apple-touch-icon-precomposed' href='http://www.blocodochapolin.com.br/arduino/img/icone.png'>"; html += "<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js'></script>"; html += "<script src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js'></script>"; html += "</head>"; html += "<style>.navbar-header { width:100%; height:50px; } .navbar-brand{ width:100%; }</style>"; html += "<body>"; html += "<nav class='navbar navbar-inverse text-center' role='navigation'><div class='navbar-header'><div class='navbar-brand'>On House</div></div></nav>"; html += "<div class='container' align='center'>"; html += "<hr>"; html += "<div class='panel panel-default'>"; html += "<div class='panel-heading text-center'><b>Sala</b></div>"; html += "<div class='panel-body'>"; html += "<div class='btn-group btn-group-justified'>"; html += "<a href='/rele1?estado=on' class='btn btn-success'>Ligar</a>"; html += "<a href='/rele1?estado=off' class='btn btn-danger'>Desligar</a>"; html += "</div>"; html += "</div>"; html += "</div>"; html += "<div id='estado1' style='display:none'>"; html += (ligado1); html += "</div>"; html += "</div></div>"; //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 += "</body></html>"; // Enviando HTML para o servidor server.send(200, "text/html", html); } void configWifi() { String html = "<html><head><title>Configurar WiFi</title>"; html += "<style>body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }</style>"; html += "</head><body>"; html += "<h1>Exemplo 3 - Configurar WiFi</h1>"; html += "<form method=POST>"; html += "<p>SSID: <input name=txtSSID type=text value=\""; html += wifiConfig.ssid; html += "\" /></p>"; html += "<p>Senha: <input name=txtSenha type=text value=\""; html += wifiConfig.senha; html += "\" /></p>"; html += "<p>IP: <input name=txtIP type=text value=\""; html += wifiConfig.ip[0]; html += "."; html += wifiConfig.ip[1]; html += "."; html += wifiConfig.ip[2]; html += "."; html += wifiConfig.ip[3]; html += "\" /></p>"; html += "<p>Gateway: <input name=txtGateway type=text value=\""; html += wifiConfig.gateway[0]; html += "."; html += wifiConfig.gateway[1]; html += "."; html += wifiConfig.gateway[2]; html += "."; html += wifiConfig.gateway[3]; html += "\" /></p>"; html += "<p><input name=button1 type=submit value=Enviar /></p></form>"; html += "</body></html>"; server.send(200, "text/html", html); } void configWifiSubmit() { String html = "<html><head><title>Configurar WiFi Submit</title>"; html += "<style>body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }</style>"; html += "</head><body>"; html += "<h1>Exemplo 3 - Configurar WiFi</h1>"; html += "<p>Dados gravados com sucesso!</p>"; String ssid = server.arg("txtSSID"); String senha = server.arg("txtSenha"); String ip = server.arg("txtIP"); String gateway = server.arg("txtGateway"); ssid.toCharArray(wifiConfig.ssid, 50); senha.toCharArray(wifiConfig.senha, 50); wifiConfig.ip.fromString(ip); wifiConfig.gateway.fromString(gateway); html += "<p>SSID: <b>"; html += wifiConfig.ssid; html += "</b></p>"; html += "<p>Senha: <b>"; html += wifiConfig.senha; html += "</b></p>"; html += "<p>IP: <b>"; html += ip; html += "</b></p>"; html += "<p>Gateway: <b>"; html += gateway; html += "</b></p>"; html += "<form method=GET>"; html += "<p><input name=button2 type=submit value=Voltar /></p></form>"; html += "</body></html>"; server.send(200, "text/html", html); saveConfig(); ESP.restart(); } void setup() { // Iniciando Serial Serial.begin(115200); // Iniciando EEPROM EEPROM.begin(512); // Carrega configuração da EEPROM // Se não existir, cria loadConfig(); //Se for o LED do nodeMCU, é o inverso: LOW (ligado), HIGH (desligado) pinMode(rele, OUTPUT); digitalWrite(rele, LOW); // Iniciando WiFi - Definido em loadconfig! WiFi.begin(wifiConfig.ssid, wifiConfig.senha); IPAddress subnet(255, 255, 255, 0); WiFi.config(wifiConfig.ip, wifiConfig.gateway, subnet); //Define o modo Estação WiFi.mode(WIFI_STA); // Aguardando conectar na rede Serial.println(""); Serial.print("Aguarde, conectando"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.println('.'); } // Mostrando IP Serial.println("Conectado com sucesso!"); Serial.println("Servidor Iniciado!"); Serial.print("Acesse o IP pelo seu browser: http://"); Serial.print(WiFi.localIP()); // Atribuindo urls para funções // Quando não especificado método, uma função trata todos server.on("/", handleRoot); // Chamada do método GET server.on("/rele1", HTTP_GET, rele1); server.on("/config", HTTP_GET, configWifi); server.on("/config", HTTP_POST, configWifiSubmit); // Iniciando servidor server.begin(); } void loop() { // No loop só precisa dessa função server.handleClient(); } Quem puder ajudar, desde já agradeço! =) -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
O IR é pela IDE do Arduino. Tá explicado porque não funcionava, eu esqueci esse detalhe dos pinos do nodeMCU. Vou testar aqui a noite! =) -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@aphawk Então, eu consegui upar o arquivo CSS! Beleza, mas quero usar uma CLASS específica, e no ESPBasic não mostra. o HTML tem os estilos padrões (backgroud, border, color) e isso consigo normalmente com o cssid htmlid()! Pra ser mais específico, quero adicionar uma CLASS CSS ao botão do ESPBasic! ^^ Sobre o IR, estou fazendo pelo IDE do Arduino! =/ Mesmo assim, muito obrigado! =D -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@aphawk fiz isso, e ele consegue pegar a class do bootstrap, mas como colocaria no button do ESPBasic? =/ Por acaso, alguém tem um exemplo de IRSendRAW pro nodeMCU (esp8266 12-e)?? Testei aqui mas sem sucesso =/ -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Amigos, bom dia! Brincando um pouco agora com o ESPBasic, alguém por acaso conseguiu usar as CSS CLASS's do Bootstrap? Por exemplo, setar a classe de um botão do estilo do bootstrap? Exemplo: class="btn btn-success" -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Tem algo estranho agora: depois que flasheei pelo ESPBasic, toda vez que uso a IDE do arduino aparece uma "outra rede" do ESP, mesmo usando conectado à minha rede. O nome da rede que aparece é: ESP_94F238! Alguém sabe o que é isso? -------------------------------------- Consegui já. Adicionei o comando abaixo no código: //Define o modo Estação WiFi.mode(WIFI_STA); =) -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@lucianolcoa no caso aqui, conectei nele e acessei o 192.168.4.1. Abriu uma página e digitei uns testes e rodou! -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Consegui flashear em ESPBasic. Agora.... tem alguma meio de "upar" os scripts sem ser pelo wifi? porque escrever código pelo celular dá não kkkk -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Amigos, boa tarde. Se deu der um flash do ESPBasic no nodeMCU, eu consigo voltar ao normal depois para usar a IDE do Arduino? Se sim, como? -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Amigos, boa tarde! Existe algum modo, de deixar o nodeMCU em modo access point, mas conectado a internet da casa? Tipo, um "extensor" da internet? -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Meus ESP8266 (2x) chegaram agora da China!! Hoje começarei os trabalhos! ^^ -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@ViniciusKruz Então, a versão Berlin (utilizada pro iOS 10.1 e Android até 7.0), é um pouco pesado sim. Meu PC é esse da minha assinatura. Para abrir a primeira vez demora cerca de 30 segundos. - A simulação no android com o SIMULADOR também é demorada, mas é em todos os PC's é assim... mais de 3 minutos para abrir a primeira vez. Se tiver um celular com android, é rápido e fácil! Se não me engano, apenas pra iOS que tem que ter o Rad Studio atualizado. Para android, qualquer Rad Studio acredito que funcione. Tente o 7, ele é mais leve! ^^ - Já a simulação para iOS, funciona apenas em um Mac, ou uma virtual Box com o Mac instalado, pela rede. E de coração, é um SACO fazer um app pra iOS e disponibilizá-lo na App Store. O Delphi tem um WebBrowser, que você coloca o endereço da página que quer abrir! É muito simples. Fiz um sistema (nada a ver com o arduino kkk) com 1 amigo meu todo em PHP e HTML, e já disponibilizei até na Play Store. Qualquer dúvida estou à disposição! =) -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Eu uso o Rad Studio Berlin (Delphi 10.1). Nele tem a possibilidade de fazer App pra Windows, Mac, Android e iOS. E a linguagem é pascal né, ou, pode se fazer em HTML + PHP e apenas colocar um WebBrowser no aplicativo e pronto! =) Obs: esse último exemplo é o que eu faço! ^^ -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
Uma duvida: alguém faz automação residencial para comércio? No caso, para vender e ganhar um extra? -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@ViniciusKruz ficou muiito top!! Parabens! -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@lucianolcoa Mas ele fez via POST, mas via AJAX. Quer dizer, não dará refresh na página, mas atualizará os botões! Como nunca mexi com o APP Inventor, não sei como funciona. =) -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@ViniciusKruz Desse modo fica mais rápido? Vou testar desse jeito com meu arduino quando chegar em casa! -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@alexandre.mbm isso! O raw do botão de ligar o ar condicionado. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
Papibakigrafo respondeu ao tópico de aphawk em Microcontroladores
@ViniciusKruz entendi, que bom! Perguntei pois tem alguns grupos no facebook que até te banem se postar algo "offtopic" ou não específico! O JS está hospedado no meu site. Está no primeiro código, dos relês. Tem CSS e JS do bootstrap e o meu que está hospedado. Eu consegui deixar ele com 76% de uso de memória. Como disse, no segundo código, é para ligar/desligar o ar condicionado. Só que o RAW é gigante, e ocupa muito da memória.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais