-
Posts
720 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que ViniciusKruz postou
-
beleza pessoal?!! criei duas tabelas simples no banco Mysql usando o Phpmyadmin seguindo o exemplo: ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) Quando mandei executar, deu que foi executado com sucesso, mas usando as tabelas, percebo que se eu deleto um registro na tabela principal, não dá erro nenhum, deveria dar erro pois existe registro na FK da outra babela. Pelo que entendi, não está havendo ligação entre as duas tabelas. Alguém saberia a forma correta de fazer esta ligação? Desde já agradeço qualquer ajuda.
-
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
Tenho um ESP12F aqui ligado a +/- 30 dias, ele controla um relé, lê um DS3231, envia para a serial e checa 70 horários diferentes incluindo dia da semana/hora/minuto e ainda me dá acesso pelo web server, até agora não travou nenhuma vez. Não tenho do que reclamar. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@Intrudera6 Parabéns pelo seu entusiasmo e dedicação. Eu estive pensando, já que o ESP vai ter que ficar consultando o NTP para fazer as devidas correções no RTC, não seria mais viável ele simplesmente pegar essa hora no NTP e acertar o DS3231? Imagino que isto que você está fazendo é uma coisa muito boa e inexistente e para quem precisa de uma precisão muito alta, será muito bom porque os RTCs que temos no mercado são muito ruins mesmo. Estou usando o DS3231 há cerca de 30 dias, não tenho como conferir agora, mas imagino que se ele tiver atrasado muito, não passou dos 30 segundos, isso sem fazer nenhuma correção, se eu estivesse usando os RTCs tradicionais, também sem correção, já teriam alterado pelo menos uns 10 minutos. Será que não seria por causa do excessivo processamento a que o processador está sendo submetido? segundo você, o código já está muito grande. Já percebi que os ESPs não tem precisão confiável ao comunicar na WEB, tem vezes que a comunicação é rápida, mas tem vezes que já demora e pra quem precisa de precisão, ele tem uma interrupção interna relacionada com o webserver que pára tudo até terminar a comunicação e isso pode ser um grande inconveniente. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
Calma Paulo!! É lógico que é coisa antiga e não há necessidade de aplicar nos dias de hoje por termos uma infinidade de soluções mais práticas, por isso mesmo eu mencionei "ANTIGO". Quando postei, a intenção era mostrar uma forma "interessante" de como pode ser feito, mesmo sendo antigo, é só "mais uma forma de descascar a banana". Não é preciso ter uma porta paralela para usar esse hardware, isso aí pode ser facilmente adaptado para qualquer microcontrolador, embora isso aí seja uma coisa que eu não cogitaria usar até porquê ainda não precisei aumentar portas em nada. adicionado 1 minuto depois Aliás, já precisei aumentar portas, mas pra isto usei um CI HC595. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
MULTIPLEXAÇÃO/DEMULTIPLEXAÇÃO Geralmente a gente faz multiplicação de portas para escrita, por exemplo ligar/desligar 10 relés. Tem um artigo "antigo" no site rogercom.com que faz o inverso: leitura de 32 canais: http://www.rogercom.com/pparalela/32entradas.htm Projeto muito interessante. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@alexandre.mbm Não precisa ter medo de peças eletrônicas estragando guardadas, essa é uma possibilidade que existe mas é muuuito remota, a não ser que seja realmente muito mal guardadas, tipo enterradas, dentro de um rio... acho que ninguém aqui usa mais sucada de eletrônica que eu. Tenho placas de sucata aqui que não tem menos de 15 anos de jeito nenhum, estão guardadas simplesmente em uma caixa que nem com a tampa fechada não fica e é só eu precisar de uma peça que recorro a essas sucatas. Só compro peças novas para montar um aparelho qualquer depois de ter saído da fase de protótipo, aí sim, compro peças novas, mando a placa pra confecção profissional e monto tudo zeradinho. Tenho boa quantidade de peças novas mas nada que se compare com o @aphawk , esse cara aí vai deixar só pecinhas de herança kkkkkk -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
Quando eu precisar de peças vou atras do mercado livre do @aphawk hehehehe. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
Sim. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@alexandre.mbm Esse esquema está meio estranho mesmo. Não o esquema da placa em si, mas o fato da plaquinha trabalhar com 3v3 e segundo o desenho do site, os pinos do Arduíno conectam diretamente nos pinos da plaquinha e isso sem nada pra corrigir a diferença de tensão. Embora o MPU-6065 aceite ligar até 5v, internamente ele trabalha com 3v. Na verdade ele só aceita 5v porque tem um regulador de tensão na própria plaquinha que baixa para 3v. Eu nunca fiz conversor de nível para i2c, só fiz para serial e realmente não sei se segue o mesmo padrão. Eu tenho um MPU-6065 desses, por medida de segurança, coloquei ele em 3v assim como o ESP8266. Quando o tempo deixar quero brincar um pouco com ele. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
Com certeza já vale, mas o recomendado é com dois. adicionado 1 minuto depois Se for o caso, veja com o pessoal da eletrônica que eles poderão tirar melhor as dúvidas. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@alexandre.mbm Na dúvida é melhor mesmo. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
Sim. Nas configurações na IDE do Arduíno dá pra configurar as placas mais conhecidas e também as "genéricas". adicionado 6 minutos depois Se você ligar tanto o ESP quanto o PIC em 3v3 não precisa de nada, pode ligar TX/RX diretamente. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@aphawk Desde o inicio quando comecei a trabalhar com os ESP8266 que eu conheci o Thingspeak, e também compreendi que esta á realmente a função para o qual os ESPs foram criados. Por enquanto, como estou apenas brincando e testando, ligando e desligando coisinhas simples, ainda não houve a necessidade de usar o Thingspeak, inclusive achei a proposta de uso tão interessante que penso em montar meu próprio Thingspeak em um domínio próprio, daí eu poderia colocar quantos canais quiser e ainda não teria a limitação de tempo entre cada envio, que no Thingspeak, se não me engano são 5 segundos entre cada envio, ou seja, se tem que esperar esse tempo pra enviar, será que não tem também que esperar este mesmo tempo para ler? Penso que o ideal de atualização é a cada segundo, pode até demorar mais que isso uma vez ou outra por causa dos delays das redes, mas que no geral esse tempo fosse na faixa de 1 segundo. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@alexandre.mbm Sim, também não testei, mas creio que seja possível sim e no caso do Arduíno, também tem as bibliotecas tanto para colocar o ESP como server como para cliente, é possível sim dispensar a configuração no roteador, inclusive, já li em algum lugar que é possível criar um túnel do ESP para o servidor/cliente externo usando qualquer porta sem a necessidade de liberar o forward, mais ou menos como faz o TeamViewer, desta forma dispensaria também a abertura de portas no roteador bem como o gerenciador de IP dinâmico. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
Pessoal, estive pensando muito a respeito das possibilidades de comunicação entre o mundo externo e os ESPs, a forma como eles enviam e recebem informações para determinado local. Hoje nós temos duas possibilidades: 1ª - O ESP fica sempre ativo/online em modo servidor, aguardando um cliente pedir algum tipo de informação e quando isso ocorre ele fornece estas informações sob condição de demanda; se tem demanda, ele executa, se não tem, ele fica aguardando. Prós: O ESP pode executar outras tarefas enquanto ocioso; Quando tem cliente online, só precisa enviar o que for pedido e nada mais. Contras: A conexão externa depende de um IP fixo ou no mínimo um gerenciador de IP Dinâmico (noip, dyndns...). Como sabemos, IP fixo sempre tem um custo adicional nas operadoras e nem todas oferecem este tipo de serviço. Já com os gerenciadores de IP dinâmico, embora seja bem funcional, tem uma série de inconvenientes (comercialmente falando), por exemplo, quase não se encontram estes serviços de forma gratuita e quando encontra o roteador não tem a opção configurar para tal serviço. Dos gratuitos, o noip é um dos mais populares, porém, todo mês tem que ativar a conta, e isso enche a paciência. 2º - O ESP fica em modo cliente e sempre tentando se comunicar com um ou mais servidores e quando consegue, envia todas as informações das leituras a e ele. Prós: Não depende de configuração nenhuma no roteador; Não depende de portas liberadas pela operadora; Não depende dos gerenciadores de IP dinâmico; Contras: Pelo fato dele ter que ficar sempre enviando informações para o servidor, os serviços secundários ficarão prejudicados, pois como sabemos, os ESPs param todos os processos enquanto se comunica na rede wifi; Cada caso é "um caso" imagino que se for prioridade os serviços locais, a primeira opção pode ser a melhor, mas se a prioridade forem o envio das informações para os servidores externos, a segunda já se mostra melhor. O que acham? -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@aphawk Será que melhoraram o buffer e o processamento do webserver dele? Só ta faltando isso pra ele não faltar mais nada né rs. -
Consuta mysql retorna frase cortada
ViniciusKruz respondeu ao tópico de ViniciusKruz em Web e banco de dados
@DiF Olá só: adicionado 27 minutos depois Descobri aqui que a consulta está retornando a frase corretamente, o erro está na hora de passar para o input. Dei um echo depois da consulta e printou corretamente. Essa eu não entendi!!!! adicionado 39 minutos depois @DiF Amigo, consegui, estavam faltando as aspas ao informar a variável que preenche o input: <td><input type="text" name="descricao" value="<?php echo $descricao;?>" ></td> De qualquer maneira, muito obrigado!!! -
Eaê pessoal, estou fazendo uma consulta em um banco Mysql e não sei porquê, recebo a frase cortada, por exemplo, no banco está assim "Oficina mecanica", a consulta me retorna: "Oficina", onde tem o primeiro espaço, a frase é cortada. Geralmente eu mexo é com Sql Server, e com base nesse SGBD, peguei esse exemplo na internet, mas creio que a programação esteja correta. Seguem as funções para análise: <?php //getting id from url $id = $_GET['id']; //selecting data associated with this particular id $result = mysqli_query($mysqli, "SELECT * FROM josow_setores WHERE id=$id"); while($res = mysqli_fetch_array($result)) { $descricao = $res['descricao']; } ?> Aqui tem um form que ao ser aberto, preenche o campo "descricao" com o valor da variável carregada acima pelo php: <html> <head> <title>Edit Data</title> </head> <body> <a href="index.php/setor">Home</a> <br/><br/> <form name="form1" method="post" action="edit.php"> <table border="0"> <tr> <td>Descricao</td> <td><input type="text" name="descricao" value=<?php echo $descricao;?>></td> </tr> <tr> <td><input type="hidden" name="id" value=<?php echo $_GET['id'];?>></td> <td><input type="submit" name="update" value="Update"></td> </tr> </table> </form> </body> </html> Alguém saberia me dizer o que está acontecendo?? Desde já agradeço!!!
-
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@aphawk @lucianolcoa Tem projeto por aí em que os caras colocam uma câmera no ESP, ele vira uma câmera de segurança rsrsrs. Depois que passei a usar os ESPs, não consegui ainda imaginar uma necessidade de outro processamento junto dele, seja PIC, Raspberry, ou qualquer outra coisa. Penso que se precisar de alguma coisa mais "potente" que o ESP, talvez seja hora de pensar em programar para Desktop. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@Papibakigrafo Imaginei que você estivesse usando um Arduíno, mas aí iria precisar de uma placa de rede nele. Embora funcione no servidor, não tem garantia de que funcione no ESP viu rsrsrs. Eu tenho códigos aqui que funcionam em qualquer página, mas quando coloco para o ESP gerar eles, não sei porquê, não funciona, aquele caso do javascript/Ajax mesmo, funcionava perfeitamente inserido em uma página comum, mas quando colocava no ESP, a coisa não rodava, até que descobri que não bastava somente colocar <script> que tinha que setar também a "language", deu foi canseira. Creio que seja algo relacionado com caracteres especiais sei lá. O legal é que pelo menos você vai matando a ansiedade né. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@Papibakigrafo Como é que você ta testando isso aí sem o ESP? -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@Papibakigrafo Aqui está sua resposta: http://forum.clubedohardware.com.br/forums/topic/1134300-esp8266-a-pequena-maravilha-para-comunicação-internet/?page=34#comment-6542649 -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@rodrigocirilo Não faço ideia de como fazer ou se tem como fazer o que vou dizer, no ESPBasic, mas em html, isso que você ta querendo, teria que identificar uma parte do código com uma ID, por exemplo uma div: <div id="teste"> Texto que será mudado </div> daí com um javascript ou algo parecido, chama a função que vai mudar este elemento "teste": document.getElementById("teste").innerHTML = retorno; Acho que o ESPBasic não permite mexer no html. adicionado 8 minutos depois Depende do objetivo do projeto, por exemplo, se a ideia for acessar o ESP "de fora", se não tiver internet não acessa, logo sub-entende-se que haverá problema. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
Sua página principal deve ser a handleRoot(). Pode mudar o nome para "principal" se quiser, aí ficaria assim: server.on("/", principal); daí cria-se a rotina referente a ela: void principal(){}; Funciona assim: a linha: server.on("/", handleRoot); é a "raiz do site", é a página inicial, quando ela é acessada, verifica se é um cliente logado: 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; } Como pode ver no código acima, caso não esteja ainda logado, redireciona para a página de login("Location: /login"), que contêm o form de acesso: 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"); Serial.println("Usuario gravado:"); Serial.println(user); Serial.println("Senha gravada:"); Serial.println(pwd); 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><body> <title>ESP-Control</title>"; content+="<meta http-equiv='Content-Type' content='text/html; charset=utf-8'><br>"; content+="<div class='reformed-form'>"; content+="<form method='post' name='login' id='login' action='/login'><H1>ACESSO AO SISTEMA</H1>"; content+="<dl><dt><label for='usuario'>Usuário</label></dt>"; content+="<dd><input type='text' id='usuario' name='USERNAME' placeholder='Nome do usuário' /></dd></dl><dl><dt>"; content+="<label for='senhalogin'>Senha</label></dt>"; content+="<dd><input type='password' id='senhalogin' name='PASSWORD' placeholder='Senha' /></dd>"; content+="</dl><div id='submit_buttons'><button type='submit'>Entrar</button></div></form></div>"+ msg +"<br>"; content += "<a href='/inline'>Monitor</a></body></html>"; server.send(200, "text/html", content); } Uma vez logado corretamente, um Cookie é salvo, a partir daí, toda página pode checar se o Cookie existe através da função: 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; } Se não existir o Cookie, não está logado, daí redireciona para a tela de login, trecho abaixo serve para fazer esta checagem: 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; } Pode acontecer também de você querer exigir a autenticação via post/get e não pelo Cookie, aí basta não colocar este trecho aí de cima e autenticar assim: void estado(){//rotina para checar todos os status dos sensores //Autenticação exigida via POST(acessado por site externo) //readDS3231time(); String content; int statusCode=0; Serial.println("Estado"); if (server.hasArg("USERNAME") && server.hasArg("PASSWORD")){ Serial.println("Contem login"); if (server.arg("USERNAME") == user && server.arg("PASSWORD") == pwd ){ char val[17]; Serial.println("login correto"); if(server.hasArg("data_hora")){//pedido de status de data e hora sprintf(val,"%02d/%02d/%02d-%02d:%02d:%02d",intDia,intMes,intAno,intHora,intMinuto,intSegundo); } server.send(200, "text/html", val); Serial.println("Enviando data e hora:"); //server.send(0, "application/json", content); return; } } } Este código acima, aceita requisição de sites externos, isso aí responde com a data/hora/min/seg. Estou usando uma página externa para fazer esta requisição via javascript/Ajax, funciona que é uma beleza. Note que a função verifica se tem o argumento "data_hora", caso sim, responde com os dados, mas poderia verificar outros argumentos também e informar outros dados. Depende da biblioteca usada, cada uma permite setar a porta de uma forma. Que potência que nada hehehe, eu sou novato com JS/Ajax/CSS... e depois que eu fiz este exemplo aí foi que um amigo me disse que podia linkar os arquivos kkkk, mas tá bom, isso era só um teste mesmo e como eu já havia penado um bocado e sem ter sucesso com JS, eu lavei a alma com esse simples exemplo. Exatamente, de outra forma não rodou. A primeira é voltada para Web Server e tem funções para isto. Já a segunda tem funções para rede Wifi, como por exemplo, buscar redes disponíveis. São bibliotecas muito interessantes, convêm até estudar elas, dá pra aprender muita coisa mesmo. -
ESP8266 - A Pequena Maravilha para Comunicação WIFI
ViniciusKruz respondeu ao tópico de aphawk em Microcontroladores
@Papibakigrafo Testei e compilou certinho, só não vou ter como lançar no ESP para ver rodando, mas de imediato já passou no primeiro teste: O sketch usa 232.797 bytes (22%) de espaço de armazenamento para programas. O máximo são 1.044.464 bytes. Variáveis globais usam 33.804 bytes (41%) de memória dinâmica, deixando 48.116 bytes para variáveis locais. O máximo são 81.920 bytes. Sobre o JQuery, tem um teste meu postado ha poucos dias onde faço exatamente isto, onde foi usado javascript/Ajax/CSS dá uma verificadinha na semana passada. Sobre melhorar, que tal começar checando uma senha? Senão qualquer um que entrar no ESP poderá mexer, de repente vai parecer que tem fantasma na sua casa, as lâmpadas apagando e acendendo sozinhas... só o padre Quevedo pra dar jeito rerere. Esse código aí ficou bem simples e objetivo, eu já estou me acostumando a chamar as páginas separadas, como no exemplo que te sugeri outro dia, no setup dá pra configurar cada página que leva cada uma para uma função específica que fornece os dados: server.on("/", handleRoot); server.on("/confwifi", confwifi); server.on("/confipst", confipst); server.on("/login", handleLogin); server.on("/conflogin", conflogin); server.on("/reboot", reboot); server.on("/act", act); server.on("/relogio", relogio); server.on("/comando", comando); Naquele exemplo também já tem em cada função, a opção de checar se o cliente está logado ou não, ou então simplesmente pegar os argumentos e executar o comando específico.
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