08.11.2017 Views

arduino_básico_Michael_McRoberts

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 17 ■ Comunicação via Ethernet<br />

405<br />

Em seguida, temos a função resetEthernetShield(), cuja função é reinicializar o shield<br />

Ethernet, executando um comando Ethernet.begin para reinicializar o shield cada vez<br />

que ela é chamada:<br />

void resetEthernetShield() {<br />

Serial.println("reset ethernet");<br />

Ethernet.begin(mac, ip);<br />

}<br />

Depois, temos uma extensa função, cujo propósito é enviar os dados do sensor para<br />

a Internet e para a página de feed do Pachube:<br />

void pachube_out(){<br />

Você inicia chamando a função getTemperatures() para armazenar as leituras de ambos<br />

os sensores:<br />

getTemperatures();<br />

Então, verifica se o valor atual em millis() é menor do que o valor armazenado em<br />

last_connect. Se afirmativo, então last_connect é atualizada com o valor atual de millis().<br />

O valor em last_connect será atualizado com o valor de millis() toda vez que você se<br />

desconectar do Pachube. Você utilizará esse valor para verificar quantos milissegundos<br />

transcorreram desde sua última conexão.<br />

if (millis() < last_connect) last_connect = millis();<br />

Em seguida, temos uma instrução if que será executada se request_pause for verdadeira.<br />

Essa variável é definida como true apenas se a conexão falhou, ou se você acabou de<br />

se desconectar do Pachube.<br />

if (request_pause){<br />

Dentro dessa instrução if você verifica se o valor atual em last_connect, subtraído do<br />

valor de millis(), é maior do que o valor de interval. Se afirmativo, isso significa que<br />

transcorreu o período de intervalo, e definimos as três flags como true ou false, de<br />

acordo:<br />

if ((millis() - last_connect) > interval) {<br />

ready_to_update = true;<br />

reading_pachube = false;<br />

request_pause = false;<br />

}<br />

Essas flags dizem à função pachube_out() que o intervalo de tempo especificado desde<br />

a última conexão, ou tentativa de conexão, já transcorreu e que, portanto, você está<br />

pronto para tentar a próxima atualização. Caso você esteja pronto para atualizar,<br />

executamos a próxima instrução if.<br />

if (ready_to_update) {

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!