Ir ao conteúdo
  • Cadastre-se

Papibakigrafo

Membro Pleno
  • Posts

    463
  • Cadastrado em

  • Última visita

Tudo que Papibakigrafo postou

  1. 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.
  2. @ViniciusKruz Sim, cerca de 1-2 minutos. O que eu faço depois disso? kkkkk
  3. 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?
  4. @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 =/
  5. entendi, irei testar mais tarde! Obrigado pela ajuda @ViniciusKruz
  6. 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! =)
  7. 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! =)
  8. @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
  9. @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 =/
  10. 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"
  11. 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); =)
  12. @lucianolcoa no caso aqui, conectei nele e acessei o 192.168.4.1. Abriu uma página e digitei uns testes e rodou!
  13. 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
  14. 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?
  15. 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?
  16. Meus ESP8266 (2x) chegaram agora da China!! Hoje começarei os trabalhos! ^^
  17. @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! =)
  18. 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! ^^
  19. Uma duvida: alguém faz automação residencial para comércio? No caso, para vender e ganhar um extra?
  20. @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. =)
  21. @ViniciusKruz Desse modo fica mais rápido? Vou testar desse jeito com meu arduino quando chegar em casa!
  22. @alexandre.mbm isso! O raw do botão de ligar o ar condicionado.
  23. @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

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!