Escolar Documentos
Profissional Documentos
Cultura Documentos
ARDUINO
PELA INTERNET?
VOLUME I
VOLUME I
1ª edição
Vitória
Edição do Autor
2018
É proibida a duplicação ou reprodução deste volume, no
todo ou em parte, sob quaisquer formas ou por quaisquer
meios (eletrônico, mecânico, gravação, fotocópia, distribui-
ção na Web e outros), sem permissão expressa e prévia do
Autor.
automacaoem5minutos@gmail.com
ISBN: 978-85-924209-0-1
APÊNDICE B.............................................................................97
APÊNDICE C.............................................................................99
APÊNDICE D...........................................................................102
APÊNDICE E...........................................................................108
APÊNDICE G...........................................................................111
APÊNDICE H...........................................................................114
APÊNDICE I............................................................................117
1
CAPÍTULO 1
Clientes e servidores 2
Em nosso dia a dia, estamos acostumados a lidar com vários ti-
pos de situações que vão desde as mais comuns até impasses ines-
perados. É certo que, quando vivenciamos momentos corriquei-
ros, quase sempre realizamos ações de uma maneira “mecânica”,
ou seja, de uma maneira em que geralmente não pensamos muito
sobre a forma de como devemos proceder. Como exemplo destes
tipos de situações, podemos citar a ida à cozinha para beber um
copo de água ou até mesmo o ritual que realizamos para escovar
nossos dentes.
Observe que por mais simples que as situações ilustradas ante-
riormente sejam, existe um mecanismo biológico muito complexo
por trás de cada movimento efetuado. Algo análogo ocorre quando
nós simplesmente digitamos o endereço de um website na barra
de endereços de um navegador de internet.
É com esta reflexão que iremos iniciar nossos estudos sobre o
desenvolvimento de aplicações IoT em conjunto com as placas
Arduino.
2.1Umabreveexplicaçãosobreclienteseservidores
1 #include <SPI.h>
2 #include <Ethernet.h>
endereço pode ser qualquer um, desde que seja único na rede.
Como sugestão, apenas copie o valor que apresentamos.
Em seguida, além do endereço MAC definido anteriormente,
torna-se necessário definir um endereço IP para o nosso Ardui-
no UNO. Esta informação é imprescindível para que seja possível
estabelecer a conexão entre o mesmo e a rede local. Obviamente,
este endereço deve estar disponível na sua rede para que possa ser
utilizado (caso você não saiba como proceder, visite o Apêncice A
deste livro).
Por último, vamos criar um objeto chamado server, o qual,
será responsável por representar o Servidor Web no código do Ar-
duino UNO (Note que ao criarmos este objeto, passamos o nú-
mero 80 como parâmetro, pois estamos determinando a porta
que o Servidor Web utilizará para enviar as páginas web que serão
criadas posteriormente).
A título de curiosidade, quando digitamos o endereço de algum
site no navegador, ele automaticamente procura a porta 80 do ser-
vidor no qual está se conectando. Em contrapartida, caso o serviço
responsável por disponibilizar as páginas web para o cliente esti-
ver em outra porta, devemos especificar esta no endereço do site,
por exemplo: www.exemplo.com.br:1234
1 void setup()
2 {
12 Como controlar o meu ARDUINO pela Internet?
1 Ethernet.begin(mac, ip);
2 server.begin();
3 }
1 void loop()
2 {
3 EthernetClient client = server.available();
4 if (client)
5 {
6 boolean currentLineIsBlank = true;
7 while (client.connected())
8 {
9 if (client.available())
10 {
11 char c = client.read();
12 if(c == ‘\n’ && currentLineIsBlank)
13 {
14 .
15 .
16 .
17 break;
Capítulo 3 - O Arduino UNO e os navegadores web 13
18 }
19 if (c == '\n')
20 {
21 currentLineIsBlank = true;
22 }
23 else if (c != '\r')
24 {
25 currentLineIsBlank = false;
26 }
27 }
28 }
29 delay(1);
30 client.stop();
31 }
32 }
1 if(client.available())
2 {
3 CONTEÚDO DA ESTRUTURA CONDICIONAL IF()
4 }
1 GET / HTTP/1.1
2 Host: 192.168.25.17
3 Connection: keep-alive
4 User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36
5 Upgrade-Insecure-Requests: 1
6 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,
image/apng,*/*;q=0.8
7 Accept-Encoding: gzip, deflate
8 Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
9
10
16 Como controlar o meu ARDUINO pela Internet?
1 char c = client.read();
1 if (c == '\n')
2 {
3 CONTEÚDO DA ESTRUTURA CONDICIONAL IF()
4 }
1 else if (c != '\r')
2 {
3 currentLineIsBlank = false;
4 }
Desenvolvendo a nossa
primeira página web
Neste capítulo, iremos iniciar o desenvolvimento de nossa
primeira página web, apresentando os procedimentos básicos
para a criação de qualquer aplicação deste tipo. Para cumprir
este objetivo, será necessário apenas que nós sejamos capazes
de elaborar as linhas de código referentes ao conteúdo que deve-
rá ser exibido pelo seu navegador.
4.3AestruturadocódigoHTMLdeumapáginaweb
Neste item, iremos demonstrar a estrutura básica do código
HTML referente a uma página web e em seguida vamos te ensi-
nar os procedimentos que devem ser realizados com o mesmo para
que a nossa placa Arduino seja capaz de enviar as informações
necessárias ao navegador para a construção da página que dese-
jamos.
Antes de prosseguirmos, vamos apresentar estrutura básica do
código HTML de uma página web. Não se preocupe, mais adiante
você irá aprender o significado de todas as linhas existentes neste
código.
1 <!DOCTYPE html>
2 <html>
3 <head>
4 </head>
5 <body>
6 </body>
7 </html>
1 client.println("<!DOCTYPE html>");
2 client.println ("<html>");
3 client.println ("<head>");
4 client.println ("</head>");
5 client.println ("<body>");
6 client.println ("</body>");
7 client.println ("</html>");
1 client.println("<!DOCTYPE html>");
1 client.println("<!DOCTYPE html>");
2 client.println("<html>");
3 CÓDIGO DA PÁGINA WEB
4 client.println("</html>");