[Resolvido] Duvida - Como exibir hora do RTC DS1307 na pagina exibida pelo ESP-01+arduino

Bom dia, possuo um shield rtc ds1307 com cartão SD, quero utiliza-lo com a Automation Board+ESP-01, consegui executar com exito o tutorial do Marcelo de como acionar a mesma via wifi.

http://labdegaragem.com/profiles/blogs/tutorial-controlando-reles-v...

Inicialmente gostaria de conseguir exibir a hora do RTC na pagina, como faço para exibir esta informação no canto superior direito da pagina utilizando o código do tutorial, não possuo experiencia com HTML,apesar de ter uma breve noção.

Exibições: 1530

Anexos

Responder esta

Respostas a este tópico

Em HTML, para alinhar um texto à direita, use CSS text-align.

Se a hora do RTC estiver em uma variável de nome hora, então acrescente essa linha no código de exemplo:

webpage += "<p style='text-align:right;'>" + hora + "</p>";

José, muito obrigado, entendi, a noite vou testar, para ver se consigo

tentei aqui, ma estou com duvida em como transformar a hora em uma variável, com o modulo RTC sempre utilizei o exemplo do RTClib da adafruit

ficando assim ex:

void DS1307 () {
DateTime now = rtc.now();

Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();


Serial.println();
delay(1000);
}

como concatenar a função now() em uma variável?

Uma forma é converter  para String:

String hora;

hora = String(now.hour()) + ":" + String(now.minute()) + ":" + String(now.second());

e, depois, aonde você quer exibir a hora:

webpage += "<p style='text-align:right;'>" + hora + "</p>";

Você pode concatenar quantas informações que quiser. Aqui eu concatenei somente a hora

Jose, Show de bola, agora entendi vou testar mais tarde.

 muito obrigado

Por algum motivo, quando coloco o comando abaixo a pagina não carrega, mas pelos atalhos da url é possivel acionar os reles de forma manuscrita, esta sendo um desafio

DateTime now = rtc.now();
hora = String(now.hour()) + ":" + String(now.minute()) + ":" + String(now.second());

em anexo o codigo

Anexos

Tiago, mais uma tentativa:

Adaptei essa dica desta página: http://forum.arduino.cc/index.php?topic=260457.0

Substitua a variável hora pelo tipo char e use sprintf para converter:


char hora[30];
DateTime now = rtc.now();
sprintf( hora, "%02hhu:%02hhu:%02hhu", now.hour(), now.minute(), now.second() );


José, usando sua dica deu erro de leitura do char, por causa do "+hora+"

adaptando daqui http://www.efeitonerd.com.br/2012/04/relogio-digital.html ficou assim;

char hora[30];

DateTime now = rtc.now();

sprintf( hora, "%02d:%02d:%02d", now.hour(), now.minute(), now.second() );

webpage += "<p style='text-align:right;'>";
webpage += hora; //imprime a hora
webpage += "</p>";

mas acho que o problema é o local onde estou inserindo essas linhas que pode estar gerando o erro, a pagina ainda não carrega.

quando eu digito 192.168.0.142/rele1 consigo acionar o rele, sinal que esta funcionando.

o desafio continua hehe

Anexos

Tiago, vou fazer uns testes à noite, pois não tenho acesso agora. Depois te falo.

Pergunta:

Se você tirar essas linhas que exibem a hora, a página carrega?

José Gustavo, estou lendo muito vi que o problema esta na estrutura css, mas não achei a solução ainda hehe

faltou isso aqui webpage += "< style type=\"text/css\" >"

Jose, pois é quando tira funciona, pelas pesquisas que fiz a estrutura esta correta, devemos estar deixando passar alguma coisa.

nN meu entender, deveria não aparecer nada no local da hora, ou carregar a pagina parcialmente.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço