<?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/tag/iot/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bosontreinamentos.com.br/tag/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:28:31 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.6</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>Arduino &#8211; Conhecendo as funções pinMode, digitalRead e digitalWrite</title>
		<link>https://www.bosontreinamentos.com.br/eletronica/arduino/arduino-conhecendo-as-funcoes-pinmode-digitalread-e-digitalwrite/</link>
					<comments>https://www.bosontreinamentos.com.br/eletronica/arduino/arduino-conhecendo-as-funcoes-pinmode-digitalread-e-digitalwrite/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 27 Oct 2015 11:49:01 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Maker]]></category>
		<category><![CDATA[Programação]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=5606</guid>

					<description><![CDATA[<p>Funções pinMode, digitalRead e digitalWrite no Arduino Nesta lição vamos conhecer três funções primordiais usadas no desenvolvimento de software para o Arduino: pinMode(), digitalWrite() e digitalRead(). Função pinMode() Esta função permite configurar um pino específico para se comportar como um pino de entrada ou de saída.Por padrão, os pinos do Arduino tem a função de entrada, de modo que não é necessário declará-los neste caso. Já os pinos de saída devem ser configurados por meio dessa função, o que os leva a um estado de baixa impedância, de modo que eles podem fornecer corrente para outros circuitos. Os pinos do microcontolador Atmega podem fornecer até 40 mA de corrente para outros componentes ou circuitos. Sintaxe da função: pinMode(pino, modo) Parâmetros: pino é o número do pino que queremos configurar. modo pode ser: INPUT (entrada), OUTPUT (saída), ou ainda INPUT_PULLUP. O parâmetro INPUT_PULLUP permite habilitar os resistores de pullup, os quais são desabilitados quando é usado o modo INPUT. A função pinMode() não retorna nenhum valor ao programa. Exemplo: Queremos ajustar o pino 7, conectado a um sensor, como entrada, e o pino 8, conectado a um LED, como saída: int sensor = 7 int LED = 8 void setup() { [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/arduino/arduino-conhecendo-as-funcoes-pinmode-digitalread-e-digitalwrite/">Arduino &#8211; Conhecendo as funções pinMode, digitalRead e digitalWrite</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>Funções pinMode, digitalRead e digitalWrite no Arduino</h2>
<p>Nesta lição vamos conhecer três funções primordiais usadas no desenvolvimento de software para o Arduino: pinMode(), digitalWrite() e digitalRead().</p>
<h3>Função pinMode()</h3>
<p>Esta função permite configurar um pino específico para se comportar como um pino de entrada ou de saída.Por padrão, os pinos do Arduino tem a função de entrada, de modo que não é necessário declará-los neste caso. Já os pinos de saída devem ser configurados por meio dessa função, o que os leva a um estado de baixa impedância, de modo que eles podem fornecer corrente para outros circuitos. Os pinos do microcontolador Atmega podem fornecer até 40 mA de corrente para outros componentes ou circuitos.</p>
<p><strong>Sintaxe da função:</strong></p>
<pre><strong><span style="color: #800080;">pinMode(pino, modo)</span></strong></pre>
<p><strong>Parâmetros:</strong></p>
<ul>
<li><strong>pino</strong> é o número do pino que queremos configurar.</li>
<li><strong>modo</strong> pode ser: <strong>INPUT</strong> (entrada), <strong>OUTPUT</strong> (saída), ou ainda <strong>INPUT_PULLUP</strong>.</li>
</ul>
<p>O parâmetro INPUT_PULLUP permite habilitar os resistores de pullup, os quais são desabilitados quando é usado o modo INPUT. A função pinMode() não retorna nenhum valor ao programa.</p>
<p><strong>Exemplo</strong>: Queremos ajustar o pino 7, conectado a um sensor, como entrada, e o pino 8, conectado a um LED, como saída:</p>
<table style="height: 32px; border-color: #00ff00;" border="rgb(0, 255, 0)" width="540">
<tbody>
<tr>
<td style="border-color: #00ff00;">
<pre><strong>int sensor = 7</strong>
<strong>int LED = 8</strong>
<strong>void setup() </strong><strong>{</strong>
<strong>  pinMode(sensor, INPUT);</strong>
<strong>  pinMode(LED, OUTPUT);</strong>
<strong>}</strong></pre>
</td>
</tr>
</tbody>
</table>
<p>É muito comum usarmos a função pinMode() dentro da seção setup(), para efetuar as configurações de pinos iniciais do programa.</p>
<h3>Função digitalWrite()</h3>
<p>Esta função escreve um valor HIGH (alto) ou LOW (baixo) em um pino digital que tenha sido configurado como OUTPUT (saída). O valor HIGH equivale a uma tensao de 5V (ou 3,3V em algumas placas), e o valor LOW, a uma tensao elétrica de 0V.<br />
Caso o pino tenha sido configurado como INPUT (entrada), a função digitalWrite() irá habilitar ou desabilitar o pullup interno do pino de entrada. Esta técnica não é recomendada, sendo idela usar a função pinMOde para habilitar o resistor de pullup.<br />
Os pinos analógicos também podem ser utilziados como pinos digitais, sendo referenciados com pinos A0, A1, etc.</p>
<p><strong>Sintaxe:</strong></p>
<pre><span style="color: #800080;"><strong>digitalWrite(pino, valor)</strong></span></pre>
<p><strong>Parâmetros:</strong></p>
<ul>
<li><strong>pino</strong>: é o número do pino considerado</li>
<li><strong>valor</strong>: HIGH ou LOW</li>
</ul>
<p>Exemplo: Usando a listagem do exemplo anterior, vamos agora escrever um nível alto no pino onde o LED será conectado (pino 8), esperar meio segundo (500 ms), e então apagr o LED, escrevendo o nível LOW no pino. Ou seja, vamos acender e apagar o LED a cada meio segundo:</p>
<table style="height: 32px; border-color: #00ff00;" border="rgb(0, 255, 0)" width="540">
<tbody>
<tr>
<td style="border-color: #00ff00;">
<pre><strong>int sensor = 7
</strong><strong>int LED = 8</strong></pre>
<div>
<pre><strong>void setup() </strong><strong>{</strong>
<strong>  pinMode(sensor, INPUT);</strong>
<strong>  pinMode(LED, OUTPUT);</strong>
<strong>}</strong>
<strong>
void loop() </strong><strong>{</strong>
<strong>  digitalWrite(LED, HIGH);</strong>
<strong>  delay(500);</strong>
<strong>  digitalWrite(LED, LOW);</strong>
<strong>  delay(500);</strong>
<strong>}</strong></pre>
</div>
</td>
</tr>
</tbody>
</table>
<h3>Função digitalRead()</h3>
<p>Esta função permite ler o valor a partir de um pino digital especificado, sendo os valores possíveis HIGH ou LOW.</p>
<p><strong>Sintaxe:</strong></p>
<pre><span style="color: #800080;"><strong>digitalRead(pino)</strong></span></pre>
<p><strong>Parâmetro:</strong></p>
<ul>
<li><strong>pino</strong> é o número do pino cujo valor precisamos ler.</li>
</ul>
<p>Esta função retorna um valor para o programa, alto (HIGH) ou baixo (LOW).</p>
<p>Exemplo: Usando o primeiro exemplo, vamos ler o valor que o sensor conectado ao pino 7 está enviando ao Arduino:</p>
<table style="height: 201px; border-color: #00ff00;" width="562">
<tbody>
<tr>
<td style="border-color: #00ff00;">
<pre><strong>int sensor = 7</strong>
<strong>int LED = 8</strong>
<strong>int valorSensor = 0;</strong>
<strong>void setup() </strong><strong>{</strong>
<strong>  pinMode(sensor, INPUT);</strong>
<strong>  pinMode(LED, OUTPUT);</strong>
<strong>}</strong>
<strong>void loop() </strong><strong>{</strong>
<strong>  valorSensor = digitalRead(sensor);</strong>
<strong>}</strong></pre>
</td>
</tr>
</tbody>
</table>
<p>Note que, como a função digitalRead() retorna um valor ao programa, precisamos armazenar esse valor em algum lugar, e para isso declaramos uma nova variável, a variável valorSensor, inicializada com o valor 0 (zero). Após a chamada à função, a variável terá o valor HIGH ou LOW, conforme o sinal enviado pelo sensor, e poderemos usar esse valor para decidir o que fazer posteriormente no programa. O que aprenderemos nas próximas lições!</p>
<p><a href="https://www.arduino.cc/en/Reference/HomePage" target="_blank" rel="noopener noreferrer">Referência da Linguagem do Arduino</a></p>
<p>&nbsp;</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/arduino/arduino-conhecendo-as-funcoes-pinmode-digitalread-e-digitalwrite/">Arduino &#8211; Conhecendo as funções pinMode, digitalRead e digitalWrite</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/arduino-conhecendo-as-funcoes-pinmode-digitalread-e-digitalwrite/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>O que é o Intel Quark</title>
		<link>https://www.bosontreinamentos.com.br/hardware/o-que-e-o-intel-quark/</link>
					<comments>https://www.bosontreinamentos.com.br/hardware/o-que-e-o-intel-quark/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 20 Oct 2015 00:31:00 +0000</pubDate>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Eletrônica]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[IoT]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=5464</guid>

					<description><![CDATA[<p>Intel® Quark™ O Intel Quark é uma família de SoCs (&#8220;System-on-chips&#8221;) de arquitetura de 32 bits da Intel, que são projetados para terem um baixíssimo consumo energético e também um tamanho físico reduzido, sendo chips que visam a mercados como IoT (Internet das Coisas), sistemas embarcados (embedded systems) e dispositivos vestíveis (wearables), onde o consumo de energia e form factor tem muita importância. São baseados no chip Pentium original. Um SoC é um circuito integrado que integra todos os componentes de um computador (ou outro sistema eletrônico) em um único chip. São chips muito parecidos com microcontroladores, porém, possuem processadores mais poderosos, que podem inclusive executar softwares complexos como sistemas operacionais (Windows, Linux, etc). Os chips dessa linha, de codenome &#8220;Clanton&#8221;, possuem algumas características peculiares, sendo as mais marcantes: Ausência de suporte a conjuntos de instruções SIMD (MMX, SSE, etc) Clock de 400 MHz (nos modelos atuais, 2015) Núcleos (Cores): 01 Cache L2 16 KB Controladora de memória RAM DDR3-800, com suporte a ECC RAM: de 128 MB a 2 GB Potência dissipada total: 2,2W Socket: FC-BGA11E Dimensões: 15mm x 15mm Interfaces Ethernet: 02 Suorte a barramento PCI Express USB 2.0, SD/SDIO/eMMC SPI, UART e I2C/GPIO Temperatura de operação: de [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/hardware/o-que-e-o-intel-quark/">O que é o Intel Quark</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>Intel<sup>®</sup> Quark<img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>
<p>O Intel Quark é uma família de SoCs (&#8220;System-on-chips&#8221;) de arquitetura de 32 bits da Intel, que são projetados para terem um baixíssimo consumo energético e também um tamanho físico reduzido, sendo chips que visam a mercados como IoT (Internet das Coisas), sistemas embarcados (embedded systems) e dispositivos vestíveis (wearables), onde o consumo de energia e form factor tem muita importância. São baseados no chip Pentium original.</p>
<p>Um SoC é um circuito integrado que integra todos os componentes de um computador (ou outro sistema eletrônico) em um único chip. São chips muito parecidos com microcontroladores, porém, possuem processadores mais poderosos, que podem inclusive executar softwares complexos como sistemas operacionais (Windows, Linux, etc).</p>
<p>Os chips dessa linha, de codenome &#8220;Clanton&#8221;, possuem algumas características peculiares, sendo as mais marcantes:</p>
<ul>
<li>Ausência de suporte a conjuntos de instruções SIMD (MMX, SSE, etc)</li>
<li>Clock de 400 MHz (nos modelos atuais, 2015)</li>
<li>Núcleos (Cores): 01</li>
<li>Cache L2 16 KB</li>
<li>Controladora de memória RAM DDR3-800, com suporte a ECC</li>
<li>RAM: de 128 MB a 2 GB</li>
<li>Potência dissipada total: 2,2W</li>
<li>Socket: FC-BGA11E</li>
<li>Dimensões: 15mm x 15mm</li>
<li>Interfaces Ethernet: 02</li>
<li>Suorte a barramento PCI Express</li>
<li>USB 2.0, SD/SDIO/eMMC</li>
<li>SPI, UART e I2C/GPIO</li>
<li>Temperatura de operação: de -40ºC a +85ºC</li>
<li>Custo: Entre 9 e 15 dólares</li>
</ul>
<p>Um Datasheet com as <a href="http://www.intel.com/content/www/us/en/embedded/products/quark/quark-x1000-datasheet.html" target="_blank" rel="noopener noreferrer">especificações completas do Intel Quark pode ser obtido aqui </a>(PDF, 934 páginas). O diagrama de blocos do chip pode ser visto na figura abaixo:</p>
<div id="attachment_5466" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5466" class="wp-image-5466" title="Diagrama de Blocos do chip SoC Intel Quark" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/intel-quark-SoC-diagrama-blocos.png" alt="Diagrama de Blocos do chip SoC Intel Quark" width="500" height="463" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/intel-quark-SoC-diagrama-blocos.png 534w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/intel-quark-SoC-diagrama-blocos-420x389.png 420w" sizes="auto, (max-width: 500px) 100vw, 500px" /><p id="caption-attachment-5466" class="wp-caption-text">Diagrama de Blocos do SoC Intel Quark</p></div>
<p>Os núcleos dos chips Quark são menores do que os de um Intel Atom típico, com cerca de 1/5 do tamanho desses cores, consumindo até um décimo da potência consumida por eles. O primeiro chip da família, o X1000, foi apresentado durante o Intel Developer Forum de 2013, em San Francisco, Califórnia.</p>
<h3>Aplicações</h3>
<p>As principais aplicações dos SoCs Quark estão nas áreas automotiva, industrial e de energia. Os chips são componentes chave das sistemas de desenvolvimento Intel Galileo, Intel Edison e Intel Curie, e da futura placa <a href="http://www.bosontreinamentos.com.br/noticias/intel-e-arduino-apresentam-a-placa-arduino-101-baseada-no-chip-intel-quark/" target="_blank" rel="noopener noreferrer">Arduino 101</a> (Genuino 101 fora dos EUA).</p>
<div id="attachment_5468" style="width: 510px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5468" class="wp-image-5468" title="Placa de desenvolvimento Intel Galileo com SoC Quark" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/intel-galileo.png" alt="Placa de desenvolvimento Intel Galileo com SoC Quark" width="500" height="345" srcset="https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/intel-galileo.png 700w, https://www.bosontreinamentos.com.br/wp-content/uploads/2015/10/intel-galileo-420x290.png 420w" sizes="auto, (max-width: 500px) 100vw, 500px" /><p id="caption-attachment-5468" class="wp-caption-text">Placa de desenvolvimento Intel Galileo com SoC Quark</p></div>
<p>O post <a href="https://www.bosontreinamentos.com.br/hardware/o-que-e-o-intel-quark/">O que é o Intel Quark</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/hardware/o-que-e-o-intel-quark/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>78% das empresas usam Software Open Source</title>
		<link>https://www.bosontreinamentos.com.br/analise-de-sistemas/78-das-empresas-usam-software-open-source/</link>
					<comments>https://www.bosontreinamentos.com.br/analise-de-sistemas/78-das-empresas-usam-software-open-source/?noamp=mobile#comments</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Wed, 13 May 2015 12:54:17 +0000</pubDate>
				<category><![CDATA[Análise de Sistemas]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=2367</guid>

					<description><![CDATA[<p>78% das empresas usam Software Open Source A Black Duck Software, um provedor de soluções de software open source (OSS) e a  North Bridge, uma empresa de capital de risco, anunciaram os resultados da nona Pesquisa sobre o Futuro do Código Aberto. Eles descobriram que as empresas estão adotando software open source em massa, mas não estão gerenciando esse software de forma satisfatória. Lou Shipley, CEO da Black Duck, disse em uma declaração &#8220;Nos resultados desse ano, se tornou mais evidente que as empresas precisam de gerenciamento e governança do código aberto para alcançar seu uso completo. Isso é crítico para reduzir riscos legais, operacionais e de segurança em potencial, ao mesmo tempo em que permite às companhias colher todos os benefícios que o software de código aberto fornece&#8221;. The Future of Open Source 2015 Algumas das informações obtidas com essa pesquisa podem ser sumarizadas como segue: 78% dos respondentes disseram que suas empresas executam parte ou todas as suas operações em software open source e 66% disseram que suas empresas criam softwares para seus clientes baseados em código aberto. Esta estatística mais que dobrou desde 2010, quando 42% dos respondentes à pesquisa disseram que usam open source para tocar [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/analise-de-sistemas/78-das-empresas-usam-software-open-source/">78% das empresas usam Software Open Source</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>78% das empresas usam Software Open Source</h2>
<p>A <a href="http://www.blackducksoftware.com/" target="_blank" rel="noopener">Black Duck Software</a>, um provedor de soluções de software open source (OSS) e a  <a href="http://www.northbridge.com/" target="_blank" rel="noopener">North Bridge</a>, uma empresa de capital de risco, anunciaram os resultados da nona <a href="https://www.blackducksoftware.com/future-of-open-source" target="_blank" rel="noopener">Pesquisa sobre o Futuro do Código Aberto</a>. Eles descobriram que as empresas estão adotando software open source em massa, mas não estão gerenciando esse software de forma satisfatória.</p>
<p>Lou Shipley, CEO da Black Duck, disse em uma declaração &#8220;Nos resultados desse ano, se tornou mais evidente que as empresas precisam de gerenciamento e governança do código aberto para alcançar seu uso completo. Isso é crítico para reduzir riscos legais, operacionais e de segurança em potencial, ao mesmo tempo em que permite às companhias colher todos os benefícios que o software de código aberto fornece&#8221;.</p>
<div id="attachment_2368" style="width: 377px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2368" class="size-full wp-image-2368" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/05/open-source-codigo-aberto.png" alt="open-source-futuro" width="367" height="249" /><p id="caption-attachment-2368" class="wp-caption-text">The Future of Open Source 2015</p></div>
<p>Algumas das informações obtidas com essa pesquisa podem ser sumarizadas como segue:</p>
<ul>
<li>78% dos respondentes disseram que suas empresas executam parte ou todas as suas operações em software open source e 66% disseram que suas empresas criam softwares para seus clientes baseados em código aberto. Esta estatística mais que dobrou desde 2010, quando 42% dos respondentes à pesquisa disseram que usam open source para tocar seu negócio ou em seus ambientes de TI.</li>
<li>93% dissearm que o uso de open source por suas empresas aumentou ou permaneceu no mesmo patamar no ano passado</li>
<li>64% das empresas atualmente participam em projetos open source &#8211; em contraste com 50% em 2014. Para os próximos 2 ou 3 anos, espera-se que 88% das empresas aumentem suas contribuições para projetos de código aberto.</li>
<li>Sotfwares open source tem se tornado a abordagem padrão para o software com ais de 66% dos respondentes dizendo que levam em consideração softwares open source antes de tentar outras opções.</li>
</ul>
<p>Além disso, a pesquisa também revelou que:</p>
<ul>
<li>55% acreditam que software de código aberto são mais seguros quando comparados com soluções de software proprietário.</li>
<li>58% pensam que o open-source são mais dimensionáveis e 43% disseram que o open source fornece uma facilidade de implantação superior à de softwares proprietários.</li>
<li>Ao avaliar tecnologias de segurança para uso interno, 45% disseram que as opções open source são as primeiras a serem consideradas.</li>
</ul>
<p>Olhando para o futuro, aqueles que responderam à pesquisa vêem Cloud computing (39%), big data (35%), sistemas operacionais (33%), e a Internet das Coisas &#8211; IoT (31%) sendo impactadas por software de de código aberto nos próximos 2 ou 3 anos.</p>
<p>Estes números parecem baixos apesar disso. Por exemplo, à exceção de produtos de nuvem da Microsoft e VMware, praticamente todo o resto em termos de cloud é software opensource. Na verdade, a Microsoft também aderiu ao software open source em usa nuvem Azure com o Docker e a VMware tem sua própria nuvem OpenStack. Provavelmente a nuvem rodará OSS.</p>
<p>Porém, antes de ficarmos muito animados proclamando que o software open source “venceu”  e o software proprietário irá morrer, devemos levar em conta que as empresas ainda não possuem políticas formais de gerenciamento de open source. A pesquisa também descobriu que:</p>
<ul>
<li>Mais de 55% dos respondentes disseram que suas empresas não possuem procedimentos ou políticas formais para o uso de software open source. Além disso, apenas 27% possuem uma política formal de contribuições dos funcionários a projetos OSS.</li>
<li>Apenas 16% possuem um processo de aprovação de código automatizado e menos de 42% mantém um inventório de componentes open source.</li>
<li>Mais de 50% não estão satisfeitos com sua habilidade em compreender as vulnerabilidades de segurança conhecidas em componentes open-source, e apenas 17% planejam monitorar código open source para descobrir vulnerabilidades de segurança.</li>
</ul>
<div id="attachment_2369" style="width: 301px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2369" class="size-full wp-image-2369" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/05/open-source-initiative.png" alt="Open Source Initiative" width="291" height="245" /><p id="caption-attachment-2369" class="wp-caption-text">Open Source Initiative</p></div>
<p>Tudo isso é preocupante, mas há um problema ainda maior: as empresas muitas vezes vêem o software open source como algo “mágico” que é totalmente livre de problemas de segurança. É esse tipo de crença cega que levou, por exemplo, à falha de segurança <a href="http://www.heartbleed.com" target="_blank" rel="noopener">Heartbleed</a>.</p>
<p>De qualquer forma, é excelente que o software de código aberto esteja se tornando um favorito nas empresas. As empresas parecem finalmente estarem vendo o valor do modelo de desenvolvimento de software open source. Mas isso deve ser feito com  cuidado e planejamento para evitar problemas e trazer soluções de forma satisfatória.</p>
<p>Para saber mais sobre open source, visite o site da <a href="http://opensource.org/" target="_blank" rel="noopener">Open Source Initiative</a>.</p>
<p>Fonte:  <a href="http://www.zdnet.com/article/its-an-open-source-world-78-percent-of-companies-run-open-source-software/" target="_blank" rel="noopener">ZDNet</a></p>
<p>O post <a href="https://www.bosontreinamentos.com.br/analise-de-sistemas/78-das-empresas-usam-software-open-source/">78% das empresas usam Software Open Source</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/analise-de-sistemas/78-das-empresas-usam-software-open-source/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Samsung lança chips Artik para Internet das Coisas</title>
		<link>https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/samsung-lanca-chips-artik-para-internet-das-coisas/</link>
					<comments>https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/samsung-lanca-chips-artik-para-internet-das-coisas/?noamp=mobile#respond</comments>
		
		<dc:creator><![CDATA[Fábio dos Reis]]></dc:creator>
		<pubDate>Tue, 12 May 2015 20:39:55 +0000</pubDate>
				<category><![CDATA[Eletrônica Geral]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[IoT]]></category>
		<category><![CDATA[Maker]]></category>
		<guid isPermaLink="false">http://www.bosontreinamentos.com.br/?p=2353</guid>

					<description><![CDATA[<p>Samsung lança chips Artik para Internet das Coisas A Samsung revelou uma nova família de chips para serem usados na Internet das Coisas, colocando-a em competição direta com a Intel, Qualcomm e outras empresas na busca para conectar tudo. Young Sohn, presidente da Samsung Electronics disse que a linha de processadores Artik combina hardware e software para auxiliar as empresas a construir rapidamente dispositivos conectados à Internet. Alex Hawkinson &#8212; CEO da companhia SmartThings, uma startup que desenvolve projetos para  Casas Inteligentes que a  Samsung adquiriu no ano passado &#8211; também revelou a nuvem aberta SmartThings que tornará mais fácil e mais rápido para os fabricantes de dispositivos e outras empresas criarem aplicações para os produtos. Há três variantes do chip Artik: Artik 1, Artik 5 e Artik 10, nos quais cada chip possui poder de processamento maior e capacidades mais complexas. Os chips irão custar de menos de US$10 até cerca de US$100, disse Sohn, e serão destinados a tudo, desde simples dispositivos rastreadores até drones e hubs para casas inteligentes. Tanto os chips quanto a nuvem SmartThings estão disponíveis hoje para serem usados em novos dispositivos da Internet das Coisas. Artik 1 Artik 5 Artik 10 &#8220;O que [...]</p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/samsung-lanca-chips-artik-para-internet-das-coisas/">Samsung lança chips Artik para Internet das Coisas</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[<table style="height: 32px;" width="646">
<tbody>
<tr>
<td style="border-color: #a3ba22;">
<h2><span style="color: #0000ff;">Samsung lança chips Artik para Internet das Coisas</span></h2>
</td>
</tr>
</tbody>
</table>
<p>A Samsung revelou uma nova família de chips para serem usados na Internet das Coisas, colocando-a em competição direta com a Intel, Qualcomm e outras empresas na busca para conectar tudo.</p>
<p>Young Sohn, presidente da Samsung Electronics disse que a linha de processadores <a href="https://www.artik.io/" target="_blank" rel="noopener noreferrer">Artik</a> combina hardware e software para auxiliar as empresas a construir rapidamente dispositivos conectados à Internet. Alex Hawkinson &#8212; CEO da companhia SmartThings, uma startup que desenvolve projetos para  Casas Inteligentes que a  Samsung adquiriu no ano passado &#8211; também revelou a nuvem aberta SmartThings que tornará mais fácil e mais rápido para os fabricantes de dispositivos e outras empresas criarem aplicações para os produtos.</p>
<p>Há três variantes do chip Artik: Artik 1, Artik 5 e Artik 10, nos quais cada chip possui poder de processamento maior e capacidades mais complexas. Os chips irão custar de menos de US$10 até cerca de US$100, disse Sohn, e serão destinados a tudo, desde simples dispositivos rastreadores até drones e hubs para casas inteligentes.</p>
<p>Tanto os chips quanto a nuvem SmartThings estão disponíveis hoje para serem usados em novos dispositivos da Internet das Coisas.</p>
<table style="height: 266px;" width="734">
<tbody>
<tr>
<td>
<div id="attachment_2354" style="width: 102px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2354" class="size-full wp-image-2354" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/05/artik-chip-samsung-1.png" alt="Artik 1 Samsung IoT" width="92" height="95" /><p id="caption-attachment-2354" class="wp-caption-text">Artik 1</p></div>
</td>
<td>
<div id="attachment_2357" style="width: 162px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2357" class="size-full wp-image-2357" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/05/artik-chip-samsung-5.png" alt="artik-chip-samsung-5" width="152" height="178" /><p id="caption-attachment-2357" class="wp-caption-text">Artik 5</p></div>
</td>
<td>
<div id="attachment_2356" style="width: 198px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2356" class="size-full wp-image-2356" src="http://www.bosontreinamentos.com.br/wp-content/uploads/2015/05/artik-chip-samsung-10.png" alt="Artik 1 Samsung IoT" width="188" height="251" /><p id="caption-attachment-2356" class="wp-caption-text">Artik 10</p></div>
</td>
</tr>
</tbody>
</table>
<p>&#8220;O que é impotante é que estas são máquinas inteligentes que irão tornar nossas vidas melhores&#8221;,  disse Sohn durante um discurso na IoT World en San Francisco &#8211; CA</p>
<p>Os novos processadores da Samsung seguem um impulso semelhante à Intel. A empresa revelou em Janeiro uma plataforma de processadores para dispositivos vestíveis (wearables) denominada Curie. Esse dispositivo, do tamanho de um botão, inclui um processador, rádio Bluetooth de baixa energia, sensores e é capaz de funcionar por períodos de tempo estendidos com uma bateria do tamanho de uma moeda, ou ainda pode ser recarregado.</p>
<p>Porém o Curie, que é baseado em uma tecnologia de 32 nanômetros, não estará disponível até o segundo semestre do ano, o que dá uma vantagem ao chip Artik da Samsung.</p>
<p>A Samsung vem apostando alto na Internet das Coisas, que é o conceito de usar sensores e outras tecnologias para conectar basicamente tudo o que você pode imaginar à Internet. A empresa de análise Gartner prevê que o número de dispositivos conectados em rede irá disparar de cerca de 900 milhões de unidades em 2009 para 26 bilhões de unidades em 2020, transformando objetos e dispositivos comuns em dispositios inteligentes que podem se comunicar entre si.</p>
<p>De acordo com o IDC, o mercado de IoT baterá US$3.04 trilhões no ano de 2020.</p>
<p>Durante a mostra <a href="http://www.cesweb.org/" target="_blank" rel="noopener noreferrer">Consumer Electronics de 2015</a>, em Janeiro, a Samsung, liderada pelo co-CEO Boo-Keun Yoon, prometeu que todos os produtos da companhia seriam construídos sobre plataformas que sejam abertas e compatíveis com outros produtos. Yoon também disse que 90% de seus dispositivos &#8211; desde smartphones até refrigeradores seriam capazes de se conectar à Internet até 2017.</p>
<p>Em cinco anos, todos os produtos em todo o  catálogo da empresa devem ser conectáveis à Internet. A Samsung enviou, no ano passado, cerca de 665 milhões de dispositivos por meio de suas divisões de dispositivos móveis e de eletrônicos.</p>
<p>A Samsung é a maior fabricante de chips de memória e também fabrica processadores para aplicações que servem como controladores de dispositivos, incluindo muitos dos iPhones da Apple.</p>
<p>O chip Artik mais avançado da Samsung usa a mesma tecnoogia que os processadores utilizados nos smatphones da empresa, de acordo com Sohn.</p>
<p>&#8220;Tudo já está ajustado, então porque nós não tiramos vantagem da tecnologia desenvolvida para os smartphones e a tornamos disponível para a Internet das Coisas?, ele perguntou durante a conferência.</p>
<p>A <a href="https://boogio.com/" target="_blank" rel="noopener noreferrer">Boogio</a>, uma startup que consegue transformar qualquer sapato em um “sapato inteligente” para propósitos como reabilitação, está usando o chip Artik 1 na quinta geração de seu dispositivo. E justamente porque a Samsung já combinou os chips, gerenciamento de energia e sensores, a Boogio pode, em vez disso, se focar em outras características e obter seus produtos mais rapidamente.</p>
<p>O chip Artik irá  &#8220;nos habilitar a levar nossa tecnologia para o próximo nível&#8221;, disse o CEO da Boogio, José Torres. &#8220;O Artik chega em uma hora muito crítica em nosso ciclo de desenvolvimento&#8221;.</p>
<p>Fonte: <a href="http://www.cnet.com/news/samsung-launches-artik-chips-for-internet-of-things/" target="_blank" rel="noopener noreferrer">CNET</a></p>
<p>O post <a href="https://www.bosontreinamentos.com.br/eletronica/eletronica-geral/samsung-lanca-chips-artik-para-internet-das-coisas/">Samsung lança chips Artik para Internet das Coisas</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/samsung-lanca-chips-artik-para-internet-das-coisas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
