Ir ao conteúdo

lucianolcoa

Membro Pleno
  • Posts

    481
  • Cadastrado em

  • Última visita

Tudo que lucianolcoa postou

  1. @ViniciusKruz Seriam 4 lampadas hehe. Pra fazer em escala industrial teria que inputar sensores.... Bem eu coloquei um delay dentro de outro delay e isso evita o curto. Pois por incrível que pareça isso evita o curto. Falo isso por que a fiação da minha casa causa curto quando o ventilador e ligado, e da época dos fios rigidos, e usar um delay dentro do outro resolveu o curto em cima do node. A fonte vai ser aquelas de camelo mesmo, 9 volts e 5 volts para os módulos reles. Agora a respeito de advogado e pahs, vou ficar devendo.... Talvez fosse mais irado se fosse fazer um brinquedo.
  2. @ViniciusKruz Seriam 4 lampadas hehe. Pra fazer em escala industrial teria que inputar sensores....
  3. Pessoal, consegui montar meu produto final, logico com a ajuda de todos vocês... Uma mensão especial a Vinicius Kruz, Papibakigrafo e Aphawk que foram alem das dicas e mostraram exemplos de códigos para fazer o balaco-baco funcionar. Não sei se aqui é o lugar certo para fazer este tipo de pergunta. Mas vejo que so posso recorrer a vocês. Tipo, um aparelho de 4 acionamentos, tanto virtuais como fisicos, comando de voz configurável, ip configurável, senha de proteção as configurações e aplicativo com comando de voz . Este aparelho valeria em média quanto no mercado?
  4. @ViniciusKruz O que falta na Ide do arduino é o autocompletar, pois voce memorizar os comandos de cabeça é osso. Mas uma coisa que eu acho bacana na ide do arduino é que ela "brilha" quando voce digita o comando certo, e as vezes voce esquece aquela maldita virgula ou a letra era em maiusculo e esqueçemos.
  5. @ViniciusKruz O tamanho do codigo muda sim, eu mesmo ja fiz os testes e realmente um simples blink led voce ja ve a diferença. Tem blogs que também atestam isso: https://balau82.wordpress.com/2011/03/29/programming-arduino-uno-in-pure-c/ Na época vi um blog brasileiro que mostrava detalhadamente e testei também para averiguar a tenacidade e realmente é verdade, so que programar assim e BEM mais difícil... Mas é como eu falei, serve pras pessoas que gostam de otimização isso.
  6. @ViniciusKruz Na verdade a diferença da linguagem arduino para a linguagem C puro é o tamanho. Um simples codigo blink led escrito na ide do arduino chega a mais ou menos 1,2k bytes por ahe. Se voce escrever em C, declarando as PORTD em vez de "digitalWrite", chega a 200 ,300 bytes. Ou seja, praqueles negos apaixonado por velocidade, eficiencia e bla bla bla, preferem declarar os registradores... Só que, tudo tem um mas... A vantagem de usar arduino e que voce não dá pal nos registradores, a propria linguagem compila com sistema de proteção. Ja voce declarando os registradores fica mais propenso a voce fazer "caca" e dependendo, voce pode até condenar o mísero chipzim. Aprendi basic usando bascom pra ver a tão diferença entre programar os registradores e usar linguagens C adaptadas. te da a vantagem do "pensamento livre", pois voce entende mais. Mas a facilidade do arduino nõ é sua linguagem em sí, são as bibliotecas. tem biblioteca pra tudo e voce usa tudo com facilidade, basta querer, não existe mais essa de "programar na unha". O que muitos encaram como vantagem oudesvantagem, dependendo do contexto. adicionado 32 minutos depois Pessoal tava querendo fazer uma fonte pro node tem coisas que preciso saber, agradeceria a ajuda de vocês: Qual a tensão de operação? Posso alimentar o positivo direto no Vin???
  7. @Intrudera6 É muito raro eu te ajudar, pois na maioria das vezes o seu conhecimento sobrepuja o meu, rsrs. Mas vejo que aqui jás uma exceção Então as várias IDES para o eclipse é caso o usuário queira programar o eclipse apenas naquela linguagem específica, sem ter ficar baixando trocentas upgrades que, por fim, acabam deixando o eclipse lerdo. " voce pode observar em foruns de programação, a maioria reclama do eclipse pelo fato dele ser lerdo, Embora eu o tenha achado bastante rápido." Só usei o eclipse para programar em python e recentemente, javascript. Reconheço que o corretor ortografico dele em python é uma lesma encharcada de sal, em comparação a outra ide que é o pycharm, mas e melhor que nada. E em javascript ela nem existe. Mas deve ser algum plugin que acabou faltando.
  8. Pessoal alguem aqui manja de app inventor? tem como mudar a variavel global pelo propio celular
  9. Pessoal, uma ultima duvida. é possivel adicionar uma senha ao esp? pra impedir que alguem por engenharia reversa tenha acesso ao código? adicionado 38 minutos depois Pessoal, outra duvida. Uma vezlih aqui no forum que pra alimentar o node com uma fonte externa voc tem que alimentar pelo Vin e pelo terra.Qual seria a tensão de alimentação no Vin? 3,3 volts ou 5 volts?
  10. @Papibakigrafo Mals não entendi. Ta a mesma de antes, não modifiquei nada.
  11. @Papibakigrafo Não consegui fazer pelo exemplo do vinicius Cruz, mas me baseei nas explicações dele e no código example: #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> const char* ssid = "........"; const char* password = "........"; ESP8266WebServer server(80); //Check if header is present and correct bool is_authentified(){ Serial.println("Enter is_authentified"); if (server.hasHeader("Cookie")){ Serial.print("Found cookie: "); String cookie = server.header("Cookie"); Serial.println(cookie); if (cookie.indexOf("ESPSESSIONID=1") != -1) { Serial.println("Authentification Successful"); return true; } } Serial.println("Authentification Failed"); return false; } //login page, also called for disconnect void handleLogin(){ String msg; if (server.hasHeader("Cookie")){ Serial.print("Found cookie: "); String cookie = server.header("Cookie"); Serial.println(cookie); } if (server.hasArg("DISCONNECT")){ Serial.println("Disconnection"); String header = "HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID=0\r\nLocation: /login\r\nCache-Control: no-cache\r\n\r\n"; server.sendContent(header); return; } if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")){ if (server.arg("USERNAME") == "admin" && server.arg("PASSWORD") == "admin" ){ String header = "HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID=1\r\nLocation: /\r\nCache-Control: no-cache\r\n\r\n"; server.sendContent(header); Serial.println("Log in Successful"); return; } msg = "Wrong username/password! try again."; Serial.println("Log in Failed"); } String content = "<html><body><form action='/login' method='POST'>To log in, please use : admin/admin<br>"; content += "User:<input type='text' name='USERNAME' placeholder='user name'><br>"; content += "Password:<input type='password' name='PASSWORD' placeholder='password'><br>"; content += "<input type='submit' name='SUBMIT' value='Submit'></form>" + msg + "<br>"; content += "You also can go <a href='/inline'>here</a></body></html>"; server.send(200, "text/html", content); } //root page can be accessed only if authentification is ok void handleRoot(){ Serial.println("Enter handleRoot"); String header; if (!is_authentified()){ String header = "HTTP/1.1 301 OK\r\nLocation: /login\r\nCache-Control: no-cache\r\n\r\n"; server.sendContent(header); return; } String content = "<html><body><H2>hello, you successfully connected to esp8266!</H2><br>"; if (server.hasHeader("User-Agent")){ content += "the user agent used is : " + server.header("User-Agent") + "<br><br>"; } content += "You can access this page until you <a href=\"/login?DISCONNECT=YES\">disconnect</a></body></html>"; server.send(200, "text/html", content); } //no need authentification void handleNotFound(){ String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += (server.method() == HTTP_GET)?"GET":"POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for (uint8_t i=0; i<server.args(); i++){ message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; } server.send(404, "text/plain", message); } void setup(void){ Serial.begin(115200); WiFi.begin(ssid, password); Serial.println(""); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); server.on("/", handleRoot); server.on("/login", handleLogin); server.on("/inline", [](){ server.send(200, "text/plain", "this works without need of authentification"); }); server.onNotFound(handleNotFound); //here the list of headers to be recorded const char * headerkeys[] = {"User-Agent","Cookie"} ; size_t headerkeyssize = sizeof(headerkeys)/sizeof(char*); //ask server to track these headers server.collectHeaders(headerkeys, headerkeyssize ); server.begin(); Serial.println("HTTP server started"); } void loop(void){ server.handleClient(); } Primeiro antes do void setup e apos a linha do codigo web server(80) voce coloca esta parte aqui: ESP8266WebServer server(80); //Check if header is present and correct bool is_authentified(){ Serial.println("Enter is_authentified"); if (server.hasHeader("Cookie")){ Serial.print("Found cookie: "); String cookie = server.header("Cookie"); Serial.println(cookie); if (cookie.indexOf("ESPSESSIONID=1") != -1) { Serial.println("Authentification Successful"); return true; } } Serial.println("Authentification Failed"); return false; } Depois na pagina que voce quer "lacrar", no void não sei das quantas, voce coloca nela esta linha de código aqui: String header; if (!is_authentified()){ String header = "HTTP/1.1 301 OK\r\nLocation: /login\r\nCache-Control: no-cache\r\n\r\n"; server.sendContent(header); return; } ahe durante os inumeros voids no código voce coloca este void aqui: void handleLogin(){ String msg; if (server.hasHeader("Cookie")){ Serial.print("Found cookie: "); String cookie = server.header("Cookie"); Serial.println(cookie); } if (server.hasArg("DISCONNECT")){ Serial.println("Disconnection"); String header = "HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID=0\r\nLocation: /login\r\nCache-Control: no-cache\r\n\r\n"; server.sendContent(header); return; } if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")){ if (server.arg("USERNAME") == "admin" && server.arg("PASSWORD") == "admin" ){ String header = "HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID=1\r\nLocation: /\r\nCache-Control: no-cache\r\n\r\n"; server.sendContent(header); Serial.println("Log in Successful"); return; } msg = "Wrong username/password! try again."; Serial.println("Log in Failed"); } String content = "<html><body><form action='/login' method='POST'>To log in, please use : admin/admin<br>"; content += "User:<input type='text' name='USERNAME' placeholder='user name'><br>"; content += "Password:<input type='password' name='PASSWORD' placeholder='password'><br>"; content += "<input type='submit' name='SUBMIT' value='Submit'></form>" + msg + "<br>"; content += "You also can go <a href='/inline'>here</a></body></html>"; server.send(200, "text/html", content); } adiciona este void aqui também void handleNotFound(){ String message = "File Not Found\n\n"; message += "URI: "; message += server.uri(); message += "\nMethod: "; message += (server.method() == HTTP_GET)?"GET":"POST"; message += "\nArguments: "; message += server.args(); message += "\n"; for (uint8_t i=0; i<server.args(); i++){ message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; } server.send(404, "text/plain", message); } e no void setup voce valida as paginas: server.on("/", handleRoot); server.on("/login", handleLogin); server.on("/inline", [](){ server.send(200, "text/plain", "this works without need of authentification"); }); server.onNotFound(handleNotFound); //here the list of headers to be recorded const char * headerkeys[] = {"User-Agent","Cookie"} ; size_t headerkeyssize = sizeof(headerkeys)/sizeof(char*); //ask server to track these headers server.collectHeaders(headerkeys, headerkeyssize ); server.begin(); Serial.println("HTTP server started");
  12. Pessoal finalmente consegui inserir senha no código, hehehe. Agora ficou uma maravilha^
  13. @alexandre.mbm Pelo visto o povo que lançou esse projeto não ta jogando baixo não, criaram a própia ide ÕÕÕ.õõõ adicionado 0 minutos depois @ViniciusKruz Explica esse código ahe mano-lo, como fazer pra ele dar acesso ou não a uma pagina? e como direcionar um ip a essa página de login?
  14. @Papibakigrafo Achei o código, mas nem saberia por onde implementar x_x //login page, also called for disconnect void handleLogin(){ String msg; if (server.hasHeader("Cookie")){ Serial.print("Found cookie: "); String cookie = server.header("Cookie"); Serial.println(cookie); } if (server.hasArg("DISCONNECT")){ Serial.println("Disconnection"); String header = "HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID=0\r\nLocation: /login\r\nCache-Control: no-cache\r\n\r\n"; server.sendContent(header); return; } if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")){ String _user = server.arg("USERNAME"); String _pwd = server.arg("PASSWORD"); if (_user.equals(user) && _pwd.equals(pwd)){ String header = "HTTP/1.1 301 OK\r\nSet-Cookie: ESPSESSIONID=1\r\nLocation: /\r\nCache-Control: no-cache\r\n\r\n"; server.sendContent(header); Serial.println("Logado com sucesso"); return; } msg = "Login incorreto."; Serial.println("Log in Failed"); } String content = "<html>\n"; content+="<head>\n"; content+="<meta http-equiv='Content-Type' content='text/html; charset=utf-8'><br>\n"; content+="<style type=\"text/css\">\n"; content+="#login{\n"; content+="width: 250px;\n"; content+="height: 250px;\n"; content+="padding: 8px;\n"; content+="background-color: #FFCC33;\n"; //content+="background-image:url(https://1drv.ms/i/s!Av3m0jwp9uhSgWlkL5VnWD4BIrUI);\n"; content+="font: 11px Verdana, sans-serif;\n"; content+="color: #993366;\n"; content+="text-shadow: 0 1px 0 #666;\n"; content+="box-shadow: inset 0 1px 1px #fff, 0 2px 3px #666;\n"; //content+="border: 2px solid #0000FF;\n"; content+="border-radius: 8px;\n"; //content+="padding-left:10px;\n"; content+="position:absolute;\n"; content+="left:50%;\n"; content+="top:50%;\n"; content+="margin-left:-125px;\n"; content+="margin-top:-125px;\n"; content+="}\n"; content+="input[type=text], input[type=password] {\n"; content+="width: 100%;\n"; content+="padding: 12px 20px;\n"; content+="margin: 8px 0;\n"; content+="display: inline-block;\n"; content+="border: 1px solid #ccc;\n"; content+="border-radius: 4px;\n"; content+="box-sizing: border-box;\n"; content+="}\n"; content+="input[type=submit] {\n"; content+="width: 100%;\n"; content+="background-color: #4CAF50;\n"; content+="color: white;\n"; content+="padding: 14px 20px;\n"; content+="margin: 8px 0;\n"; content+="border: none;\n"; content+="border-radius: 4px;\n"; content+="cursor: pointer;\n"; content+="}\n"; content+="input[type=submit]:hover {\n"; content+="background-color: #45a049;\n"; content+="}\n"; content+="</style>\n"; //content+="<link rel='stylesheet' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css'>"; //content+="<script type='text/javascript' src='http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js'></script>"; content+="</head>\n"; content+="<body> <title>ESP-CSS</title>\n"; content+="<div id='login' align='center' >\n"; //id='login' content+="<form method='post' name='login' action='/login'><H2 align='center'>ACESSO AO SISTEMA</H2>\n"; content+="<label for='usuario'>Usuário</label>\n"; content+="<input type='text' id='usuario' required name='USERNAME' placeholder='Nome do usuário' />\n"; content+="<label for='senhalogin'>Senha</label>\n"; content+="<input type='password' id='senhalogin' name='PASSWORD' placeholder='Senha' />\n"; content+="<input type='submit' value='Entrar'> </form><br>"+ msg +"</div><br>\n"; //content += "<a href='/inline'>Monitor</a> content += "</body></html>\n"; server.send(200, "text/html", content); }
  15. @Papibakigrafo valeu mano-lo o recorrerei^ Vinicius, seu exemplo está muito longe ou perto daqui?? mais ou menos quanto tempo voce postou? teria como postar de novo se não for incomodo?
  16. Mano-los fiz algumas alterações em meus layouts. Mas nada de novo. Apenas separei a pagina de acionamentos da pagina principal e inseri links interligando tudo. Minha duvida eah? teria como colocar uma senha para acessar a pagina formulário? ou mesmo uma senha para o submit? pra não haver o caso de nego ficar punhetando a eeprom do nodemcu?
  17. Ja que está todo mundo estilizando o nodemcu chegou a minha vez^ codigo testado e funcionando, valeu galera:^ No node acredito que nao de problema mesmo, mas no RASPBERRY dda? adicionado 55 minutos depois Pessoal finalmente minha primeira personalização dessa delicia. Espero que gostam e curtem bastante. Esse pra mim é o projeto final, não teria conseguindo sem a ajuda de cada um de vocês funcionando por buttons e buttons virtuais
  18. @alexandre.mbm Não não é isso, voce não pode colocar positivo junto com o terra, senão é o "curto". O perigo de alta corrente realmente existe, mas quanto a isso os modulos oferecem uma segurança considerável. Mas quando voce prototipa muita coisa, se não prestar atenção, voce pode acabar colocando o gnd no Vin, mas como falei, no arduino quanto a isso não há um grande problema.
  19. @alexandre.mbm Não tem segredo. curto e quando voce coloca o terra no positivo e ahe a corrente da fuga, pois está indo para um lugar onde não deveria... Perceba essa imagem aqui: Os positivos dela estão com os positivos do arduino e ate mesmo os sensores. Mas se por algum motivo voce botar o negativo do arduino no positivo do sensor, ou mesmo do display lcd, um fiozim que seja, ele ja entra em curto e não funciona. Perceba que se voce usar um arduino e um ou 2 sensores, ou apenas o display, nem e tanto problema. Mas se voce usar um arduino, um display, 4 sensores, a tarefa pode acabar se tornando trabalhosa, e acredite, prototipar na pcb sem se perder é uma arte.
  20. @alexandre.mbm Esses pro mini nunca usei então não posso atestar, mas o arduino ele resiste a tudo.! Até mesmo os stand alones que fiz foram submetidos a erros grotescos e sairam ilesos... Claro que eu to falando casos de curto e pahs... Se voce der uma bicuda no arduino obvio que ele vai quebrar, ou ligar ele numa fonte alternada ou acima de 20 volts... Mas pra curto ele é sencacional, ja cheguei a deixar um arduino 5 minutos num curto tentando identificar o problema e ele ta vivo e em folha até hoje
  21. @alexandre.mbm Na verdade não por que ele não é bem um embarcado, ele serve como um embarcado. Mas é um computador... Ele não tem sistema de proteção anti-curto, por isso tem que usar ele com muito cuidado e saber realmente o que ta fazendo. Ao contrario do nosso amigo arduino que aguenta até mesmo uma bomba nuclear e a um ataque de histéricos por um novo Iphone xx. Em meus testes habituais eu geralmente dou curto no arduino no minimo umas 3x por semana... Se fosse sair usando o rasp a torta e a direita ja teria queimado uns 4 deles , calculando o prejuízo 4x300= R$1.200,00
  22. @DiF Manolos, amo vocês, resolveu meu problema novamente.
  23. Uma coisa eu falo, no dia que criarem um embarcado programado em python eu farei estrago *-* adicionado 2 minutos depois @alexandre.mbm Me dei malzasso, não conseguia somar miseros 2 algarismos lá... Fiquei até com trauma de programação por causa disso, so me dava bem no visual g"portugol" .Na época, no portugol eu fiz uma calculadora que resolvia bhaskara. Hoje consigo fazer isso com python também mas de lá pra ca p eu voltar a mexer com programação se foram 8 longos anos("claro que aconteceu bastante coisa paralela também,mas em suma é isso"")
  24. @Papibakigrafo Eu devo confessar que eu detesto Delphy, kkkkkkkkkkk. Quando era adolescente eu fiz um curso de eletronica e bombei na aula de programação, que era justamente em delphy,kkkkkkkkkkkk
  25. Uma ultima duvida amigão, como faço pra aumentar a altura também??? tentei fazer o mesmo procedimento com o height e não funcionou.

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...