-
Posts
358 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que nickmetin9 postou
-
ola estou montando uma central web de acionamentos de rele com o ethernet shield porém estou com algumas dificuldades 1 o arquivo index.htm esta no cartao sd (isso consegui resolver tranquilo) 2 pensei em ultilizar o metodo de formulario get pra poder controlar o funcionamento das portas porém nao consegui a url é gerada no navegador porém o arduino não faz a leitura do mesmo ja consegui aplicar este metodo apenas quando o html esta dentro da memoria do arduino e nao no sd card e logo nao aciona nen uma porta ja vi varios tutoriais porém nao comsegui aplicalos no meu projeto logo a baixo tem o codigo do projeto deste ja agradeço #include <SPI.h> #include <Ethernet.h> #include <SD.h> String readString; int buzer = 7; int rele8 = 8; /********************************************************************************** ********************************FIM BIBLIOTECAS************************************ **********************************************************************************/ /********************************************************************************** *************************ROTINAS USUARIO E SENHA*********************************** ***********************************************************************************/ boolean validar_usuario(char * linebuf) { /* nesse exemplo o usuario e senha estão definidos dentro do código fonte. mas o usuário e senha poderiam ser autenticados de diversas maneiras, lendo os dados de um servidor web, arquivo texto, etc, bastando apenas atribuir o valor lido para a variável usuario_senha. */ char usuario_senha[] = "admin:123"; //usuario e senha para acessar a pagina byte t = strlen(usuario_senha); int tamanhoEnc = (((t-1) / 3) + 1) * 4; //tamanho da string codificada char out[tamanhoEnc]; char out2[tamanhoEnc]; for (t=0; t<(tamanhoEnc); t++) { out2[t] = linebuf[21+t]; } return (strstr(out2, out)>0); } /********************************************************************************** *************************FIM ROTINA USUARIO E SENHA******************************** ***********************************************************************************/ /**************************************************************************************** ****************************SD CARD INICIO*********************************************** ****************************************************************************************/ #define PIN_SD_CARD 4 boolean iniciar_sd_card() { pinMode(10, OUTPUT); digitalWrite(10, HIGH); if (!SD.begin(PIN_SD_CARD)) { return false; } return true; } /**************************************************************************************** ****************************SD CARD FIM************************************************** ****************************************************************************************/ /********************************************************************************** ***********************************PAGINAS HTML************************************ ***********************************************************************************/ EthernetServer * server; void write_from_file(EthernetClient &client, char * filename){ File webFile = SD.open(filename); if (webFile) { while(webFile.available()) { client.write(webFile.read()); } webFile.close(); } else { Serial.print("Erro SD CARD: "); Serial.println(filename); } } void iniciar_ethernet_01(){ byte ip[4] = {192,168,1,190}; //definir aqui o ip byte gateway[4] = {192,168,200,254}; byte subnet[4] = {255,255,255,0}; byte mac[6] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; int porta = 80; server = new EthernetServer(porta); Ethernet.begin(mac, ip, gateway, subnet); //caso necessario gateway utilizar essa linha server->begin(); }void iniciar_ethernet() { //escolher apenas um dos dois modos de iniciar o ethernet shield iniciar_ethernet_01(); //inicia com ip, gateway, mascara e porta //iniciar_ethernet_02(); //inicia só com ip e porta } void html_logoff(EthernetClient &client){ client.print(F( "HTTP/1.1 401 Authorization Required\n" "Content-Type: text/html\n" "Connnection: close\n\n" "<!DOCTYPE HTML>\n" "<html><head><title>Logoff</title>\n" "<script>document.execCommand('ClearAuthenticationCache', 'false');</script>" //IE logoff "<script>try {" //mozila logoff " var agt=navigator.userAgent.toLowerCase();" " if (agt.indexOf(\"msie\") != -1) { document.execCommand(\"ClearAuthenticationCache\"); }" " else {" " var xmlhttp = createXMLObject();" " xmlhttp.open(\"GET\",\"URL\",true,\"logout\",\"logout\");" " xmlhttp.send(\"\");" " xmlhttp.abort();" " }" " } catch(e) {" " alert(\"erro ao fazer logoff\");" " }" "function createXMLObject() {" " try {if (window.XMLHttpRequest) {xmlhttp = new XMLHttpRequest();} else if (window.ActiveXObject) {xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\");}} catch (e) {xmlhttp=false;}" " return xmlhttp;" "}</script>" "</head><body><h1>voce nao esta mais conectado</h1></body></html>\n")); } void html_autenticar(EthernetClient &client) { client.print(F("HTTP/1.1 401 Authorization Required\n" "WWW-Authenticate: Basic realm=\"Area Restrita\"\n" "Content-Type: text/html\n" "Connnection: close\n\n" "<!DOCTYPE HTML>\n" "<html><head><title>Error</title>\n" "</head><body><h1>401 Acesso nao autorizado</h1></body></html>\n")); } void html_autenticado(EthernetClient &client, char * filename){ client.println(F("HTTP/1.1 200 OK\n" "Content-Type: text/html\n" "Connection: keep-alive\n")); write_from_file(client, filename); } void js_file(EthernetClient &client, char * filename){ client.println(F("HTTP/1.1 200 OK\n" "Content-Type: text/javascript\n" "Connection: keep-alive\n")); write_from_file(client, filename); } void css_file(EthernetClient &client, char * filename){ client.println(F("HTTP/1.1 200 OK\n" "Content-Type: text/css\n" "Connection: keep-alive\n")); write_from_file(client, filename); } void favicon_file(EthernetClient &client, char * filename){ client.println(F("HTTP/1.1 200 OK\n" "Content-Type: image/x-icon\n" "Connection: keep-alive\n")); write_from_file(client, filename); } void pdf_file_download(EthernetClient &client, char * filename){ client.println(F("HTTP/1.1 200 OK\n" "Content-Type: application/download\n" "Connection: close\n")); write_from_file(client, filename); } void jpg_file(EthernetClient &client, char * filename){ client.println(F("HTTP/1.1 200 OK\n" "Content-Type: file/jpg\n" "Connection: close\n")); write_from_file(client, filename); } void exec_ethernet() { EthernetClient client = server->available(); if (client) { char linebuf[80]; memset(linebuf, 0, sizeof(linebuf)); int charCount = 0; boolean autenticado = false; boolean currentLineIsBlank = true; boolean logoff = false; boolean indCss = false; boolean indJs = false; boolean indPdfDataSheet = false; boolean indJpgUno = false; boolean indJpgUno1 = false; boolean indFavicon = false; while (client.connected()) { if (client.available()) { char c = client.read(); if (readString.length() < 100) { readString += c; } linebuf[charCount] = c; if (charCount<sizeof(linebuf)-1) { charCount++; } Serial.write(c); if (c == '\n' && currentLineIsBlank) { if (autenticado && !logoff ) { if (indJs){ js_file(client, "js.js"); //js file } else if(indCss){ css_file(client, "css.css"); //css file } else if(indPdfDataSheet){ pdf_file_download(client, "atmel.pdf"); //datasheet download } else if(indJpgUno){ jpg_file(client, "uno.jpg"); //jpg file } else if(indJpgUno1){ jpg_file(client, "uno1.jpg"); //jpg file } else if(indFavicon){ jpg_file(client, "favicon.ico"); //icone do browser } else { html_autenticado(client, "index.htm"); //página inicial } } else { logoff ? html_logoff(client) : html_autenticar(client); } break; } if (c == '\n') { currentLineIsBlank = true; if (strstr(linebuf, "GET /logoff" )>0 ) { logoff = true; } if (strstr(linebuf, "Authorization: Basic")>0 ) { if ( validar_usuario(linebuf) ) { autenticado = true; } } if (strstr(linebuf, "GET /css.css" )>0 ) { indCss = true; } if (strstr(linebuf, "GET /js.js" )>0 ) { indJs = true; } if (strstr(linebuf, "GET /atmel.pdf" )>0 ) { indPdfDataSheet = true; } if (strstr(linebuf, "GET /uno.jpg" )>0 ) { indJpgUno = true; } if (strstr(linebuf, "GET /favicon.ico" )>0 ) { indFavicon = true; } memset(linebuf, 0, sizeof(linebuf)); charCount = 0; } else if (c != '\r') { currentLineIsBlank = false; } } } delay(1); client.stop(); } } /********************************************************************************** **************************************** FIM PAGINAS HTML************************** ***********************************************************************************/ /********************************************************************************** *************************BASE 64 CODE/DECODE DO USUARIO E SENHA******************** ***********************************************************************************/ void a3_to_a4(unsigned char * a4, unsigned char * a3); void a4_to_a3(unsigned char * a3, unsigned char * a4); unsigned char b64_lookup(char c); int base64_encode(char *output, char *input, int inputLen) { const char b64_alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; int i=0, j=0, encLen=0; unsigned char a3[3], a4[4]; while(inputLen--) { a3[i++] = *(input++); if(i == 3) { a3_to_a4(a4, a3); for(i=0; i<4; i++) { output[encLen++] = b64_alphabet[a4[i]]; } i = 0; } } if (i) { for(j = i; j < 3; j++) { a3[j] = '\0'; } a3_to_a4(a4, a3); for(j = 0; j < i + 1; j++) { output[encLen++] = b64_alphabet[a4[j]]; } while((i++ < 3)) { output[encLen++] = '='; } } output[encLen] = '\0'; return encLen; } /* int base64_decode(char * output, char * input, int inputLen) { int i = 0, j = 0; int decLen = 0; unsigned char a3[3]; unsigned char a4[4]; while (inputLen--) { if (*input == '=') { break; } a4[i++] = *(input++); if (i == 4) { for (i = 0; i <4; i++) { a4[i] = b64_lookup(a4[i]); } a4_to_a3(a3,a4); for (i = 0; i < 3; i++) { output[decLen++] = a3[i]; } i = 0; } } if (i) { for (j=i; j<4; j++) { a4[j] = '\0'; } for (j=0; j<4; j++) { a4[j] = b64_lookup(a4[j]);} a4_to_a3(a3,a4); for (j=0; j<i-1; j++) { output[decLen++] = a3[j]; } } output[decLen] = '\0'; return decLen; } */ //int base64_enc_len(int plainLen) { // int n = plainLen; // return (n + 2 - ((n + 2) % 3)) / 3 * 4; //} //int base64_dec_len(char * input, int inputLen) { // int i = 0; // int numEq = 0; // for(i = inputLen - 1; input[i] == '='; i--) { numEq++; } // return ((6 * inputLen) / 8) - numEq; //} void a3_to_a4(unsigned char * a4, unsigned char * a3) { a4[0] = (a3[0] & 0xfc) >> 2; a4[1] = ((a3[0] & 0x03) << 4) + ((a3[1] & 0xf0) >> 4); a4[2] = ((a3[1] & 0x0f) << 2) + ((a3[2] & 0xc0) >> 6); a4[3] = (a3[2] & 0x3f); } //void a4_to_a3(unsigned char * a3, unsigned char * a4) { // a3[0] = (a4[0] << 2) + ((a4[1] & 0x30) >> 4); // a3[1] = ((a4[1] & 0xf) << 4) + ((a4[2] & 0x3c) >> 2); // a3[2] = ((a4[2] & 0x3) << 6) + a4[3]; //} unsigned char b64_lookup(char c) { if(c >='A' && c <='Z') return c - 'A'; if(c >='a' && c <='z') return c - 71; if(c >='0' && c <='9') return c + 4; if(c == '+') return 62; if(c == '/') return 63; return -1; } /********************************************************************************** *************************FIM BASE 64 CODE/DECODE DO USUARIO E SENHA**************** ***********************************************************************************/ /********************************************************************************** **************************************** VOID / ****************************** ***********************************************************************************/ void setup() { Serial.begin(9600); iniciar_sd_card(); iniciar_ethernet(); pinMode (buzer, OUTPUT); } void loop() { exec_ethernet(); }
-
Arduino contador de tempo com arduino
nickmetin9 respondeu ao tópico de nickmetin9 em Microcontroladores
voce nao entendeu em relação ao pir ele nao mede temperatura e sim movimento ,sim se você para de se mover para de dectar logo dispara o alarme o sistema esta funcionando esta apenas gostaria de adicionar uma função extra.. para marcar quanto tempo a luz ficou acesa sem necessidade e sim ja fiz um led piscar -
ola tenho um projeto com o arduino onde ele dispara um alarme caso a luz seja esquecida ligada mais gostaria de encrementar um contador onde ele marca por quanto tempo a luz esta ligada sem ter pessoas no local (uso arduino uno, sensor ldr,sensor pir, e um buzzer para emitir um alarme) a ideia e que usar o sensor ldr para registrar a luminosidae(luz acesa) mais o sensor pir(sem pessoas no ambiente) marcar por quanto tempo isso aconteceu para ter um controle melhor dos dados gostaria de saber qual comando usar andei dando uma pesquisada e nao achei nada relacionado pensei em usar ()millis mais ja uso a mesmo para controlar o tempo que demora para o alarme disparar depois de nao tem ninguem no local deste ja muito obrigado
-
ola eu estou em duvida se minha fonte aguenta essa configuração gtx 570 /560 /hd6870(eu ainda nao comprei porque estou com medo da fonte nao aguentar) processador x4 955 2x2gb kingston 1333 1tb seagete 7200rpm e fonte corsair vx 450
-
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
meu caro amigo le a primera pagina do topico e dai re poste da maneira CERTA pois desse modo fica difícil nos avilarmos algo se posivel poste a temp do ambiente tambem -
Water Cooler - Refrigeração Liquida - Topico atualizado
nickmetin9 respondeu ao tópico de BetoUK em Refrigeração e superaquecimento
olah cara o teste era de cara famoso o 3dgameman http://www.3dgameman.com/reviews/1080/corsair-h50-cpu-cooler eu achei o teste bom mais os resultatos finais eu achei muito bom para ser verdade rriariariariair ei tipo o h70 tem muita diferensa pro frio desculpa é qeu eu nun mancho nada de wc -
Water Cooler - Refrigeração Liquida - Topico atualizado
nickmetin9 respondeu ao tópico de BetoUK em Refrigeração e superaquecimento
cara tipo eu vi um video neu desconfiei um pouco um h 50 ele manteve em full um i7 [email protected] a 40 graus e temp ambiente era de 22 graus sera que é posivel isso mesmo ou é historia pra boi durmi ? -
Water Cooler - Refrigeração Liquida - Topico atualizado
nickmetin9 respondeu ao tópico de BetoUK em Refrigeração e superaquecimento
então minha ideia inicial era um h70 mais achei aqui no py so o h 50 mais cara em que temp ambiente esse server fica ? ou intao se tiver um water legal ate uns 200 250 eu topo tambem -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
cara ele tem um frio mano era pra ta bem mais baixo coisa tipo idle 30 35 full 45 no maxx -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
olha nao estão ruim levando em consideração a temp ambiente mais se leva em consideração que é um frio tá ruim sim bem é seguinte coloque as ventuina nos 100% faz o teste de novo e manda para nos grato -
Water Cooler - Refrigeração Liquida - Topico atualizado
nickmetin9 respondeu ao tópico de BetoUK em Refrigeração e superaquecimento
ola eu estou pensando em comprar um wc eu vi um h 50por 200 reasi no py gostei muito mais minha duvida é sera que o h 50 é melhor que o termaltake frio ? estou com uma duvida enorme alguem ai pode me ajuda rs -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
olha silencioso tem o ice age e o v8 sendo o ice um pouco melhor nao muito coisa de 2 a 5graus eu iria de v8 mais barato rs a geuntaria seu i5 de boa -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
voce que sabe cara os dois sao otimos mais sobre essa sua teoria nao condordo muito pois a função do ar nos cooler tipo torre é retirar o ar quente das atelas (ou algo assim ano sei o nome direi mais sao a quelas chapinhas que forma o dissipador) e com o fan no meio ele fai retirar o calor do dissipador mais facill sobre o amigo ai de cima ja conta sim cara mais se voce que quiser fazer um over mais pessado acho que ele nao da nao -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
o ice age ele bom cara mais tambem tem pouquisima diferensa se for pra espera mais um mes leva logo o frio pois o ice ele é 190 180 e frio 200 210 e o desempenho fai ser melhor -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
cara so uma coisa nao sei quem falo para ele pega um tx3 bem eu tenho um buffalo (a margen de desempenho dois sao muito paresidos ) quanto eu colocoquei o buffalo foi perfeito tá uns 35 37 graus em idle mais foi chega o verão e bate 35 37 graus ambiente e apara nao deu conta ele mandei meu proc a 47 50 o v8 no caso dele é melhor coisa pois ele ja falou que fai fazer upgrade e o v8 ageunta o i7 de boa sem reclama e ainda mais em salvador que todos aqui sabem que é quente então não adianta melhor gasta um pouco mais agora e ficar de boa do que economizar hoje e gastar o resto e muito mais depois -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
bem a respeido disso o v8 e o perfoma tem quase a mesma coisa de despenho coisa de 1 2 graus veja na tabela http://www.frostytech.com/articleview.cfm?articleid=2498&page=4 bem o v8 ele tem 16 cm de comprimento bem provavel que caiba tranquilo pois o cm 690 ele tem 21 cm de lateral -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
desculpe a sinseridade maiss voce fez coisa errada pois um amigo meu aqui da cidade tinha um tx3 ate que ela legal mais no calor de 40 graus ele nao dava conta nao ja o frio (instalado corretamente tudo 100%) deu um pau no tx3 mais no caso do nosso amigo o v8 é a melhor pedida por farios motivos 1 preço muito bom 2 o cooler vai segura o proc dele com over 3 e assim tambem ele pode fazer varios upgrades sem se preocupar com cooler -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
a cara eu nao to locao pow se tu for colocar um i7 e pega o hyper compensa pega o v8 pro 150 na londri tech pra um i3 acho que o buffalo darai conta nos primeros dias mais se chega uns 35 graus ambiente pode desiste ele nao fai segura fai passa dos 45 fácil (eu tenho um eu sei bem como é) um hyper 212 se voce nao fiser over ja aguente bem mais mais se voce quiser over mesmo e for trocar pega logo um v8 por 150 mesmo melhor coisa -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
a cara um cooler otimo se nao liga pra ruido é tt frio cerca de 200 reais se você liga pra ruido ira de ice age prima boss ii ou v8 o hyper 212 é bom mais com over ele toma chumbo de farios cooler -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
cara vcoe deve usar o cooler box as temps estão autas em full muito alto mesmo se eu fose você trocaria de cooler pegaria um tx3 ou superiror -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
verdade muito ruim esse programa pega o everest ou hwmonitor sao os melhores -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
na mobo ve se ele tá bem apertado troque a pasta termica da uma limpada nele se preciso (pra ve a pasta termica você vai te que tira o cooler -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
amigo as temperaturas estão altas isso pode ser o causador do lag bem o que voce pode fazer é da uma olhada na pasta termina se o cooler tá bem em caixado ps poste a configuração do seu pc e o sistema de refrigeraçao grato -
Avaliação de temperaturas - Tópico Fixo!!
nickmetin9 respondeu ao tópico de Pedro Borges em Refrigeração e superaquecimento
amigo eu falo do conjunto todo cooler seria disipador +fan bem um cooler bom é o spire thermax eclipse ii muito bom mesmo (caso voce queira fazer over) e tamben tem o hyper 212 que custa na faixa de uns 90 pila no sei caso eu acho que seria as melhores opções ^^
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