Buscar

DESENVOLVIMENTO DE APLICAÇÕES USANDO PLATAFORMAS DE MIDDLEWARE PARA IOT EM PYTHON

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

DESENVOLVIMENTO DE APLICAÇÕES USANDO PLATAFORMAS DE MIDDLEWARE PARA IOT EM PYTHON
			
				
					
						
							Descrição
							Apresentação dos conceitos e aplicações das plataformas 
Arduino, NodeMCU e Raspberry Pi com abordagem das funcionalidades 
arquiteturais das suas placas. 
						
						
							PROPÓSITO
							Compreender os conceitos e aplicações das plataformas Arduino,
 NodeMCU e Raspberry Pi, possibilitando o desenvolvimento de aplicações 
para dispositivos IoT em Python.
						
						
							Preparação
							Você vai precisar ter o Windows 8 ou superior instalado para 
executar nossos exemplos. Além disso, no caso do Arduino, você precisará
 criar uma conta no Tinkercad. 
						
					
				
			
			
				
					
						
							OBJETIVOS
						
					
					
						
								
									
										
											Módulo 1
										
										
											Descrever as etapas necessárias para instalação, configuração e desenvolvimento de uma aplicação na plataforma Arduino
										
									
							
						
						
							
								
									
										Módulo 2
									
									
										Descrever as etapas necessárias para instalação, configuração e desenvolvimento de uma aplicação na plataforma NodeMCU
									
								
							
						
						
							
								
									
										Módulo 3
									
									
										Descrever as etapas necessárias para instalação, configuração e desenvolvimento de uma aplicação na plataforma Raspberry Pi
									
								
							
						
					
				
			
			
				
					
						
							Introdução
							O desenvolvimento de aplicações de software está cada vez mais
 sofisticado. Isso ocorre como uma resposta à crescente demanda da 
sociedade por soluções de problemas que abrangem diversos contextos: 
desde os pedagógicos, com o objetivo de aumentar a velocidade do 
aprendizado nas diversas áreas da ciência aplicada, como problemas de 
controle das condições de ambiente (monitoramento de temperatura de um 
ambiente industrial), até aplicações voltadas para o entretenimento. 
							Nesse contexto, plataformas como o Arduino, NodeMCU e 
Raspberry Pi ganham especial destaque por viabilizar a conexão entre 
dispositivos eletrônicos e plataformas de programação. Tal conexão 
viabiliza adicionar lógica de programação e controle sobre as aplicações
 que dão transparência para as complexidades de arquitetura de hardware e
 que integram aplicações que, até então, limitavam-se a um tratamento 
específico, para serem inseridas em um ambiente mais amplo que permite 
analisar melhor os dados e, desse modo, dar suporte à tomada de decisão.
							Ao longo do texto, apresentaremos conceitos e exemplos de 
aplicações práticas sobre as plataformas do Arduino, NodeMCU e Raspberry
 que servirão de estímulo para que você possa elaborar e desenvolver 
suas próprias aplicações e explorar esse interessante nicho a fim de 
atender às crescentes demandas da sociedade.
						
					
				
			
		
			
			
				
			
			
				
					
						
							MÓDULO 1
							
						
						
							
						
						
							Descrever as etapas necessárias para instalação, configuração e desenvolvimento de uma aplicação na plataforma Arduino
						
					
				
			
			
			
			
				
					
						
							BIBLIOTECAS E ECOSSISTEMA DO ARDUINO
							O Arduino é uma plataforma eletrônica de código aberto baseada
 em hardware e software (ARDUINO, 2021). Ao longo dos anos, o Arduino 
tem sido aplicado em diversos projetos, como sistemas de alarme, jogos e
 controle de condições ambientais, entre muitos outros. Com as placas do
 Arduino, é possível ler entradas como um sensor de luz, por exemplo, e 
transformar o sinal em uma saída que pode ativar um motor, ligar um LED 
ou mesmo publicar conteúdo on-line. 
							
							
								
									
										
											
												
												
											
										
							
										
											
												
													
														Você sabia
													
													O Arduino foi criado no Ivrea 
Interaction Design Institute, em 2002, com o objetivo de ser uma 
ferramenta para fazer prototipação rápida, voltada a alunos sem formação
 em Eletrônica e Programação. 
												
											
										
									
								
							
							Logo que passou a ser mais conhecida, a placa Arduino evoluiu 
de placas simples de 8 bits para aplicações de Internet das Coisas 
(IoT), impressão 3D e ambientes integrados.
							Uma das principais características do Arduino é que todas as suas placas são de código aberto,
 possibilitando, assim, que os usuários as criem de forma independente 
e, se quiserem, adaptem-nas às suas necessidades particulares. O software também é de código aberto e possui uma comunidade de desenvolvedores ativa que disponibiliza projetos e tira dúvidas em fóruns on-line.
							No site oficial do Arduino são dadas diversas argumentações que incentivam o seu uso, tais como:
								Experiência de usuário simples.
	Aplicações em muitos projetos de diferentes áreas.
							O fato de ter se originado com fins educacionais tornou o 
software Arduino bastante atrativo para iniciantes e com muito potencial
 para usuários avançados. Ele é multiplataforma, o que significa que pode operar em Mac, Windows e Linux.
							Entre algumas das diversas aplicações em que ele já foi usado com sucesso estão:
						
					
				
			
			
			
			
			
			
				
					
						
							
								
									
										Para projetos educacionais em que aluno e professores 
estudam os princípios da Química e da Física ou para iniciar a 
programação e a robótica com equipamentos de relativo baixo custo. 
									
								
							
						
			
						
							
								
									
										Construção de protótipos interativos por designers e arquitetos.
									
								
							
						
			
						
							
								
									
										Desenvolver aplicações artísticas, como instrumentos musicais, por exemplo. 
									
								
							
						
					
				
			
			
			
			
			
			
				
					
						
							Existem muitas comunidades que tratam sobre aplicações, 
projetos e discussões sobre o Arduino. Por exemplo, estas são algumas 
dessas comunidades: Arduino Forum, Tutorials e Project Hub.
						
					
				
			
			
			
			
			
				
					
						
							Um conceito bastante 
importante quando estudamos sobre o Arduino é o de controlador. Ele é 
similar a um computador normal sem ter, no entanto, o disco rígido e 
alguns outros componentes. 
						
					
				
			
			
			
			
			
			
				
					
						
							Os elementos básicos do controlador são: 
						
					
					
						
							
								
									
										A entrada/saída, que é feita por meio de pinos e da porta USB. 
									
								
							
						
			
						
							
								
									
										O processador.
									
								
							
						
			
						
							
								
									
										Memória de acesso aleatório (RAM), que funciona de modo semelhante a RAM de computador tradicional. 
									
								
							
						
					
				
			
			
			
			
			
			
				
					
						
							Existe, obviamente, uma diferença de escala entre os 
componentes de um controlador e de um computador e que, portanto, torna a
 engenharia entre ambos bastante diferente em alguns aspectos. Isso vai 
fazer com que o desenvolvedor precise considerar questões relativas à 
alimentação de outros dispositivos e o próprio controlador que não 
precisaria se preocupar com o desenvolvimento de uma aplicação em um 
computador tradicional. Mas essas questões não são impeditivas de 
aprender a programar nesse ambiente, ao contrário, são pontos de 
incentivo para entender melhor sobre o funcionamento interno dos 
computadores.
							Entre algumas das vantagens para se trabalhar com o Arduino (2021) estão:
						
					
				
			
			
			
			
			
				
					
						
							
								
								Clique nas barras para ver as informações.
								Objeto
com interação.
							
						
						
							
								
									Baixo custo
									
										Isso ocorre por duas razões. A primeira delas é que o 
Arduino é, de fato, o controlador mais popular do mercado e por ser de 
código aberto, existem placas similares, mas que, obviamente, não podem 
usar a marca do Arduino. Isso faz com que as placas Arduino sejam 
relativamente mais baratas que outras plataformas de microcontrolador.
									
								
			
								
									Multiplataforma
									
										O software Arduino está habilitado para operar nos sistemas
 operacionais Windows, Macintosh OSX e Linux. Essa é outra grande 
vantagem do Arduino em relação aos concorrentes que, em muitos casos, 
operam apenas em uma plataforma de sistema operacional.
									
								
			
								
									Ambiente de programação (IDE) simplificado
									
										A IDE Arduino facilita a escrita de código e carrega o 
programa para a placa. Para baixar o software, basta acessar o site 
Documentação de Referência da Linguagem Arduino. Este software pode ser 
usado com qualquer placa Arduino. 
									
								
								
									Software de código aberto e extensível
									
										O Arduino possui uma linguagem de programação similar às 
linguagens C/C++. Mais adiante, abordaremos esse tópico com mais 
detalhes. Por enquanto, devemos saber que a linguagem nos oferece 
comandos de controle de fluxo, loops, também podemos criar variáveis e 
funções, além de termos acesso a bibliotecas que facilitam bastante o 
processo de desenvolvimento de software.
									
								
								
									Hardware extensível e de código aberto
									
										Os projetos das placas Arduino são publicados sob uma 
licença Creative Commons, o que significa que outras pessoas/empresas 
podem fazer suas próprias versões dos módulos, estendendo-os e 
aprimorando-os. 
									
								
							
						
					
				
			
			
			
			
			
			
				
					
						
							O que vimos até agora nos dá uma ideia de que o Arduino é bem 
mais do que placas controladoras ou uma linguagem de programação. Dada a
 abrangência do Arduino, é bastante comum que ele seja visto como um 
ecossistema, pois elementos como hardware, software, processos e pessoas
 interagem entre si para a criação de projetos, como já comentamos sobre
 alguns deles.
							Abordaremos agora com mais detalhes os elementos que compõem esse ecossistema. São eles:
								
									A placa Arduino: é nela que o código que 
implementamos será executado. Semelhante ao que ocorre com um 
computador, a placa precisa ser conectada à eletricidade. Em seguida, 
para desenvolver projetos que interajam com o ambiente, é necessário 
incluir componentes específicos. Na figura a seguir, mostramos uma placa
 Arduino Uno que, normalmente, é pela qual as pessoas começam a aprender
 a desenvolver projetos.
									
										
											
Fonte: Shutterstock.com
											Placa Arduino Uno.
										
									
								
							Geralmente, os componentes que precisamos acoplar às placas 
são sensores que convertem algum aspecto do mundo físico em 
eletricidade, para que a placa possa captá-lo e atuar conforme foi 
programada. 
						
					
				
			
			
			
			
				
					
						
							
								
								
							
						
			
						
							
								
									
										Exemplo
									
									Alguns exemplos de sensores são: acelerômetros e sensores de distância ultrassônicos. 
									Já alguns exemplos de atuadores – 
que são os componentes que vão atuar conforme o programa Arduino ‒ são: 
luzes e LEDs, alto-falantes, motores e visores. 
								
							
						
					
				
			
			
			
			
			
				
					
						
							Segundo o Arduino Older Boards (2021), há uma variedade de 
placas oficiais que você pode usar com o software Arduino USB, tais 
como: 
								Arduino Uno, Arduino Duemilanove, Arduino Diecimila, Arduino
 NG Rev C, Arduino NG 240, Arduino Extreme v2, Arduino Extreme, Arduino 
USB, Arduino USB v2.0.
	Arduino Bluetooth: Arduino BT.
	Arduino Serial: Arduino Serial, Arduino Serial v2.0.
	Arduino Single-Sided Serial: Severino (S3V3).
	Arduino Mega: Arduino Mega.
	Arduino Lilypad: LilyPad Arduino 01, LilyPad Arduino 03/04.
	Arduino NANO: Arduino NANO 3.0.
	Arduino Mini: Arduino Mini 03, Arduino Mini 04, Arduino Stamp 02.
	Mini USB Adapter: Mini USB Adapter 03, Mini USB Adapter.
							Além dessas, há muitas placas compatíveis com o Arduino 
produzidas por empresas e membros da comunidade Arduino. Ainda é 
possível encontrar controladores compatíveis com o Arduino dentro de 
impressoras 3D e, até mesmo, robôs. 
	
						
					
				
			
			
			
			
			
				
					
						
							
								
								
							
						
			
						
							
								
									Comentário
									Algumas dessas placas e produtos compatíveis com Arduino também são compatíveis com outros ambientes de programação, como MicroPython, ou CircuitPython
 (2021). Muitas dessas placas contêm um conector USB que é usado para 
fornecer energia e conectividade para carregar seu software na placa.
								
							
						
					
				
			
			
			
			
			
				
					
						
								IDE Arduino:
							É o ambiente de desenvolvimento integrado do Arduino – do inglês: Integrated Development Environment
 – que podemos usar para criarmos um programa Arduino e carregá-lo na 
placa. O fato de estarmos desenvolvendo projetos físicos influencia 
algumas questões de nomenclatura no Arduino. Uma delas é a forma como um
 programa Arduino é denominado: esboço.
							O motivo disso é porque um programa é um elemento do protótipo
 do projeto e, como todo protótipo, tudo o que fizermos precisa passar 
por testes e possíveis ajustes até chegarmos na versão final. O Arduino 
IDE pode ser baixado do site do Arduino e funciona em computadores Mac, 
Linux e Windows, como já havíamos dito anteriormente. O único requisito 
para sua instalação é o Java Runtime Environment (JRE).
							A instalação é um processo muito simples: baixar o instalador 
IDE para o seu computador do site do Arduino e executar o arquivo de 
instalação. O próprio instalador vai informar se é necessário fazer o 
download do JRE. Na figura a seguir, mostramos a IDE do Arduino logo 
depois da instalação. 
							
								
									
Fonte: Captura de tela do software Arduino Uno.
									IDE Arduino.
								
							
	
							Com a IDE instalada, podemos criar nossos programas, fazer testes e carregá-los para a placa Arduino.
								Linguagem Arduino:
							Quando instalamos a IDE do Arduino, também temos acesso à 
biblioteca principal do Arduino, que traz um conjunto de funções que nos
 permite controlar os vários aspectos da funcionalidade da placa. A 
seguir, apresentamos o exemplo de um programa Arduino que já vem com a 
IDE.
							Para acessá-lo, basta abrir a IDE e o menu no seguinte caminho:
							File -> Examples -> 01. Basics -> AnalogReadSerial 
							Agora, aparecerá o seguinte código:
						
					
				
			
			
				
				
					
						
							
								
									
									
									
								
							
						
						
							
								/*
	AnalogReadSerial
	Reads an analog input on pin 0, prints the result to the Serial Monitor.
	Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
	Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
	This example code is in the public domain.
	http://www.arduino.cc/en/Tutorial/AnalogReadSerial
*/
// the setup routine runs once when you press reset:
void setup() {
	// initialize serial communication at 9600 bits per second:
	Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
	// read the input on analog pin 0:
	int sensorValue = analogRead(A0);
	// print out the value you read:
	Serial.println(sensorValue);
	delay(1); // delay in between reads for stability
}
Comentário
						O código tem muitas semelhanças com um programa em C ou C++.
					
				
			
		
	
			
	
	
	
	
		
			
				
					De imediato, podemos observar os comentários de blocos que são delimitados por /* */ e os de linha feitos por //.
 No comentário, inclusive, está escrita uma breve descrição do objetivo 
do programa, que é mostrar como ler a entrada analógica usando um potenciômetro depois de estabelecer a comunicação serial entre o Arduino e o computador.
					Outro ponto muito importante no comentário é que ele nos informa que o código é de domínio público.
					
					
					
						
						
							
								
									potenciômetro
									Um potenciômetro é um dispositivo mecânico simples que 
fornece uma quantidade variável de resistência quando seu eixo é girado.
 Ao passar a tensão por um potenciômetro e em uma entrada analógica em 
sua placa, é possível medir a quantidade de resistência produzida por um
 potenciômetro como um valor analógico. 
								
							
						
					
					
					Outros pontos que precisamos observar são:
						A função setup que define os valores iniciais 
das variáveis e funções. No caso do exemplo, a comunicação com a porta 
serial está sendo estabelecida em 9600 bits por segundo, por meio do 
método “Serial.begin()”.
	A função loop que executa a repetição de um 
bloco de comandos para permitir que o programa leia os dados e atue para
 controlar a placa Arduino. No caso do exemplo, a variável “sensorValue”
 do tipo inteiro está recebendo o valor do pino de entrada “A0” por meio
 do método “analogRead(). Em seguida, está escrevendo o valor da 
variável sensorValue na porta serial por meio do método 
“Serial.println()”. Por fim, o método “delay” faz com que o programa 
aguarde durante 1 milissegundo antes de realizar a próxima leitura.
					No site oficial da linguagem do Arduino (em Documentação de 
Referência da Linguagem Arduino), a linguagem é dividida nas seguintes 
unidades lógicas:
				
			
		
	
	
	
	
	
		
			
				
					
						
						Clique nas barras para ver as informações.
						Objeto com interação.
					
				
				
					
						
							Funções
							
								Que são usadas para controlar a placa Arduino e realizar 
computações. Elas são subdivididas em Entradas e Saídas Digitais, 
Funções Matemáticas, Números Aleatórios, Entradas e Saídas Analógicas, 
Apenas Zero, Due e Família MKR, Funções Trigonométricas, Bits e Bytes, 
Entradas e Saídas Avançadas, Caracteres, Interrupções Externas e 
Interrupções.
							
						
	
						
							Variáveis
							
								Que tratam tipos de dados e constantes da linguagem Arduino. 
Elas cobrem: Constantes, Tipos de Dados, Escopo de Variáveis e 
Qualificadores, Conversão e Utilitários.
							
						
	
						
							Estruturas
							
								Que tratam dos elementos da linguagem Arduino. Elas abrangem:
 Sketch, Operadores Aritméticos, Operadores para Ponteiros, Estruturas 
de Controle e Operadores de Comparação, Operadores Bitwise, Operadores 
de Atribuição Composta, Outros Elementos da Sintaxe e Operadores 
Booleanos.
							
						
					
				
			
		
	
	
	
	
	
	
		
			
				
						Bibliotecas
					São uma coleção de códigos que facilitam a interação com 
sensores, display e diversos outros dispositivos, como podemos ver no 
site oficial do Arduino (Libraries).
								As bibliotecas do Arduino são gerenciadas em três locais diferentes:
								(1) na opção “Manage Libraries”, (2) em “Add .ZIP Library” e (3) “Arduino Libraries”.
								Na figura a seguir, mostramos o local em que podemos fazer o gerenciamento das bibliotecas.
								
									
										
Fonte: Sérgio Assunção Monteiro.
										Caminho da seção Gerenciamento de bibliotecas. Captura de tela do programa AnalogReadSerial.
									
								
								Existem muitas bibliotecas disponíveis na Internet. Para poder usá-las, é necessário que façamos sua instalação. 
				
			
		
	
	
	
	
	
		
			
				
					
						
					
				
				
					
						
							Atenção
							Um ponto importante que devemos 
observar é o modo como a IDE do Arduino se atualiza: todos os arquivos 
que estão na pasta em que fizemos a instalação da IDE são excluídos e 
uma pasta é criada com um novo conteúdo. 
						
					
				
			
		
	
	
	
		
			
				
					A recomendação oficial (ARDUINO, 2021) é fazer a instalação das 
bibliotecas na pasta onde o projeto está sendo desenvolvido, para que 
não sejam excluídas durante o processo de atualização da IDE do Arduino.
					Mais adiante, trataremos das bibliotecas do Arduino com mais detalhes.
					 
						Shields:
					São placas com fins específicos que podem ser conectadas a uma 
placa Arduino. Essa conexão é feita, literalmente, empilhando as Shields
 sobre a placa Arduino e fazendo as devidas conexões.
					Alguns exemplos de Shields são:
				
			
		
	
	
	
	
		
			
				
					
						
							Shields de Motor
							Controlam motores DC, de passo e servomotores. 
						
					
				
			
		
		
			
				
					
						
						
							Shield Ethernet
							Permite conectar o Arduino a uma rede local, ou à Internet.
						
					
				
			
		
		
			
				
					
						
							Shield WiFi
							permite a comunicação via rede wireless com o Arduino.
						
					
				
			
		
		
			
				
					
						
						
							USB Host Shield
							Permite implementar uma controladora USB. 
Assim, o Arduino pode se conectar a outros dispositivos via porta USB, 
por exemplo, smartphones com Android.
						
					
				
			
		
		
			
				
					
						
							Proto Shield
							permite criar protótipos com uma área para soldagem de componentes, como LEDs e resistores.
						
					
				
			
		
		
			
				
					
						
						
							Shield microSD/SD
							Permite que o Arduino possa armazenar grandes volumes de dados em cartões SD.
						
					
				
			
		
		
			
				
					
						
							Shield MP3
							Permite que o Arduino trabalhe com arquivos de música em formato MP3.
						
					
				
			
		
		
			
				
					
						
						
							Shield LCD TFT
							Permite conectar uma tela de LCD TFT (cristal líquido) ao Arduino.
						
					
				
			
		
	
	
	
	
	
	
		
			
				
						Componentes:
					São itens eletrônicos que precisamos acessar pontualmente para 
personalizar o modo como ele se integra ao nosso projeto. Exemplos de 
componentes são: teclado, uma tela LCD de caracteres, sensores de 
diversos tipos (movimento, luz, temperatura, entre outros), circuitos 
integrados de lógica binária, circuitos amplificadores, scanners de 
impressão digital, entre tantos outros componentes. Além disso, o 
Arduino ainda tem os chamados componentes discretos, tais como 
resistores, diodos, transistores, led, relays, capacitores e indutores 
(ARDUINO, 2021).
					Conhecendo um pouco mais sobre a placa do Arduino
					A placa do Arduino é baseada no microcontrolador ATmega168 ou 
ATmega328. No site oficial do Arduino (Arduino UNO Rev3) podemos 
entender com mais detalhes as características técnicas dos componentes e
 pinos da placa. 
					Na figura a seguir, apresentamos a placa do Arduino Uno com 
destaque para alguns dos elementos mais importantes para desenvolvermos 
aplicações.
					
 
 
Autor: Sérgio Assunção Monteiro
 Placa Arduino - desenho elaborado com o uso do simulador on-line Tinkercard.
 
 
					Vamos destacar os principais elementos da placa:
						A placa possui pinos para entradas analógicas ‒
 que podemos usar como entradas para sensores, por exemplo, e pinos 
digitais ‒ utilizadas para enviar um sinal para um LED, por exemplo.
	Além disso, podemos alimentar a placa por meio de uma conexão USB,
 ou por uma fonte de alimentação externa. Temos os conectores de 
alimentação que fornecem tensão para os componentes que estiverem 
ligados à placa.
	Botão de RESET que pode ser utilizado para reiniciar a placa Arduino.
					Simulador
Para desenvolver um projeto no Arduino, mesmo para um projeto 
simples, precisamos de uma placa Arduino e outros componentes. No 
entanto, existem alguns simuladores gratuitos e disponíveis on-line que 
nos possibilitam desenvolver projetos. 
					Analisaremos um desses simuladores, o Tinkercad (2021). 
Implementaremos o projeto Fade (ARDUINO, 2021), que controla a 
intensidade de iluminação de um componente LED. Na figura a seguir, 
mostramos o projeto que desenvolvemos com o Tinkercad.
					
 
 
Fonte: Sérgio Assunção Monteiro com uso do Tinkercad.
 Projeto Arduino com o uso do Tinkercad
 
 
					Os componentes que usamos nesse projeto foram:
			
	
					Após fazer a conexão entre os componentes, escrevemos o seguinte
 código que já vem com a instalação da IDE do Arduino, ou que podemos 
também encontrar no site do Arduino (Arduino, Built-In Example, Fade), 
uma vez que é um código de domínio público:
			
				
			
		
	
	
			
			
				
					
						
							
								
								
								
							
						
					
					
						
							/*
	Fade
	This example code is in the public domain.
	http://www.arduino.cc/en/Tutorial/Fade
*/
int led = 9; 
int brightness = 0; 
int fadeAmount = 5; 
void setup() {
	pinMode(led, OUTPUT);
}
void loop() {
	analogWrite(led, brightness);
	brightness = brightness + fadeAmount;
	if (brightness <= 0 || brightness >= 255) {
	fadeAmount = -fadeAmount;
	}
	delay(30);
}
						
					
				
			
			
			
			
			
				
					
						
							Vamos explicar o código:
						
					
				
			
			
			
			
			
			
				
					
					
						
							
								
								
									
										
											1
										
									
									
										
											
												As primeiras linhas desse código são apenas comentários 
com o nome do projeto, a informação de que ele é de domínio público e o 
endereço onde podemos encontrá-lo on-line.
											
										
									
								
			
								
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											
												Na linha que possui o comando “int led = 9;”, criamos uma variável para indicar qual será o pino que vamos usar para conectar o LED.
											
										
									
									
										
											2
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											3
										
									
									
										
						
											
												Na linha que possui o comando “int brightness = 0;”, criamos a variável que será usada para dar a intensidade da luminosidade do LED. 
											
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											
												Na linha com o comando “int fadeAmount = 5;”, criamos a variável que indica quantos pontos de intensidade de luz serão usados para enfraquecer o LED.
											
											
										
									
									
										
											4
										
									
								
			
			
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											5
										
									
									
										
											
											
												A função “setup” é executada sempre que o sistema for iniciado.
											
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											
												A linha com o comando “pinMode(led, OUTPUT);” estabelece que o pino 9 será uma saída.
											
											
										
									
									
										
											6
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											7
										
									
									
										
											
											
												A função “loop” é executada enquanto o sistema estiver funcionando.
											
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											
												A linha com o comando “analogWrite(led, brightness);” define o brilho do pino 9. 
											
											
										
									
									
										
											8
										
									
								
								
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											9
										
									
									
										
											
											
												A linha com comando “brightness = brightness + 
fadeAmount;” aumenta o valor da variável de luminosidade, para que mude o
 brilho na próxima iteração.
											
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
 
 
	
		
			
				
															Os trechos de programa 
												
			
				
					
						
							
								
								
								
							
						
					
					
						
							if (brightness <= 0 || brightness >= 255) {
 fadeAmount = -fadeAmount;
}
						
						
							
								 Atenção! Para visualizaçãocompleta do código utilize a rolagem horizontal
						
					
				
			
			invertem a direção do “enfraquecimento” da luminosidade nas extremidades da iluminação.
			
			
		
	
	
		
			10
		
	
	
		
	
	
		
	
	
		
	
								
								
									
										
											11
										
									
									
										
											
											
												Por fim, o trecho com o comando “delay(30);” faz com que o programa espere 30 milissegundos para mudar o efeito de escurecimento.
											
										
									
								
			
								
									
										
									
									
										
									
									
									
								
							
						
					
				
			
			
			
			
				
					
						
							
								
							
						
						
							
								
									Atenção
									Para ver o sistema em funcionamento, inicie a simulação no Tinkercad.
								
							
						
					
				
			
			
			
			
			
				
					
						
							IDE Arduino
							A outra forma de colocar o sistema para funcionar é com uma 
placa e os demais componentes, conforme explicamos na seção “Simulador”.
 Nós usamos uma placa Arduino Uno. Logo de início, precisamos abrir a 
IDE do Arduino e abrir o projeto Fade. Basta seguir o caminho: File->Examples -> 01. Basics -> Fade. 
							Agora, é necessário conectar a placa Arduino no USB do computador.
							Depois de fazer isso, precisamos verificar se o código tem algum problema, conforme mostramos na figura a seguir.
							
								
									
Fonte: Captura da tela do programa Arduino.
									Verificar o programa.
								
							
							Com tudo funcionando corretamente, precisamos carregar o programa para a placa Arduino, conforme mostramos na figura seguinte.
							
								
									
Fonte: Captura da tela do programa Arduino.
									Carregar o programa para placa.
								
							
							Desse modo, o LED vai acender e passar por níveis de luminosidade que estabelecemos.
							Bibliotecas
							O Arduino possui muitas bibliotecas que facilitam o desenvolvimento de projetos. 
						
					
				
			
			
			
			
				
					
						
							
								
								
							
						
			
						
							
								
									
										Dica
No site oficial do Arduino podemos obter detalhes dessas bibliotecas. 
								
							
						
					
				
			
			
			
			
			
				
					
						
							Por exemplo, apresentamos as bibliotecas padrão do Arduino:
								EEPROM: com métodos responsáveis por fazer a leitura e gravação permanente.
	Ethernet: com funções para se conectar à internet usando o Arduino Ethernet Shield, Arduino Ethernet Shield 2 e Arduino Leonardo ETH.
	Firmata: para comunicação com aplicativos no computador usando um protocolo serial padrão.
	GSM: para conexão a uma rede GSM/GRPS com o shield GSM.
	LiquidCrystal: para controlar telas de cristal líquido (LCDs).
	SD: para ler e escrever cartões SD.
	Servo: para controlar servomotores.
	SPI: para comunicação com dispositivos usando o Barramento de Interface Periférica Serial (SPI).
	SoftwareSerial: para comunicação serial em qualquer pino digital.
	Stepper: para controlar motores de passo.
	TFT: para desenhar texto, imagens e formas na tela TFT do Arduino.
	WiFi: para se conectar à Internet usando o escudo WiFi Arduino.
	Wire: interface de dois fios (TWI/I2C) para enviar e receber dados em uma rede de dispositivos ou sensores.
							Além dessas bibliotecas, o Arduino também possui as 
bibliotecas de comunicação, processamento de dados, armazenamento de 
dados, controle de dispositivos, exibição, sensores, entrada/saída de 
sinal e tempo, além de outras que não têm uma categoria específica.
						
						
					
				
			
			
			
			
			
			
				
					
						
							Python (PySerial)
							O Python é uma linguagem de programação utilizada em diversas 
aplicações, como manipular bancos de dados, desenvolvimento web, ciência
 de dados, entre tantas outras. Isso ocorre devido à facilidade da 
sintaxe do Python em relação às outras linguagens, além de contar com 
muitas bibliotecas e frameworks disponíveis e uma comunidade muito ativa
 que compartilha código e participa de fóruns de discussão para tratar, 
por exemplo, de erros de programação.
							O que acabamos de descrever sobre o Python se encaixa bem com o
 ecossistema do Arduino: facilidade de programação, compartilhamento de 
códigos, muita documentação disponível e uma comunidade bastante ativa. 
Então, é natural que o Python ofereça recursos, para que possamos 
interagir com um projeto no Arduino. Esse recurso é a biblioteca 
pySerial, (PYSERIAL, 2015).  Ele oferece meios para que a linguagem
 de programação Python possa se comunicar com dispositivos eletrônicos 
via porta serial.
							A primeira coisa que precisamos fazer é instalar o Python e, 
em seguida, o pySerial. Em nosso caso, utilizamos o Python com a IDE 
Spyder. Para baixá-la e fazer a instalação, vá em Spyder 2021. Depois de
 instalado o Python, precisamos instalar o pySerial. Basta digitar o 
seguinte comando no terminal do Spyder:
						
					
				
			
			
		
		
			
				
					
						
							
							
							
						
					
				
				
					
						! pip install pySerial
					
				
			
		
	
						
						
							
								
									
										Agora, vamos descrever uma aplicação Python que interage 
com o nosso projeto Arduino. Para isso, vamos precisar do projeto físico
 Fade, como descrevemos na seção Simulador. Em seguida, conectamos a 
placa Arduino com o computador por meio da porta USB. O próximo passo é 
escrever o código abaixo na IDE do Arduino:
									
								
							
						
						
									
			
				
					
						
							
								
								
								
							
						
					
					
						
							int led1 = 9; 
void setup(){
 Serial.begin(9600); 
 pinMode(led1, OUTPUT); 
}
void loop(){
 char leitura = Serial.read(); 
 if(leitura == '1'){
 digitalWrite(led1, HIGH); 
 }
 else if(leitura == '0'){
 digitalWrite(led1, LOW); 
 }
}
						
					
				
			
			
			
			
			
				
					
						
							Vamos entender melhor o que temos no Código: 
								Na linha com comando “int led1 = 9;”, declaramos a variável que indica que vamos usar o pino 9 para fazer as operações de escrita.
	Na função setup, informamos qual é a velocidade que vamos 
usar para fazer a comunicação serial e associamos a variável ao pino de 
saída.
	Na função loop, fazemos a leitura dos valores enviados pelo 
programa em Pyhton e testamos o valor da entrada. Se for 1, acendemos o 
LED; se for 0, apagamos o LED.
						
					
				
			
			
			
			
			
				
					
						Agora, precisamos verificar se está tudo certo com o programa 
e, em caso positivo, carregá-lo para a placa. Feito isso, o próximo 
passo é trabalhar com o Python. Basta seguir estes passos:
					
					
						
							
								
								
									
										
											1
										
									
									
										
											
												Importar a biblioteca serial. Basta digitar na linha de comando:
												import serial
											
										
									
								
			
								
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											
												Agora, precisamos associar a porta serial com uma 
variável. No nosso caso, a porta serial é a COM3. Na linha de comando, 
basta digitar:
												conexao = serial.Serial('COM3', 9600)
											
											
										
									
									
										
											2
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											3
										
									
									
										
											
												O próximo passo é testar se a conexão está funcionando corretamente. Na linha de comando, devemos digitar:
												conexao.isOpen()
											
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											
												Se tudo funcionou corretamente, você deve ver a mensagem 
“True” na linha de comando. Agora, vem a parte em que vamos controlar o 
LED por meio de comandos “Acende” e “Apaga”. Para acender o LED, basta 
escrever na linha de comando:
												conexao.write(b'1')
							Para apagar o LED, basta escrever na linha de comando:
							conexao.write(b'0')
											
										
									
									
										
											4
										
									
								
			
			
								
									
									
									
										
									
									
										
									
								
							
						
					
				
			
			
			
				
					
						
							
								
									
			
										
											
										
									
								
							
							
								BIBLIOTECAS PARA PROGRAMAÇÃO DE SISTEMAS EMBARCADOS
								
								No vídeo, o especialista Sérgio
 Assunção Monteiro fala sobre o Arduino, o seu ecossistema e a 
integração entre o Arduino e a linguagem de programação Python. 
			
							
			
							
								
									
								
							
						
					
			
					
					
						
							
								
							
			
							
								
							
			
							
								
								
							
			
						
					
				
			
						
			
			
				
					
						
							Verificando o aprendizado
						
						
							
							
								
									
										
										
										
									
								
							
							
								ATENÇÃO!
								
								
									Para desbloquear o próximo módulo, é necessário que você responda corretamente a uma das seguintes questões:
								
							
						
						
						
							
								1.
 O Arduino é muito popular tanto no meio acadêmico como em ambientes 
comerciais. As aplicações com Arduino vão desde as pedagógicas até 
projetos industriais de monitoramento de condições ambientais. A 
respeito dos pontos que ajudaram o Arduino a ter tanto sucesso, 
selecione a opção correta.
O baixo custo ajudou bastante o Arduino a se popularizar, mesmo com o projeto da placa sendo fechado.
O
 fato das aplicações
do Arduino rodarem sobre os sistemas Windows e 
Linux facilita bastante a sua aplicação em muitos projetos, apesar de 
ainda não operar sistemas Macintosh.
O
 ambiente de programação do Arduino habilita que os desenvolvedores 
possam programar, depurar e carregar as aplicações diretamente para a 
placa. 
Por
 ser uma linguagem de programação essencialmente estruturada, baseada em
 C, os programadores têm muita facilidade de desenvolver projetos no 
Arduino.
Um
 dos principais motivos do sucesso do Arduino é o seu hardware 
proprietário que garante a qualidade e extensão de seus produtos.
Tentar novamenteResponder
Comentário
2.
 O Arduino permite desenvolver aplicações que integram componentes 
externos, tais como sensores a sistemas de software que podem trabalhar 
com esses dados e, a partir deles, direcionar ações para outros 
componentes integrados nessa tecnologia. Para tornar isso possível, o 
Arduino possui um ecossistema que possui funcionalidades específicas. A 
respeito do ecossistema do Arduino, selecione a opção correta.
A
 placa Arduino é o principal componente do ecossistema no qual podemos 
conectar outros componentes e que é acompanhada por padrão de uma 
bateria que facilita o desenvolvimento de projetos complexos.
A IDE Arduino viabiliza a implementação, testes e transferência de programas do computador para a placa Arduino.
A
 linguagem Arduino é baseada no Python o que torna o desenvolvimento de 
projetos complexos muito simples, além da vantagem de poder fazer uso de
 todos os recursos que o Python oferece.
As
 bibliotecas do Arduino são um repositório de códigos que servem como 
referência, para que os programadores as modifiquem de modo a atender 
suas necessidades específicas.
Os shields são elementos lógicos de programação com fins específicos que podem ser adicionados a projetos no Arduino. 
Tentar novamenteResponder
Comentário
Gabarito1.
 O Arduino é muito popular tanto no meio acadêmico como em ambientes 
comerciais. As aplicações com Arduino vão desde as pedagógicas até 
projetos industriais de monitoramento de condições ambientais. A 
respeito dos pontos que ajudaram o Arduino a ter tanto sucesso, 
selecione a opção correta.
						
							A alternativa "C " está correta.
							
							Quando um desenvolvedor vai programar, a primeira preocupação é
 que seja um ambiente que tenha recursos que facilitem a integração com 
outros elementos do sistema. No caso do Arduino, isso é mais importante 
ainda, pois são duas aplicações: software e hardware. O ambiente de 
programação do Arduino facilita bastante esse processo de integração e, 
certamente, é um dos principais motivos da popularização do Arduino.
						
					
2. O Arduino 
permite desenvolver aplicações que integram componentes externos, tais 
como sensores a sistemas de software que podem trabalhar com esses dados
 e, a partir deles, direcionar ações para outros componentes integrados 
nessa tecnologia. Para tornar isso possível, o Arduino possui um 
ecossistema que possui funcionalidades específicas. A respeito do 
ecossistema do Arduino, selecione a opção correta.
						
							A alternativa "B " está correta.
							
							A IDE do Arduino, ou seja, o ambiente de programação, oferece 
recursos que aceleram o desenvolvimento de projetos que integram 
software e hardware. Além disso, o fato de concentrar todos esses 
recursos em um único ambiente torna mais fácil fazer o gerenciamento do 
projeto.
						
					
							
						
						
						
							
								O conteúdo ainda não acabou.
								
								
									Clique
												aqui e retorne para saber como desbloquear.
								
							
						
					
				
			
 
 
 
 
 Avalie este módulo:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
			
			
				
					
						
							
								
									
									
									
									
									
								
							
						
						
							Você chegou ao final do módulo 1!
							E, com isso:
							 Lorem ipsum dolor sit amet,
								consectetur adipiscing elit.
							 Retornar para o
								início do módulo 1
							
						
					
				
			
		
			
			
		
			
			
				
					
						
							MÓDULO 2
							
						
						
							
						
						
							Descrever as etapas necessárias para instalação, configuração e desenvolvimento de uma aplicação na plataforma NodeMCU
						
					
				
			
			
			
			
			
			
				
					
						
							INSTALAÇÃO DA PLACA NODEMCU
							O NodeMCU é um dos principais kits eletrônicos de código 
aberto para desenvolvimento de aplicações de Internet das Coisas (IoT). 
No site oficial do NodeMCU (ver NodeMCU, 2021), podemos obter detalhes 
sobre as especificações de seus componentes e exemplos de programas. Ele
 é baseado na família do microcontrolador ESP8266 que possui recursos 
que facilitam trabalhar com dispositivos conectados à Internet para 
monitoramento e controle. 
							Na figura a seguir, apresentamos uma placa NodeMCU.
							
								
									
Fonte: Shutterstock.com
									Placa NodeMCU.
								
							
							A placa do NodeMCU pode ser programada utilizando o Arduino IDE. Ela possui os seguintes recursos: 
						
					
				
			
			
			
			
			
			
				
					
						
							
								
									
										E/S de hardware semelhante ao Arduino.
									
								
							
						
			
						
							
								
									
										USB TTL do tipo “plug and play”.
									
								
							
						
			
						
							
								
									
										Wi-Fi de baixo custo.
									
								
							
						
					
				
			
			
			
			
			
			
				
					
						
							Para que possamos entender melhor como desenvolver projetos com o NodeMCU, precisamos conhecer as especificações dele.
							A seguir, apresentamos os pontos mais importantes (ESP8266, 2021):
								Tensão operacional: 3,3V.
	Consumo de corrente: 10uA-170mA.
	Memória flash acoplável máx. 16MB (512 K normal).
	Processador Tensilica: L106 de 32 bits.
	Velocidade do processador: 80-160MHz.
	RAM: 32K + 80K.
	GPIOs: 17 (multiplexado com outras funções).
	Uma entrada analógica para digital com 1024 níveis (10 bits) de resolução.
	Wi-Fi: suporte a 802.11 b/g/n.
	Máximo de 5 conexões TCP simultâneas.
							A forma mais simples de fazer a instalação do NodeMCU é por 
meio da IDE do Arduino, portanto, o primeiro passo é fazer o download 
dessa IDE e instalá-la (Arduino, Downloads, 2021.).
							Depois dessa etapa cumprida, passamos para o procedimento de 
instalação do ESP8266 no IDE Arduino. Vamos precisar fazer quatro 
passos, que são:
						
					
				
			
			
			
			
			
				
					
						
							
								
								Clique nas barras para ver as informações.
								Objeto com interação.
							
						
						
							
								
									Passo 1
									
										Devemos abrir a IDE do Arduino. Em seguida, ir ao menu e acessar:
										File -> Preferences
										Em seguida, adicionar a placa no gerenciador de URLs com o seguinte endereço:
										http://arduino.esp8266.com/stable/package_esp8266com_index.json
										Na figura a seguir, apresentamos como fazer esse procedimento.
										
											
												
Fonte: Captura de tela do programa Arduino.
												Preferências da IDE Arduino. 
											
										
					
									
								
			
								
									Passo 2
									
										Agora, devemos selecionar a placa com que vamos trabalhar. Para isso, precisamos ir em Board Manager e acessar:
										Tools >> Board >> Board Manager
										Na figura seguinte, mostramos como fazer esse procedimento.
Fonte: Captura de tela do programa Arduino.
												Gerenciador de placas.
											
										
					
									
								
			
								
									Passo 3
									
										Precisamos instalar a placa ESP8266. Para isso, procuramos o
 microcontrolador ESP8266 no “Board Manager” e clicamos no botão de 
instalação. Na figura seguinte, mostramos como fazer esse procedimento.
										
											
												
Fonte: Captura de tela do programa Arduino.
												Instalar a placa ESP8266.
											
										
					
									
								
								
									Passo 4
									
										Agora, a placa já está instalada. Para ver a placa instalada, basta abrir:
										Tools -> Board e procure ESP8266.
									
								
			
							
						
					
				
			
			
			
			
			
			
				
					
						
							Feito isso, vamos verificar se a instalação está funcionando corretamente, testando o programa de piscar do LED.
							Precisaremos fazer 5 passos, conforme a seguir:
								Passo 1: vamos selecionar a placa genérica ESP8266, conforme apresentamos na figura seguinte.
								
									
Fonte: Captura de tela do programa Arduino.
									Seleção da placa.
								
							
							
							 
								Passo 2: Vamos selecionar o exemplo de 
piscar de LED que já vem com a IDE do Arduino. Para isso, precisamos ir 
ao menu da IDE do Arduino e seguir:
File -> Open -> Examples -> 01.Basics -> Blink
								Na figura a seguir, apresentamos como fazer isso.
								
									
										
Fonte: Captura de tela do programa Arduino.
										Abrir exemplo Blink.
									
								
							
							 
								Passo 3: Agora, precisamos fazer uma pequena
 modificação no código e, em seguida, salvá-lo. O programa modificado 
vai ficar conforme abaixo:
							
			
				
					
						
							
								
								
								
							
						
					
					
						
							#define LED 2
void setup() {
	pinMode(LED, OUTPUT);
}
void loop() {
	digitalWrite(LED, HIGH); // turn the LED on (HIGH is the voltage level)
	delay(1000); // wait for a second
	digitalWrite(LED, LOW); // turn the LED off by making the voltage LOW
	delay(1000); // wait for a second
}
						
					
				
			
							
						A modificação que fizemos foi em relação à referência do 
endereço do LED. O NodeMCU tem dois LEDs integrados. No caso desse 
exemplo, usamos o LED conectado ao GPIO2.
							Passo 4: Agora, precisamos transferir nosso 
programa para o NodeMCU. Para isso, é necessário que a placa esteja 
conectada à USB do computador e sejam seguidos os mesmos procedimentos 
que precisamos fazer com o Arduino.
							Passo 5: Depois que a transferência for feita, o LED vai começar a piscar.
						
					
				
			
			
			
			
			
			
				
					
						
							CONFIGURAÇÃO DA PLACA NODEMCU
							O que vimos até agora já é suficiente para desenvolvermos projetos básicos no NodeMCU.
							Analisaremos com mais profundidade como funciona a placa e o 
que precisamos entender sobre sua configuração para que possamos 
aumentar o potencial de uso dos seus recursos de modo a desenvolvermos 
projetos mais interessantes. A primeira e mais importante questão a qual
 precisamos ficar atentos é sobre a comunicação serial que é necessária 
para a maioria dos dispositivos e  para testar e corrigir os 
programas.
							A comunicação serial é usada para habilitar que o 
microcontrolador ESP8266 se comunique com o computador e com 
dispositivos de comunicação serial. Todas as linhas de entrada e saída 
(I/O) de tensão de alimentação para o microcontrolador ESP8266 são de 
3,3V (ESP8266, 2021). Por isso, não devemos conectar nenhuma linha I/O 
com lógica de 5V.
							Agora, vamos explicar como funciona a pinagem do NodeMCU, conforme podemos ver na figura seguinte.
							
								
									
Pinagem da placa NodeMCU.
									Pinagem da placa NodeMCU.
								
							
							A seguir, explicaremos a funcionalidade dos pinos baseados na documentação técnica oficial (ESP8266, 2021):
								Pinos de alimentação: existem quatro pinos 
de alimentação: um pino VIN que pode ser usado para alimentar 
diretamente o ESP8266 e seus periféricos, caso usemos uma fonte de 
tensão regulada de 5V e três pinos de 3,3V que são a saída de um 
regulador de voltagem. Esses pinos podem ser usados para fornecer 
energia a componentes externos.
	GND: é um pino terra da placa do ESP8266 NodeMCU.
	Os pinos I2C: são usados para conectar todos
 os tipos de sensores e periféricos I2C nos projetos que viermos a 
desenvolver. Suporta tanto I2C Master, como I2C Slave.
	Pinos GPIO: são os pinos de entrada e saída 
de propósito geral. O ESP8266 NodeMCU tem 17 pinos GPIO que podem ser 
atribuídos a várias funções, de forma programática, como I2C, I2S, UART,
 PWM, controle remoto infravermelho, luz de LED e botão.
	Canal ADC: é o conversor analógico-digital (ADC) do NodeMCU.
	Pinos UART (universal asynchronous receiver transmitter):
 ESP8266 NodeMCU tem 2 interfaces UART, ou seja, UART0 e UART1, que 
fornecem comunicação assíncrona (RS232 e RS485), e pode se comunicar em 
até 4,5Mbps. UART0 (pinos TXD0, RXD0, RST0 e CTS0) pode ser usado para 
comunicação.
	Pinos SPI: O ESP8266 possui dois pinos SPIs 
(SPI e HSPI) nos modos escravo e mestre. Essas SPIs também oferecem 
suporte aos seguintes recursos de SPI de uso geral:
						
					
				
			
			
			
			
			
				
					
						
							
								
									
										
											
												4 modos de temporização da transferência do formato SPI.
											
										
									
								
								
									
										
											
												Até 80MHz e os relógios divididos de 80MHz.
											
										
									
								
								
									
										
											
												Até 64 bytes FIFO.
											
										
									
								
							
						
					
				
			
			
			
			
			
			
				
					
						
								Pinos SDIO: O ESP8266 tem a Interface de entrada e saída digital segura (SDIO) que é usada para fazer interface direta com cartões SD.
	Pinos PWM: a placa possui 4 canais de modulação por largura de pulso (PWM) que pode ser programada para acionar motores digitais e LEDs.
	Pinos de controle: são usados para controlar o ESP8266. Esses pinos são:
						
					
				
			
			
			
			
			
				
					
						
							
								
									
										Pino EN
										
											
												O chip ESP8266 é ativado quando o 
pino EN é colocado para ALTO. Quando colocado para BAIXO, o chip 
funciona com a potência mínima.
											
										
									
								
								
									
										Pino RST
										
											
												É usado para “resetar” o chip ESP8266.
											
										
									
								
								
									
									Pino WAKE
										
											
												É usado para tirar o chip do estado de repouso.
											
										
									
								
							
						
					
				
			
			
			
			
			
			
				
					
						
							PROGRAMAÇÃO DA PLACA NODEMCU
							O firmware do NodeMCU é baseado na linguagem de programação 
LUA. Ele é um código aberto para o ESP8266 WiFi SOC da Espressif e usa 
um sistema de arquivos SPIFFS que está na memória flash (ver 
nodemcu/nodemcu-firmware, 2021). 
							É interessante ver que podemos programar no NodeMCU usando as seguintes linguagens:
						
					
				
			
			
			
			
			
			
				
					
						
							
								
								Clique nas setas para ver o conteúdo.
								Objeto com interação.
							
						
					
					
						
							
								
								
									
									
										
											
												C
												Podemos utilizar os ambientes de desenvolvimento Espressif SDK e Arduino.
											
										
									
									
										
											
												Python
												Trabalhamos com MicroPython.
											
										
									
									
										
											
												Lua
												Utilizamos o NodeMCU ou o LuaNode para programar.
Basic
												Para implementarmos, usamos os ambientes Esp8266 BASIC, ou ZBasic para ESP8266.
											
										
									
									
										
											
												JavaScript
												Utilizamos o Espruino para programar.
											
										
									
								
								
								
								
								
							
						
					
				
			
			
			
			
			
			
			
			
				
					
						
						 Especificamente, abordaremos com mais profundidade como 
utilizar o Python para desenvolver projetos com o NodeMCU. Para isso, 
precisamos analisar o MicroPython. Trata-se de uma reimplementação da 
linguagem de programação Python voltada para microcontroladores e 
sistemas embarcados, como ESP32 ou ESP8266 (MICROPYTHON, 2021). 
						 Programar em MicroPython é bem parecido com a programação em
 Python com poucas exceções. Isso ocorre porque os microcontroladores e 
sistemas embarcados são muito mais limitados que os computadores, por 
isso o MicroPython não vem com a biblioteca usual completa por padrão.
						 O primeiro passo é baixar a IDE para trabalharmos. No nosso 
caso, faremos isso utilizando o Windows. Vamos usar a IDE ESPlorer. 
Antes do processo de instalação é necessário instalar o Java. 
						 Agora, para baixar a IDE ESPlorer, precisamos acessar o site
 da IDE (ESP8266, 2021). Em seguida, devemos seguir os passos abaixo:
						
					
				
				
					
						
							
								
								Clique nas informações a seguir.
								Clique nas informações a seguir.
							
						
					
					
						
							Passo 01
							
								Descompactar o arquivo “ESPlorer.zip”.
							
						
						
							Passo 02
							
								Entrar na pasta ESPlorer e executar o arquivo Java executável “ESPlorer.jar”.
							
						
					
				
			
			
			
			
			
			
				
					
						
							Agora, vai abrir a IDE ESPlorer, conforme a figura a seguir.
							
								
									
Fonte: Captura de tela do programa IDE ESPlorer
									IDE ESPlorer. 
								
							
							Na figura, o trecho que marcamos com (1) é usado para escrevermos o código e o trecho marcado em (2) é a configuração da Baud_rate que é a taxa na qual as informações são transferidas em um canal de comunicação.
							Ainda explorando o ESPlorer, precisamos ir na aba Settings e selecionar:
							Firmware -> MicroPython -> Script
							Mostramos como fazer esse procedimento na figura seguinte.
							
								
									
Fonte: Captura de tela do programa IDE ESPlorer
									Selecionar o MicroPython.
								
							
							Agora, vamos programar. 
							O nosso objetivo é desenvolver uma aplicação que envia um sinal para o pino 5, conforme apresentamos na figura a seguir.
							
								
									
Fonte: Captura de tela do IDE ESPlorer
									Programando com MicroPython.
								
							
							Depois de escrever o código, precisamos salvá-lo com a extensão “.py”.
							Agora, vamos entender melhor o que nosso código faz:
								Na linha 1, importamos a biblioteca “time” que usamos para que o sistema dê intervalos para enviar o sinal para o NodeMCU.
	Na linha 2, importamos a biblioteca “machine” que usamos para interagir com o NodeMCU.
	Na linha 3, criamos um pino de saída para o pino 5.
	Na linha 4, temos um loop contínuo que controla o trecho que enviará um sinal de “liga” e “desliga” para o pino de saída.
	Na linha 5, enviamos um sinal de “ligar” para o pino.
	Na linha 6, colocamos o sistema em modo de espera.
	Na linha 7, enviamos um sinal de “desligar” para o pino.
	E, finalmente, na linha 8, colocamos o sistema em modo de espera novamente.
							Agora, basta clicar no botão “Send to ESP” e o programa será enviado para o NodeMCU.
						
					
				
			
			
			
			
			
			
				
					
						
							
								
									
			
										
											
										
									
								
							
							
								Programação da placa NodeMCU
								
								O especialista Sérgio Assunção Monteiro aborda neste vídeo a instalação, configuração e programação da placa NodeMCU.
			
							
			
							
								
									
								
							
						
					
			
					
					
						
							
								
							
			
							
								
							
			
							
								
								
							
			
						
					
				
			
			
			
			
				
					
						
							Verificando o aprendizado
						
						
							
							
								
									
										
										
										
									
								
							
							
								ATENÇÃO!
								
								
									Para desbloquear o próximo módulo, é necessário que você responda corretamente a uma das seguintes questões:
								
							
						
						
						
							
								1.
 O NodeMCU é uma placa de código aberto que, semelhante ao Arduino, é 
muito popular. Algumas das razões para essa popularidade são ter baixo 
custo e possuir código aberto, o que facilita o desenvolvimento de 
aplicações. A respeito do NodeMCU, selecione a opção correta.
É uma extensão do Arduino, visto que suas características técnicas são uma adaptação do projeto do Arduino.
Pode ser programado utilizando a IDE do Arduino, desde que seja feita a instalação do software da placa.
O fato de o NodeMCU ser baseado no microprocessador ESP8266 facilita o desenvolvimento de aplicações para WEB. 
Apesar
 de ser uma placa de código aberto, o fato é que ele não é recomendado 
para aplicações comerciais, uma vez que o suporte técnico não é 
garantido por um fabricante.
Projetos
 desenvolvidos em NodeMCU já são, por si mesmos, considerados seguros, 
uma vez que essa característica já está embutida na placa.
Tentar novamenteResponder
Comentário
2.
 Desenvolver projetos no NodeMCU tem muitas similaridades com o 
desenvolvimento de projetos no Arduino. No entanto, existem diferenças 
que são importantes de serem observadas, para que o projeto funcione 
corretamente e não prejudique nenhum componente. Em relação às 
especificidades de um projeto NodeMCU, selecione a opção correta.
Os
 projetos que já vêm com a instalação padrão da IDE do Arduino podem ser
 utilizados para o NodeMCU, desde que sejam feitos ajustes em relação 
aos pinos.
Os pinos de uso geral, chamados de GPIO, devem operar na tensão de 5V, caso contrário os componentes podem sofrer danos.
A
 linguagem de programação mais adequada para desenvolver projetos no 
NodeMCU é a Python, uma vez que já traz diversos recursos que facilitam a
 integração do sistema com outros componentes.
A
 placa do NodeMCU permite trabalhar com sinais digitais. Caso se deseje 
criar um projeto com entrada analógica, basta usar um componente externo
 para fazer a conversão do sinal analógico para digital.
Projetos
 desenvolvidos em NodeMCU já são, por si mesmos, considerados seguros, 
uma vez que essa característica já está embutida na placa.
Tentar novamenteResponder
Comentário
Gabarito1.
 O NodeMCU é uma placa de código aberto que, semelhante ao Arduino, é 
muito popular. Algumas das razões para essa popularidade são ter baixo 
custo e possuir código aberto, o que facilita o desenvolvimento de 
aplicações. A respeito do NodeMCU, selecione a opção correta.
						
							A alternativa "B " está correta.
							
							A programação do NodeMCU pode ser feita diretamente na IDE do 
Arduino. Essa facilidade é uma das vantagens de desenvolver projetos com
 o NodeMCU, uma vez que o Arduino é uma placa bastante popular. Antes de
 programar, no entanto, é necessário fazer a instalação do software do 
NodeMCU.
						
					
2. Desenvolver 
projetos no NodeMCU tem muitas similaridades com o desenvolvimento de 
projetos no Arduino. No entanto, existem diferenças que são importantes 
de serem observadas, para que o projeto funcione corretamente e não 
prejudique nenhum componente. Em relação às especificidades de um 
projeto NodeMCU, selecione a opção correta.
						
							A alternativa "A " está correta.
							
							A instalação padrão da IDE do Arduino já traz um conjunto de 
exemplos de projetos que podem ser utilizados pelo NodeMCU, desde
que 
sejam feitas as adaptações dos pinos.
						
					
							
						
						
						
							
								O conteúdo ainda não acabou.
								
								
									Clique
												aqui e retorne para saber como desbloquear.
								
							
						
					
				
			
 
 
 
 
 Avalie este módulo:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
			
			
				
					
						
							
								
									
									
									
									
									
								
							
						
						
							Você chegou ao final do módulo 2!
							E, com isso:
							 Lorem ipsum dolor sit amet,
								consectetur adipiscing elit.
							 Retornar para o
								início do módulo 2
							
						
					
				
			
		
			
			
		
			
			
				
					
						
							MÓDULO 3
							
						
						
							
						
						
							Descrever as etapas necessárias para instalação, configuração e desenvolvimento de uma aplicação na plataforma Raspberry Pi
						
					
				
			
			
			
			
			
				
					
						INSTALAÇÃO DA RASPBERRY PI
						O Raspberry Pi é um computador de baixo custo do tamanho de um 
cartão de crédito que se conecta a um monitor de computador ou TV e usa 
um teclado e mouse padrão (ESP8266, 2021). Nele, podemos programar em 
linguagens como Scratch e Python e fazer quase as mesmas atividades que 
um computador desktop comum, como navegar na Internet, assistir a 
vídeos, criar planilhas, editar texto e jogar.
					
					
						
							
								
								
									
										
											
										
									
									
										
											
												O Raspberry Pi foi desenvolvido pela Raspberry Pi 
Foundation, que é uma organização de caridade com sede no Reino Unido 
(ver Raspberry Pi, About us, 2021). 
											
										
									
								
			
								
								
									
										
									
									
										
									
									
										
									
								
			
								
								
									
										
											
												Ele foi projetado inicialmente com fins pedagógicos, para
 que as pessoas tivessem um ambiente acessível – em termos econômicos ‒ 
para aprender a programar. 
											
										
									
									
										
											
										
									
								
			
								
									
										
									
									
										
									
									
										
									
								
							
						
					
				
			
			
			
			
			
			
				
					
						
							Atualmente, a comunidade em torno do Raspberry Pi possui um 
grande número de seguidores, isso, em especial, se deve ao fato de que 
as distribuições do sistema operacional são uma versão do Linux, além de
 seu tamanho compacto e pinos de entrada/saída de uso geral (GPIO), como
 em outras placas já bem conhecidas no mercado, como o NodeMCU . Além 
disso, o Raspberry Pi oferece recursos que permitem desenvolver 
aplicações que interajam com o mundo exterior, por meio de dispositivos 
eletrônicos, inclusive para IoT. 
						
					
				
			
			
			
			
			
				
					
						
							
								
								
							
						
			
						
							
								
									Comentário
									Existem muitas aplicações 
disponíveis nas mais diversas áreas, desde as de entretenimento até as 
científicas com impacto social, como estações meteorológicas, e mesmo 
inusitadas, como as casas de pássaros com câmeras infravermelhas que 
transmitem informações sobre populações de pássaros pela Internet 
(Raspberry Pi. Infrared Bird Box, 2021). 
								
							
						
					
				
			
			
			
			
			
				
					
						
							Instalação
							Agora, trataremos da instalação de software no Raspberry Pi.
							No site oficial, a sugestão é que os iniciantes comecem com o NOOBS (Novo Programa Fora da Caixa – New Software Out of Box), que vem com a opção de sistema operacional nas distribuições padrão.
						
					
				
			
			
			
			
			
				
					
						
							O Raspberry Pi OS é a distribuição recomendada para uso no dia a dia. 
						
					
				
			
			
			
			
			
			
				
					
						
							As alternativas em relação a distribuição Raspberry PI são: 
LibreELEC, ou Arch Linux (ver Raspberry Pi, Documentation, Instalation, 
2021).
							Em primeiro lugar, fazer download no site do Raspberry Pi 
(raspberrypi.org/downloads). Mais detalhes sobre a instalação do NOOBS e
 outras informações podem ser encontradas em Raspberry Pi, 
Documentation, Instalation, NOOBS, 2021.
							Depois, iniciamos a instalação, conforme podemos ver na figura seguinte.
							
								
									
Fonte: Captura de tela do programa NOOBs.
									Instalação NOOBS.
								
							
							O NOOBS é um gerenciador de instalação de sistema operacional 
para o Raspberry Pi. Além do download, podemos adquirir um cartão SD 
pré-instalado em alguns dos distribuidores do NOOBS para o Raspberry Pi,
 como Pimoroni, Adafruit e Pi Hut. 
						
					
				
			
			
			
				
					
						
							
								
							
						
						
							
								
									Atenção
									No caso da instalação em um cartão 
SD, depois de fazer download do arquivo compactado NOOBS, vamos precisar
 copiar o conteúdo para um cartão SD formatado em um computador. 
								
							
						
					
				
			
			
			
				
					
						
							Para cada sistema operacional, a instalação do NOOBS precisa de um tratamento específico: 
						
					
				
				
					
						
							
								
								Clique nas informações a seguir.
								Clique nas informações a seguir.
							
						
					
					
						
							Windows
						
			
						
							Mac OS
						
			
						
							Linux
						
					
				
				
					
						
							
								Windows
								A recomendação oficial da Raspberry é formatar o cartão SD 
usando o software SD Association Formatting, que pode ser baixado do 
site da sdcard (SDCARD, 2021) e onde também podemos obter as instruções 
de uso da ferramenta.
							
			
							
								Mac OS
								O software SD Association Formatting também está disponível 
para usuários de Mac. Além dele, o aplicativo OS X Disk Utility padrão 
também é capaz de formatar todo o disco.
							
			
							
								Linux
								Nesse caso, a recomendação oficial é usar o aplicativo GPparted.
							
						
					
				
			
			
			
			
			
			
				
					
						
							O NOOBS inclui os seguintes sistemas operacionais:
								Raspberry Pi OS.
	LibreELEC.
	OSMC.
	Recalbox.
	Lakka.
	RISC OS.
	Screenly OSE.
	Windows 10 IoT Core.
	TLXOS.
							O Raspberry Pi OS já vem instalado por padrão no NOOBS, desde a versão v1.3.10. O NOOBS está disponível em duas formas:
						
					
				
			
			
			
			
			
				
					
						
							
								
									
										Offline e instalação em rede
										
											
												Indicada para fazer a instalação a 
partir do cartão SD enquanto estiver offline e fazer a instalação com 
uma conexão com a internet do NOOBS Lite, ou de qualquer outro sistema 
operacional.
											
										
									
								
								
									
									Apenas instalação em rede
										
											
												Indicada para baixar as versões mais recentes disponíveis.
											
										
									
								
							
						
					
				
			
			
			
			
			
			
			
			
				
					
						
							Mais informações sobre o NOOBS, como códigos-fonte, podem ser obtidas no site oficial do NOOBS no repositório do GitHub.
							Além da opção do NOOBS, ainda há mais duas opções para fazer a instalação de sistema operacional no Raspberry Pi, que são:
Clique nas informações a seguir.
								Clique nas informações a seguir.
							
						
					
					
						
							Instalar a partir de imagens
						
			
						
							SD Cards
						
					
				
				
					
						
							
								Instalar a partir de imagens
								O Raspberry Pi disponibiliza uma ferramenta gráfica para 
gravação em cartão SD que funciona no Mac OS, Ubuntu 18.04 e Windows. 
Ela baixa a imagem do sistema e faz a instalação automaticamente no 
cartão SD (RASPBERRYPI, 2021).
							
			
							
								SD Cards
								Traz informações de como fazer a instalação do Raspberry Pi 
OS com cartões SD de diferentes especificações. Essa opção não é 
recomendada para usuários iniciantes (RASPBERRYPI, 2021).
							
						
					
				
			
			
			
			
			
			
				
					
						
							CONFIGURAÇÃO DA RASPBERRY PI
							O Raspberry Pi possui diversos recursos que são úteis para 
desenvolver aplicações com casos de uso. Na página oficial do Raspberry,
 temos uma descrição detalhada dos itens que precisamos configurar. 
							A seguir, apresentamos uma breve descrição desses itens:
						
					
				
			
			
			
			
			
				
					
						
								raspi-config: é utilizado para habilitar recursos como a câmera e alterar configurações como o layout de teclado, por exemplo.
	config.txt: é o arquivo de configuração do Raspberry Pi.
	Rede TCP/IP: é utilizado para configurar a pilha de rede TCP/IP no Raspberry Pi.
	Conexão a uma rede sem fio e Ponto de acesso sem fio:
 é utilizada para configurar o Raspberry Pi para se conectar a uma rede 
sem fio por meio da conectividade sem fio embutida nas versões do 
Raspberry Pi 4 ou Raspberry Pi 3.
	proxy: usado para configurar o Raspberry Pi para acessar a internet por meio de um servidor proxy.
	HDMI Config: faz a configuração do dispositivo HDMI.
	Editor de configuração de tela: configura a resolução, frequência e orientação do dispositivo de exibição do editor gráfico.
	Configuração de áudio: alterna a saída de 
áudio entre HDMI e o conector de 3,5mm. O Raspberry Pi tem até três 
modos de saída de áudio: HDMI 1 e 2, e um conector de fone de ouvido. 
Podemos alternar entre esses modos a qualquer momento.
	Configuração da câmera: é usado para instalar e configurar a placa da câmera Raspberry Pi.
	Configuração de armazenamento externo: faz a montagem e configuração de armazenamento externo em um Raspberry Pi.
	Localização: faz a configuração do Raspberry Pi para funcionar no idioma e fuso horário local.
	Configuração de pinos padrão: é usado para 
alterar os estados dos pinos padrão. Segundo a própria fonte oficial 
(RASPBERRYPI, 2021), deve ser usada apenas por usuários experientes.
	Configuração de árvores de dispositivos: o 
kernel e o firmware do Raspberry Pi usam uma árvore de dispositivos para
 endereçar o hardware conectado à placa. Essas Árvores de Dispositivos 
podem incluir parâmetros que fornecem um grau de controle sobre alguns 
recursos integrados.
	Linha de comando do kernel: é definida em 
um arquivo na partição de inicialização, chamado cmdline.txt. Este é um 
arquivo de texto que pode ser editado em qualquer editor de texto.
	Configuração UART (Universal Asynchronous Receiver Transmitter): existem dois tipos de UART disponíveis no Raspberry Pi: PL011 e mini UART. Ambos são de 3,3V.
	Ícones de aviso de firmware: descrição dos ícones de aviso exibidos se o firmware detectar problemas.
	Códigos de flash de aviso de LED: são 
mostrados se houver falhas ao inicializar ou desligar o Raspberry PI. 
Sob certas circunstâncias, o firmware do Raspberry Pi exibirá um ícone 
de aviso no visor para indicar um problema. Existem três ícones que 
podem ser exibidos:
	Aviso de subtensão: se a fonte de alimentação do Raspberry Pi cair abaixo de 4,63V.
	Aviso de temperatura excessiva: se a temperatura estiver entre 80°C e 85°C.
	Temperatura superexcessiva: aviso de temperatura acima de 85°C.
									Protegendo seu Raspberry Pi: trata de 
algumas recomendações para tornar o Raspberry Pi mais seguro, como 
alteração da senha padrão, alteração do nome de usuário, configurar o 
comando “sudo” para exigir uma senha, certificar-se de ter as correções 
de segurança atualizadas, aperfeiçoar a segurança SSH, usar a 
autenticação baseada em chave e instalar um firewall.
	Protetor de tela: quando o Raspberry Pi OS é
 executado em uma área de trabalho gráfica, ele vai deixar a tela em 
branco após 10 minutos sem intervenção do usuário, por exemplo, sem 
movimentos do mouse, ou pressionamento de alguma tecla.
	A pasta de inicialização: na instalação 
básica do Raspberry Pi OS, os arquivos de inicialização são armazenados 
na primeira partição do cartão SD, que é formatado com o sistema de 
arquivos FAT. Isso significa que ele pode ser lido em dispositivos 
Windows, macOS e Linux. Quando o Raspberry Pi é inicializado, ele 
carrega vários arquivos da pasta de inicialização para iniciar o 
processador e, em seguida, o kernel do Linux.
	Sistema de arquivos de rede (NFS): permite 
que possamos compartilhar um diretório localizado em um computador em 
rede com outros computadores, ou dispositivos na mesma rede. O 
computador onde o diretório está localizado é chamado de servidor e os 
computadores ou dispositivos que se conectam a esse servidor são 
chamados de clientes.
						
						
					
				
			
			
			
			
			
			
				
					
						
							Apesar de ser uma quantidade extensa de recursos que precisam 
ser configurados, normalmente não é difícil, em especial, porque a 
comunidade do Raspberry Pi tem muitas dicas de como fazer esse processo.
 
							Na próxima seção, apresentaremos um simulador que podemos 
instalar em nosso computador sem a necessidade de utilizar uma placa 
Raspberry.
							PROGRAMAÇÃO DO RASPBERRY PI
							Um dos pontos mais fortes do Raspberry Pi, além do baixo custo
 e dos recursos que oferece para interagir com outros componentes 
externos, é oferecer a possibilidade de desenvolver aplicações com a 
linguagem Python por meio do MicroPython.
							No caso do Raspberry Pi, temos a possibilidade de usarmos um 
simulador para podermos programar e testar nossas aplicações sem a 
necessidade de utilizar uma placa. O simulador que vamos usar é o QEMU (2021), o qual é um emulador e virtualizador de máquina genérico e de código aberto.
						
					
				
			
			
			
			
			
			
			
			
				
				
					
						
							
								
								Clique nas informações a seguir.
								Clique nas informações a seguir.
							
						
					
					
						
							Etapa 01
						
			
						
							Etapa 02
						
			
						
							Etapa 03
						
						
						
							Etapa 04
						
			
						
							Etapa 05
						
					
				
				
					
						
							
								Etapa 01
								O primeiro passo é baixar o QEMU. 
							
			
							
								Etapa 02
								Para isso, basta acessarmos o endereço oficial (QEMU, 2021). 
							
			
							
								Etapa 03
								Escolhemos a versão para o Windows. 
							
							
							
								Etapa 04
								Depois, basta descompactar o arquivo e entrar na pasta “qemu”. 
							
			
							
								Etapa 05
								Devemos selecionar o arquivo “run.bat” e pressionar a tecla “Enter”. 
							
						
					
				
			
			
			
			
			
			
				
					
						
							Feito isso, vai aparecer a tela de configuração, conforme podemos ver na figura a seguir.
							
								
									
Fonte: captura de tela do emulador QEMU.
									Tela inicial de configuração.
								
							
							Nessa tela, podemos tratar de todos os itens de configuração 
que apresentamos na seção anterior, simplesmente selecionando um item 
com as teclas “page Up” e “page Down” e pressionando “Enter”. Para sair dessa tela, basta pressionar a tecla “Tab” e, em seguida, selecionar a opção “Finish” e pressionar “Enter”.
							Agora, precisamos esperar um pouco e, em seguida, vai abrir um terminal.
							Devemos digitar “startx” (sem as aspas) e pressionar a tecla “Enter” para ir para o modo gráfico.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando