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

407<br />

E informa ao usuário que você está prestes a atualizar o feed:<br />

Serial.println("Updating.");<br />

Depois, você imprime os dados em localClient. Para fazê-lo, você constrói uma string<br />

que é enviada ao URL de seu feed. A primeira parte dessa string é o URL do feed,<br />

incluindo seu ID, seguido pela chave da API:<br />

localClient.print("PUT /v1/feeds/");<br />

localClient.print(SHARE_FEED_ID);<br />

localClient.print(".csv HTTP/1.1\nHost: api.pachube.com\nX-PachubeApiKey: ");<br />

localClient.print(PACHUBE_API_KEY);<br />

Em seguida, você envia o nome do agente de usuário. Este é um comando HTTP que<br />

geralmente identifica qual software está sendo utilizado como parte da comunicação<br />

cliente-servidor. O campo User-Agent do cabeçalho de requisição contém informações<br />

sobre o agente de usuário que origina a solicitação. Mesmo não sendo absolutamente<br />

necessário, é considerado adequado identificar o código do cliente.<br />

localClient.print("\nUser-Agent: Beginning Arduino – Project 47");<br />

Depois, você diz ao cliente qual o tipo do conteúdo e seu comprimento. Em nosso<br />

caso, temos um arquivo de texto do tipo .csv.<br />

localClient.print("\nContent-Type: text/csv\nContent-Length: ");<br />

localClient.print(content_length);<br />

localClient.print("\nConnection: close\n\n");<br />

Por fim, temos a string com os valores do sensor, separados por vírgula:<br />

localClient.print(pachube_data);<br />

localClient.print("\n");<br />

As flags são todas redefinidas com seus valores originais:<br />

ready_to_update = false;<br />

reading_pachube = true;<br />

request_pause = false;<br />

interval = UPDATE_INTERVAL;<br />

}<br />

Se você foi incapaz de se conectar, avisa o usuário, define as flags apropriadas e reinicia<br />

a conexão Ethernet:<br />

else {<br />

Serial.print("connection failed!");<br />

ready_to_update = false;<br />

reading_pachube = false;<br />

request_pause = true;<br />

last_connect = millis();<br />

interval = RESET_INTERVAL;

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

Saved successfully!

Ooh no, something went wrong!