<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arquivo para IoT - Bóson Treinamentos em Ciência e Tecnologia</title>
	<atom:link href="https://www.bosontreinamentos.com.br/category/iot/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/category/iot/</link>
	<description>Artigos e Tutoriais sobre Desenvolvimento de Software, Bancos de Dados SQL, Linux, Lógica de Programação, Inteligência Artificial, Hardware, Eletrônica, Arduino, Técnicas e Teorias de Estudo e Aprendizagem, Carreira em TI, Ciências Cognitivas, e muito mais!</description>
	<lastBuildDate>Fri, 14 Apr 2023 14:29:37 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>A classe EthernetServer &#8211; Configurando um servidor web com Arduino</title>
		<link>https://www.bosontreinamentos.com.br/eletronica/arduino/a-classe-ethernetserver-usando-o-arduino-como-um-servidor-de-rede/</link>
					<comments>https://www.bosontreinamentos.com.br/eletronica/arduino/a-classe-ethernetserver-usando-o-arduino-como-um-servidor-de-rede/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 03 Apr 2018 23:33:01 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Maker]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=11283</guid>

					<description><![CDATA[<p>Arduino como servidor de rede &#8211; a classe EthernetServer Projeto: Criando um Servidor Web com Arduino e Ethernet Shield Vamos colocar em prática a teoria mostrada na lição anterior sobre o shield ethernet no Arduino, criando um projeto simples com um Arduino Uno (outras placas também funcionam) e um Shield Ethernet: um Servidor Web, sistema que aceita solicitações de clientes e permite enviar dados como resposta. Por exemplo, podemos ter um sensor medindo a temperatura do ambiente, e consultar os valores medidos pela Internet ou rede local, usando um navegador que acessa o  Servidor Web configurado. Neste tutorial vamos mostrar como usar um shield Ethernet e a classe EthernetServer para configurar um servidor de rede (web) com Arduino. Lista de materiais Vamos precisar de : 1 Shield Ethernet Arduino (Uno, Mega, etc) Cabo de Rede Roteador da sua rede local PC com navegador para testes A seguir podemos ver o Shield Ethernet conectado a um Arduino Uno: A Classe EthernetServer A função desta classe é criar um objeto servidor que irá escutar (aguardar solicitações) requisições de conexão de clientes em uma porta específica, e então servir a esses clientes um serviço quando essa conexão é efetuada. O primeiro passo para configurar um servidor web com Arduino e shield [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/arduino/a-classe-ethernetserver-usando-o-arduino-como-um-servidor-de-rede/">A classe EthernetServer &#8211; Configurando um servidor web com Arduino</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Arduino como servidor de rede &#8211; a classe EthernetServer</h2>
<h3>Projeto: Criando um Servidor Web com Arduino e Ethernet Shield</h3>
<p>Vamos colocar em prática a teoria mostrada na lição anterior sobre o <a href="http://www.bosontreinamentos.com.br/eletronica/arduino/como-usar-um-shield-ethernet-no-arduino/" target="_blank" rel="noopener">shield ethernet no Arduino</a>, criando um projeto simples com um Arduino Uno (outras placas também funcionam) e um Shield Ethernet: um Servidor Web, sistema que aceita solicitações de clientes e permite enviar dados como resposta. Por exemplo, podemos ter um sensor medindo a temperatura do ambiente, e consultar os valores medidos pela Internet ou rede local, usando um navegador que acessa o  Servidor Web configurado.</p>
<p>Neste tutorial vamos mostrar como usar um shield Ethernet e a classe EthernetServer para configurar um servidor de rede (web) com Arduino.</p>
<h4>Lista de materiais</h4>
<p>Vamos precisar de :</p>
<ul>
<li>1 Shield Ethernet</li>
<li>Arduino (Uno, Mega, etc)</li>
<li>Cabo de Rede</li>
<li>Roteador da sua rede local</li>
<li>PC com navegador para testes</li>
</ul>
<p>A seguir podemos ver o Shield Ethernet conectado a um Arduino Uno:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11735" title="Shield Ethernet encaixado no Arduino Uno" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/Arduino-Shield-Ethernet-01.jpg" alt="" width="650" height="505" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/Arduino-Shield-Ethernet-01.jpg 800w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/Arduino-Shield-Ethernet-01-420x327.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/Arduino-Shield-Ethernet-01-768x597.jpg 768w" sizes="auto, (max-width: 650px) 100vw, 650px" /></p>
<h3>A Classe EthernetServer</h3>
<p>A função desta classe é criar um objeto servidor que irá escutar (aguardar solicitações) requisições de conexão de clientes em uma porta específica, e então servir a esses clientes um serviço quando essa conexão é efetuada.</p>
<p>O primeiro passo para configurar um servidor web com Arduino e shield Ethernet é criar um objeto servidor, usando a sintaxe a seguir:</p>
<pre><span style="color: #ff0000;"><strong>EthernetServer servidor = EthernetServer(porta);</strong></span></pre>
<p>Onde<em> porta</em> é o número da porta de comunicações na qual o servidor escutará. O padrão é a porta 80 para o serviço web.</p>
<p>Devemos inicializar a biblioteca Ethernet passando como parâmetro, no mínimo, o MAC address do shield Ethernet, como segue:</p>
<pre><span style="color: #ff0000;"><strong>Ethernet.begin(mac);</strong></span></pre>
<p>Também é possível passar outros parâmetros de rede, com o ip, máscara de subrede e gateway padrão, caso utilizamos IP fixo, por exemplo:</p>
<pre><span style="color: #ff0000;"><strong>Ethernet.begin(mac, ip, gateway, subrede);</strong></span></pre>
<p>O servidor será inicializado quando necessário invocando-se o método begin:</p>
<pre><span style="color: #ff0000;"><strong>servidor.begin();</strong></span></pre>
<h3>Classe EthernetCLient</h3>
<p>Para começar a ouvir, é necessário também criar um objeto cliente, o qual irá representar o cliente real com o qual o servidor irá se comunicar. Para isso, usamos a classe EthernetClient, como segue:</p>
<pre><span style="color: #ff0000;"><strong>EthernetClient cliente = servidor.available();</strong></span></pre>
<p>Esse objeto cliente retorna o valor falso (0) se não houver nenhum cliente disponível no momento.</p>
<p>Para fechar a conexão com um cliente, após a transmissão dos dados requisitados, por exemplo, usamos o método stop():</p>
<pre><span style="color: #ff0000;"><strong>cliente.stop();</strong></span></pre>
<p>Consulte a descrição completa das <a href="http://www.bosontreinamentos.com.br/eletronica/arduino/como-usar-um-shield-ethernet-no-arduino/" target="_blank" rel="noopener">funções de cliente e servidor no Arduino</a> para saber mais sobre como usar essas classes.</p>
<h3>Enviar e receber dados de um cliente</h3>
<p>Usamos as funções <strong>print(), println()</strong> e <strong>write()</strong> para enviar dados a um cliente. Para receber (ler) dados do cliente, usamos o método <strong>read()</strong>.</p>
<p>Código de exemplo (simplificados)</p>
<pre><span style="color: #ff0000;"><strong>EthernetServer servidor = EthernetServer(80);</strong></span>
<span style="color: #ff0000;"><strong>void setup() {</strong></span>
<span style="color: #ff0000;"><strong>  Ethernet.begin(mac, ip, gateway, subrede);</strong></span>
<span style="color: #ff0000;"><strong>  servidor.begin();</strong></span>
<span style="color: #ff0000;"><strong>}</strong></span>
<span style="color: #ff0000;"><strong>void loop() {</strong></span>
<span style="color: #ff0000;"><strong>  EthernetClient cliente = servidor.available();</strong></span>
<span style="color: #ff0000;"><strong>  if (cliente) {</strong></span>
<span style="color: #ff0000;"><strong>    Serial.print(cliente.read());  <span style="color: #339966;">// Ler dados do cliente e enviar para o monitor serial</span></strong></span>
<span style="color: #ff0000;"><strong>  }</strong></span>
<span style="color: #ff0000;"><strong>}</strong></span></pre>
<p>No exemplo, criamos um objeto <strong>EthernetServer</strong> de nome <em><strong>servido</strong></em>r, inicializando-o com o número da porta que será utilizada, no caso a porta <strong>80</strong> (padrão HTTP).</p>
<p>Na função de setup() inicializamos a biblioteca Ethernet, passando os dados de endereço mac, ip, gateway e máscara de subrede.</p>
<p>Na função loop() criamos o objeto <strong>EthernetClient</strong>, de nome <em><strong>cliente</strong></em>, que recebe o retorno do método <strong>servidor.available()</strong>, o qual verifica se o servidor está disponível. Caso esteja, será impressa no monitor serial um dado lido proveniente do cliente de rede.</p>
<p>O método <strong>available()</strong> retorna o valor 0 (zero) caso não haja um cliente disponível. Caso haja, o objeto cliente o representará.</p>
<p>Vejamos o código completo para a criação de um servidor web simples, que inclui a geração de um cabeçalho HTTP de resposta e o envio de uma página HTML ao cliente (navegador em um computador ou outro dispositivo)</p>
<h3>Código para o servidor Web</h3>
<p>Abaixo temos o código completo do sketch de nosso servidor web com Arduino:</p>
<pre><span style="color: #800000;"><strong>#include &lt;SPI.h&gt;</strong></span>
<span style="color: #800000;"><strong>#include &lt;Ethernet.h&gt;
</strong></span>
<span style="color: #800000;"><strong>byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };</strong></span>
<span style="color: #800000;"><strong>EthernetServer servidor(80);
</strong></span>
<span style="color: #800000;"><strong>void setup() {</strong></span>
<span style="color: #800000;"><strong> Serial.begin(9600);</strong></span>
<span style="color: #339966;"><strong>//Desativando o SD Card:</strong></span>
<span style="color: #800000;"><strong> pinMode(4, OUTPUT);</strong></span>
<span style="color: #800000;"><strong> digitalWrite(4, HIGH);</strong></span>
 
<span style="color: #800000;"><strong> Ethernet.begin(mac);</strong></span>
<span style="color: #800000;"><strong> servidor.begin();</strong></span>
 
<span style="color: #800000;"><strong> Serial.print("IP do servidor: ");</strong></span>
<span style="color: #800000;"><strong> Serial.println(Ethernet.localIP());
 Serial.print("Gateway: ");</strong></span>
<span style="color: #800000;"><strong> Serial.println(Ethernet.gatewayIP());</strong></span>
<span style="color: #800000;"><strong>}
</strong></span>
<span style="color: #800000;"><strong>void loop() {</strong></span>
<span style="color: #800000;"><strong> EthernetClient cliente = servidor.available();</strong></span>
<span style="color: #800000;"><strong> if (cliente) {</strong></span>
<span style="color: #800000;"><strong>   boolean linha_atual_branca = true;</strong></span>
<span style="color: #800000;"><strong>   while (cliente.connected()) {</strong></span>
<span style="color: #800000;"><strong>     if (cliente.available()) {</strong></span>
<span style="color: #800000;"><strong>       char c = cliente.read();</strong></span>
<span style="color: #800000;"><strong>       Serial.write(c);</strong></span>
 
<span style="color: #800000;"><strong>       if (c == '\n' &amp;&amp; linha_atual_branca) {
</strong></span>         <span style="color: #339966;"><strong>// Criando o cabeçalho HTTP:</strong></span>
<span style="color: #800000;"><strong>         cliente.println("HTTP/1.1 200 OK");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("Content-Type: text/html");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("Connection: close");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("Refresh: 5");</strong></span>
<span style="color: #800000;"><strong>         cliente.println();
</strong></span>         <span style="color: #339966;"><strong>// Código da página Web a ser exibida:</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;!DOCTYPE html&gt;");
         cliente.println("&lt;html lang='pt-br'&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;head&gt;");
         cliente.println("&lt;meta charset='UTF-8'&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;title&gt;Servidor Web com Arduino&lt;/title&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;/head&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;body&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;hr&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;p&gt;Bem-vindo à Bóson Treinamentos em Tecnologia!&lt;/p&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;hr&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;/body&gt;");</strong></span>
<span style="color: #800000;"><strong>         cliente.println("&lt;/html&gt;");</strong></span>
<span style="color: #800000;"><strong>         break;</strong></span>
<span style="color: #800000;"><strong>       }</strong></span>
<span style="color: #800000;"><strong>     if (c == '\n') {</strong></span>
<span style="color: #339966;"><strong>       // Iniciando uma nova linha</strong></span>
<span style="color: #800000;"><strong>       linha_atual_branca = true;</strong></span>
<span style="color: #800000;"><strong>     }
     else if (c != '\r') {</strong></span>
<span style="color: #339966;"><strong>       // Há um caractere na linha atual</strong></span>
<span style="color: #800000;"><strong>       linha_atual_branca = false;</strong></span>
<span style="color: #800000;"><strong>     }</strong></span>
<span style="color: #800000;"><strong>   }</strong></span>
<span style="color: #800000;"><strong> }</strong></span>
<span style="color: #339966;"><strong> // Tempo para o navegador receber os dados</strong></span>
<span style="color: #800000;"><strong> delay(1);</strong></span>
<span style="color: #339966;"><strong> // Fechar a conexão:</strong></span>
<span style="color: #800000;"><strong> cliente.stop();</strong></span>
<span style="color: #800000;"><strong> }
</strong></span><span style="color: #800000;"><strong>}</strong></span>    </pre>
<p>Após carregar o sketch no Arduino, abrimos o monitor serial para verificar se um endereço IP foi atribuído corretamente ao shield ethernet:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11727" title="Web Server no Arduino - Monitor Serial" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/arduino-web-server-monitor-serial.jpg" alt="Web Server no Arduino - Monitor Serial" width="549" height="146" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/arduino-web-server-monitor-serial.jpg 620w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/arduino-web-server-monitor-serial-420x112.jpg 420w" sizes="auto, (max-width: 549px) 100vw, 549px" /></p>
<p>Veja que foi atribuído o IP 192.168.1.109 ao shield ethernet. Vamos agora abrir um navegador no computador e acessar o endereço do nosso servidor web:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11728 size-full" title="Servidor Web com Shield Ethernet no Arduino" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/arduino-web-server-navegador-ethernet-shield.jpg" alt="Servidor Web com Shield Ethernet no Arduino" width="433" height="125" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/arduino-web-server-navegador-ethernet-shield.jpg 433w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/03/arduino-web-server-navegador-ethernet-shield-420x121.jpg 420w" sizes="auto, (max-width: 433px) 100vw, 433px" /></p>
<p>Note que também é possível usar um endereço IP fixo no servidor web, bastando para isso acrescentar a seguinte linha ao nosso código (logo após a declaração do endereço MAC), fornecendo o IP desejado, com seus números separados por vírgulas, como no exemplo:</p>
<pre><span style="color: #ff0000;"><strong>IPAddress ip(192, 168, 1, 10);</strong></span></pre>
<p>E então alterar a instrução:</p>
<pre><span style="color: #ff0000;"><strong>Ethernet.begin(mac);</strong></span></pre>
<p>para</p>
<pre><span style="color: #ff0000;"><strong>Ethernet.begin (mac, ip);</strong></span></pre>
<p>Desta forma, será usado o IP fornecido no código, em vez de um endereço IP obtido a partir de um servidor DHCP na rede &#8211; o qual pode mudar de tempos em tempos, dificultando a tarefa de acessar o Arduino pela rede.</p>
<p>No próximo tutorial vamos mostrar como é possível enviar comandos a um Arduino a partir de um navegador, por meio da configuração do servidor Web.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/arduino/a-classe-ethernetserver-usando-o-arduino-como-um-servidor-de-rede/">A classe EthernetServer &#8211; Configurando um servidor web com Arduino</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/eletronica/arduino/a-classe-ethernetserver-usando-o-arduino-como-um-servidor-de-rede/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Como usar um Shield Ethernet no Arduino</title>
		<link>https://www.bosontreinamentos.com.br/eletronica/arduino/como-usar-um-shield-ethernet-no-arduino/</link>
					<comments>https://www.bosontreinamentos.com.br/eletronica/arduino/como-usar-um-shield-ethernet-no-arduino/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 19 Jan 2018 20:54:49 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Maker]]></category>
		<category><![CDATA[Redes]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=11249</guid>

					<description><![CDATA[<p>Usando um Shield Ethernet no Arduino Uma das formas mais importantes de comunicação disponíveis com o Arduino é o padrão Ethernet. Trata-se de um protocolo de comunicação em redes que permite que dispositivos variados, como PCs, smartphones, roteadores, arduinos, etc., se comuniquem por meio do envio e recebimento de pacotes (frames / quadros, para ser mais exato), que são fluxos de dados organizados. Cada dispositivo em uma rede possui seu próprio endereço IP, que é um endereço numérico que permite identificar cada dispositivo e dessa forma, se comunicarem entre si usando diferentes protocolos (padrões de software). Shield Ethernet No Arduino é bastante simples realizar essa comunicação via padrão Ethernet, com o uso de um Shield Ethernet e sua biblioteca correspondente. A imagem a seguir mostra um shield ethernet típico: O Shield Ethernet na plataforma Arduino utiliza o chip WIZnet W5100 Ethernet, que fornece a pilha de rede TCP/IP, habilitando o dispositivo a se comunicar através de uma rede comum, tanto local quanto via Internet. Esse shield possui um conector para cabo de rede RJ45, e sua taxa de transferência máxima é de 100 Mbps, podendo operar também em 10 Mbps (10/100). Além disso, ele traz um slot para cartão microSD, que [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/arduino/como-usar-um-shield-ethernet-no-arduino/">Como usar um Shield Ethernet no Arduino</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Usando um Shield Ethernet no Arduino</h2>
<p>Uma das formas mais importantes de comunicação disponíveis com o Arduino é o padrão Ethernet. Trata-se de um protocolo de comunicação em redes que permite que dispositivos variados, como PCs, smartphones, roteadores, arduinos, etc., se comuniquem por meio do envio e recebimento de pacotes (frames / quadros, para ser mais exato), que são fluxos de dados organizados.</p>
<p>Cada dispositivo em uma rede possui seu próprio endereço IP, que é um endereço numérico que permite identificar cada dispositivo e dessa forma, se comunicarem entre si usando diferentes protocolos (padrões de software).</p>
<h3>Shield Ethernet</h3>
<p>No Arduino é bastante simples realizar essa comunicação via padrão Ethernet, com o uso de um Shield Ethernet e sua biblioteca correspondente. A imagem a seguir mostra um shield ethernet típico:</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-11250" title="Shield Ethernet no Arduino" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/01/Arduino-Ethernet-Shield.jpg" alt="Shield Ethernet no Arduino" width="300" height="213" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/01/Arduino-Ethernet-Shield.jpg 450w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/01/Arduino-Ethernet-Shield-420x299.jpg 420w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
<p>O Shield Ethernet na plataforma Arduino utiliza o chip WIZnet W5100 Ethernet, que fornece a pilha de rede TCP/IP, habilitando o dispositivo a se comunicar através de uma rede comum, tanto local quanto via Internet.</p>
<p>Esse shield possui um conector para cabo de rede RJ45, e sua taxa de transferência máxima é de 100 Mbps, podendo operar também em 10 Mbps (10/100).</p>
<p>Além disso, ele traz um slot para cartão microSD, que permite ler e armazenar dados no próprio shield (obviamente inserindo um cartão SD e executando a biblioteca SD).</p>
<p>Um shield ethernet realiza, basicamente, o papel que uma placa de rede executa em um computador comum. Antes de mostrarmos como funciona e como configurar esse shield, vamos discutir alguns termos relacionados a redes de computadores, que serão importantes no entendimento do processo de comunicação do Arduino.</p>
<h3>Conceitos básicos de Redes</h3>
<ul>
<li>Ethernet: Tecnologia de rede que permite a dispositivos enviarem dados entre si por meio de uma rede com fios, por meio de um endereço físico (identificação de hardware).</li>
<li><a href="http://www.bosontreinamentos.com.br/redes-computadores/o-que-e-um-endereco-mac-mac-address/" target="_blank" rel="noopener noreferrer">Endereço MAC</a>: Media Access Control / Controle de Acesso ao Meio, trata-se de um identificador (endereço) único que é atribuído aos dispositivos de rede, de modo que cada dispositivo seja identificado de forma única e possam assim se comunicar com outros dispositivos. Cada shield Ethernet para Arduino possui seu próprio endereço MAC, que nunca se repete.</li>
<li>Protocolo de Rede: Um protocolo é uma linguagem de comunicação padronizada que permite que dispositivos troquem informações entre si (&#8220;conversem&#8221;). Para que essa comunicação seja possível, os dispositivos devem usar o mesmo protocolo, como se fosse a mesma &#8220;linguagem&#8221;. Um protocolo muito comum é o protocolo HTTP, que permite configurar um servidor Web (que podemos fazer com Arduino!).</li>
<li>TCP/IP: Trata-se de uma pilha ou suíte de protocolos específica, ou seja, um grupo de protocolos que trabalham em conjunto para fornecer conectividade de rede a dispositivos. TCP significa &#8220;Protocolo de Controle de Transmissão&#8221;, e IP significa &#8220;Protocolo de Internet&#8221;, e esses dois são os protocolos mais importantes da pilha, que na verdade contém mais de 50 protocolos diferentes, cada um com uma função bem definida.</li>
<li>Endereço IP: O IP é um endereço lógico, ou seja, não associado fisicamente a um dispositivo, mas que permite que os dispositivos de identifiquem em uma rede como a Internet.</li>
<li>Gateway: Um gateway, também chamado de Gateway Padrão, é basicamente o endereço IP da porta de um roteador conectada à rede interna, a qual permite o roteamento (encaminhamento) dos pacotes para uma outra rede, geralmente a Internet.</li>
</ul>
<div id="attachment_11316" style="width: 760px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-11316" class="wp-image-11316" title="Shield Ethernet encaixado no Arduino" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2018/01/shield-ethernet-encaixado-arduino-Uno.jpg" alt="Shield Ethernet encaixado no Arduino" width="750" height="575" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2018/01/shield-ethernet-encaixado-arduino-Uno.jpg 900w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/01/shield-ethernet-encaixado-arduino-Uno-420x322.jpg 420w, https://www.bosontreinamentos.com.br/wp-content/uploads/2018/01/shield-ethernet-encaixado-arduino-Uno-768x589.jpg 768w" sizes="auto, (max-width: 750px) 100vw, 750px" /><p id="caption-attachment-11316" class="wp-caption-text">Shield Ethernet encaixado no Arduino</p></div>
<h3>A Biblioteca Ethernet</h3>
<p>A biblioteca Ethernet, necessária para que seja possível utilizar o shield correspondente, é distribuída juntamente com o IDE do Arduino e permite a comunicação do Arduino com uma rede.</p>
<p>A tabela a seguir fornece uma descrição simplificada de algumas das funções mais comuns da biblioteca Ethernet, pertencentes às classes <strong>Ethernet</strong>, <strong>EthernetClient, </strong><strong>EthernetServer</strong> e <strong>EthernetUDP</strong>:</p>
<table style="height: 2033px; width: 600px;">
<tbody>
<tr style="height: 24px;">
<td style="width: 212px; text-align: center; height: 24px;"><strong>Função</strong></td>
<td style="width: 461px; text-align: center; height: 24px;"><strong>Descrição da Função</strong></td>
</tr>
<tr style="height: 128px;">
<td style="width: 212px; height: 128px;">
<pre>Ethernet.begin(mac)
Ethernet.begin(mac, ip)
Ethernet.begin(mac, ip, gateway)
Ethernet.begin(mac, ip, gateway,subnet)</pre>
</td>
<td style="width: 461px; height: 128px;">Função para inicialização da biblioteca, usando MAC, e opcionalmente IP e/ou gateway e máscara de sub-rede.</td>
</tr>
<tr style="height: 56px;">
<td style="width: 212px; height: 56px;">
<pre>Server(port)</pre>
</td>
<td style="width: 461px; height: 56px;">Permite criar um servidor que irá escutar em uma porta de comunicações específica.</td>
</tr>
<tr style="height: 56px;">
<td style="width: 212px; height: 56px;">
<pre>Server.begin()</pre>
</td>
<td style="width: 461px; height: 56px;">Função para inicializar o servidor, de modo a escutar as mensagens que chegam</td>
</tr>
<tr style="height: 56px;">
<td style="width: 212px; height: 56px;">
<pre>Server.write()</pre>
</td>
<td style="width: 461px; height: 56px;">Permite enviar dados para os dispositivos clientes conectados</td>
</tr>
<tr style="height: 56px;">
<td style="width: 212px; height: 56px;">
<pre>Server.available()</pre>
</td>
<td style="width: 461px; height: 56px;">Retorna um cliente, caso ele possua dados prontos para envio</td>
</tr>
<tr style="height: 120px;">
<td style="width: 212px; height: 120px;">
<pre>Server.print()</pre>
</td>
<td style="width: 461px; height: 120px;">Imprime dados para todos os clientes disponíveis. Esses dados são impressos na forma de uma sequência de dígitos ASCII. Por exemplo, o número 753 é retornado como os caracteres &#8220;7&#8221;, &#8220;5&#8221; e &#8220;3&#8221;.</td>
</tr>
<tr style="height: 120px;">
<td style="width: 212px; height: 120px;">
<pre>Server.println()</pre>
</td>
<td style="width: 461px; height: 120px;">Idem à função Server.print(), porém mudando de linha no final da mensagem</td>
</tr>
<tr style="height: 72px;">
<td style="width: 212px; height: 72px;">
<pre>Client(ip. porta)</pre>
</td>
<td style="width: 461px; height: 72px;">Permite criar um cliente que poderá se conectar ao endereço IP e à porta passadas à função.</td>
</tr>
<tr style="height: 24.4531px;">
<td style="width: 212px; height: 24.4531px;">
<pre>Client.connect()</pre>
</td>
<td style="width: 461px; height: 24.4531px;">Inicia a conexão com o cliente</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>Client.connected()</pre>
</td>
<td style="width: 461px; height: 48px;">Verifica se o cliente está ou não conectado ao servidor</td>
</tr>
<tr style="height: 24px;">
<td style="width: 212px; height: 24px;">
<pre>Client.write()</pre>
</td>
<td style="width: 461px; height: 24px;">Permite gravar dados no servidor</td>
</tr>
<tr style="height: 96px;">
<td style="width: 212px; height: 96px;">
<pre>Client.print()</pre>
</td>
<td style="width: 461px; height: 96px;">Imprime dados para o servidor. Esses dados são impressos na forma de uma sequência de dígitos ASCII. Por exemplo, o número 753 é retornado como os caracteres &#8220;7&#8221;, &#8220;5&#8221; e &#8220;3&#8221;.</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>Client.println()</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Idem Client.print(), porém mudando de linha no final da mensagem</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>Client.available()</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Retorna o número de bytes que estão disponíveis para serem lidos, enviados a partir do servidor.</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>Client.read()</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Lê o próximo byte recebido do servidor</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>Client.flush()</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Limpa todos os bytes escritos para o cliente, porém ainda não lidos</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>Client.stop()</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Desconecta o cliente do servidor.</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>EthernetUDP.begin(port)</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Inicializa o objeto UDP, especificando a porta a ser utilizada</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>EthernetUDP.read(packetBuffer,
MaxSize)</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Lê os pacotes UDP de um buffer</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>EthernetUDP.write(mensagem)</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Envia uma mensagem UDP para a conexão remota</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>EthernetUDP.beginPacket(ip. port)</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Executado antes de enviar uma mensagem, para especificar o endereço IP e a porta de destino</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>EthernetUDP.endPacket()</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Função invocada após o envio da mensagem, para terminar a transmissão</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>EthernetUDP.parsePacket()</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Verifica se existe mensagem para ser lida</p>
</td>
</tr>
<tr style="height: 48px;">
<td style="width: 212px; height: 48px;">
<pre>Ethernet.available()</pre>
</td>
<td style="width: 461px; height: 48px;">
<p>Retorna a quantidade de dados que foi recebida e também a que está disponível para ser lida na sequência.</p>
</td>
</tr>
</tbody>
</table>
<p>Nas próximas partes desse tutorial, vamos mostrar como utilizar o shield Ethernet e as bibliotecas listadas acima para criar diversas aplicações de rede com o Arduino, como por exemplo um servidor Web e um cliente de rede local.</p>
<h3>Próximo: Projeto &#8211; <a href="http://www.bosontreinamentos.com.br/eletronica/arduino/a-classe-ethernetserver-usando-o-arduino-como-um-servidor-de-rede/">Criando um Servidor Web com Arduino e um Shield Ethernet</a></h3>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/arduino/como-usar-um-shield-ethernet-no-arduino/">Como usar um Shield Ethernet no Arduino</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/eletronica/arduino/como-usar-um-shield-ethernet-no-arduino/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi &#8211; Apresentação &#8211; 01</title>
		<link>https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/raspberry-pi-apresentacao-01/</link>
					<comments>https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/raspberry-pi-apresentacao-01/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Fri, 24 Apr 2015 23:36:31 +0000</pubDate>
				<category><![CDATA[Eletrônica Geral]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Eletrônica]]></category>
		<category><![CDATA[Maker]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=2058</guid>

					<description><![CDATA[<p>Raspberry Pi &#8211; Apresentação &#8211; 01 Acesse o site oficial do projeto Raspberry Pi para obter mais informações sobre a placa e suas versões. &#160;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/raspberry-pi-apresentacao-01/">Raspberry Pi &#8211; Apresentação &#8211; 01</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Raspberry Pi &#8211; Apresentação &#8211; 01</h2>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/7h_ELo7CcIk" width="640" height="480" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Acesse o <a href="https://www.raspberrypi.org/" target="_blank" rel="noopener">site oficial do projeto Raspberry Pi</a> para obter mais informações sobre a placa e suas versões.</p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/raspberry-pi-apresentacao-01/">Raspberry Pi &#8211; Apresentação &#8211; 01</a> apareceu primeiro em <a href="https://www.bosontreinamentos.com.br">Bóson Treinamentos em Ciência e Tecnologia</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/raspberry-pi-apresentacao-01/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
