Buscar

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

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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:
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 desenvolverprojetos 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.
 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. 
 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:
 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
/*/* 
 AnalogReadSerial AnalogReadSerial 
 Reads an analog input on pin 0, prints the result to the Serial Monitor. 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). 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. 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. This example code is in the public domain. 
 http://www.arduino.cc/en/Tutorial/AnalogReadSerial http://www.arduino.cc/en/Tutorial/AnalogReadSerial 
*/*/ 
// the setup routine runs once when you press reset:// the setup routine runs once when you press reset: 
voidvoid setupsetup(()) {{ 
 // initialize serial communication at 9600 bits per second:// initialize serial communication at 9600 bits per second: 
 Serial Serial..beginbegin((96009600));; 
}} 
// the loop routine runs over and over again forever:// the loop routine runs over and over again forever: 
voidvoid looploop(()) {{ 
 // read the input on analog pin 0:// read the input on analog pin 0: 
 intint sensorValue sensorValue == analogReadanalogRead((A0A0));; 
 // print out the value you read:// print out the value you read: 
 Serial Serial..printlnprintln((sensorValuesensorValue));; 
 delaydelay((11));; // delay in between reads for stability// delay in between reads for stability 
}}
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:
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
javascript:void(0)
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.
 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.
 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.
 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 Fade 
 This example code is in the public domain. This example code is in the public domain. 
 http://www.arduino.cc/en/Tutorial/Fade http://www.arduino.cc/en/Tutorial/Fade 
*/*/ 
intint led led == 99;; 
intint brightness brightness == 00;; 
intint fadeAmount fadeAmount == 55;; 
voidvoid setupsetup(()) {{ 
 pinModepinMode((ledled,, OUTPUTOUTPUT));; 
}} 
voidvoid looploop(()) {{ 
 analogWriteanalogWrite((ledled,, brightness brightness));; 
 brightness brightness == brightness brightness ++ fadeAmount fadeAmount;; 
 ifif ((brightness brightness <=<= 00 |||| brightness brightness >=>= 255255)) {{ 
 fadeAmount fadeAmount == --fadeAmountfadeAmount;; 
 }} 
 delaydelay((3030));; 
}}
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
ifif ((brightness brightness <=<= 00 |||| brightness brightness >=>= 255255)) {{ 
 fadeAmount fadeAmount == --fadeAmountfadeAmount;; 
}} 
 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.
 Verificar o programa.
Com tudo funcionando corretamente, precisamos carregar o programa para a placa Arduino,
conforme mostramos na figura seguinte.
 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çãocom 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 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:
intint led1 led1 == 99;; 
voidvoid setupsetup(()){{ 
 Serial Serial..beginbegin((96009600));; 
 pinModepinMode((led1led1,, OUTPUTOUTPUT));; 
}} 
voidvoid looploop(()){{ 
 charchar leitura leitura == Serial Serial..readread(());; 
 ifif((leitura leitura ==== '1''1')){{ 
 digitalWritedigitalWrite((led1led1,, HIGHHIGH));; 
 }} 
 elseelse ifif((leitura leitura ==== '0''0')){{ 
 digitalWritedigitalWrite((led1led1,, LOWLOW));; 
 }} 
}} 
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
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.
 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:
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.
 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.
 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.
 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.
 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, apresentamoscomo fazer isso.
 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 #define LEDLED 22 
voidvoid setupsetup(()) {{ 
 pinModepinMode((LEDLED,, OUTPUTOUTPUT));; 
}} 
voidvoid looploop(()) {{ 
 digitalWritedigitalWrite((LEDLED,, HIGHHIGH));; // turn the LED on (HIGH is the voltage level)// turn the LED on (HIGH is the voltage level) 
 delaydelay((10001000));; // wait for a second// wait for a second 
 digitalWritedigitalWrite((LEDLED,, LOWLOW));; // turn the LED off by making the voltage LOW// turn the LED off by making the voltage LOW 
 delaydelay((10001000));; // wait for a second// 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.
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:
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:
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.
 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
javascript:void(0)
javascript:void(0)
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.
 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.
 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
MÓDULO 3
 Descrever as etapas necessárias para instalação, configuração e desenvolvimentode
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.
 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:
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:
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.
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.
 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.
Feito isso, vai aparecer a tela no modo gráfico, conforme podemos ver na figura a seguir.
 Simulador Raspberry Pi.
Como podemos ver na figura, temos acesso a alguns aplicativos que já vem pré-instalados.
Nosso objetivo aqui é desenvolver uma aplicação Python nesse ambiente.
Vamos fazer isso de três formas distintas:
Programar diretamente no terminal
Utilizar o aplicativo IDLE
Por meio de um editor de texto e terminal de comandos
Vamos analisar cada uma dessas formas.
Programar diretamente no terminal
Em primeiro lugar, precisamos abrir um terminal. Para isso, selecionamos o ícone LXTerminal e
pressionamos “Enter’, então será aberto o terminal. Agora, devemos digitar
pythonpython
no terminal e pressionar “Enter”. Com isso, podemos escrever programas diretamente no
terminal.
 EXEMPLO
Podemos implementar o programa para imprimir na tela a famosa frase “Hello World!”,
conforme podemos ver na figura seguinte.
 Terminal.
Agora que implementamos nosso primeiro programa em Python no Raspberry Pi, podemos
continuar a explorar os diversos recursos do Python para desenvolver programas.
Apresentaremos um exemplo para somar os números de 1 a 9. A seguir, temos o código do
nosso programa:
aa==00 
forfor i i inin rangerange((11,, 1010)):: 
 a a == a a ++ i i 
printprint(('A soma eh:''A soma eh:',, a a))
Na linha 1, fazemos a atribuição do valor 0 na variável a.
Na linha 2, implementamos um laço que vai repetir o bloco de comandos de 1 a 9.
Na linha 3, temos o comando que soma os valores das variáveis a com i e atribui o resultado
para a variável a.
Na linha 4, imprimimos o resultado da soma.
Na figura seguinte, podemos ver como fica o programa no Python.
 Programa no Terminal.
Utilizar o aplicativo IDLE
Agora, mostraremos outra forma de programar. Vamos utilizar a aplicação IDLE, conforme
podemos ver na próxima figura.
 Aplicativo IDLE.
Depois de abrir o aplicativo IDLE, vai aparecer um editor de textos, onde podemos escrever
nossos programas.
Vamos implementar o mesmo exemplo que soma os valores de 1 a 9. Podemos ver como fica
o programa na figura seguinte.
 Programa no editor de texto.
Depois de escrever o programa, precisamos salvá-lo, conforme podemos ver na figura a seguir.
 Salvar o programa.
E, agora, precisamos executar o programa. Para isso, basta ir ao menu e selecionar o
caminho:
Run -> Run Module
Conforme podemos ver na próxima figura.
 Executar o programa.
Por fim, podemos ver o resultado da execução do programa na figura seguinte.
 Saída do programa.
Por meio de um editor de texto e terminal de comandos
Vejamos mais uma possibilidade: executar o programa salvo em arquivo no terminal.
Essa opção é uma combinação dos dois casos anteriores. Basta salvar o programa em um
editor de texto com a extensão “.py” e, posteriormente, abrir o terminal com o aplicativo
LXTerminal.
Por fim, precisamos ir ao diretório em que se encontra o nosso programa e digitar:
python nome_do_arquivopython nome_do_arquivo..pypy
Conforme podemos ver na figura a seguir.
 Executar o programa.
Depois de executar o comando “python exemplo01.py”, o resultado será apresentado na linha
de comando do terminal: ‘A soma eh 45’.
PROGRAMAÇÃO DO RASPBERRY PI
No vídeo, o especialista Sérgio Assunção Monteiro discorre sobre instalação, configuração e
programação do Raspberry Pi.
VERIFICANDO O APRENDIZADO
CONCLUSÃO
CONSIDERAÇÕES FINAIS
No decorrer do texto, apresentamos aspectos teóricos e práticos sobre as plataformas Arduino,
NodeMCU e Raspberry Pi. Além disso, mostramos simuladores que nos ajudam a criar e testar
aplicações sem a necessidade de termos à disposição placas dessas plataformas. Isso reduz
nossos custos e nos dá suporte para fortalecermos nosso aprendizado antes de fazer um
investimento na aquisição de hardware.
O entendimento dos aspectos que estão em torno dessas plataformas nos ajuda a extrair
melhores resultados quando partimos para o desenvolvimento de aplicações práticas. Além
disso, vimos a importância da linguagem Python para esse contexto de aplicação. Por se tratar
de uma linguagem de uso geral, o Python aumenta as possibilidades de uso dos programas
que podemos desenvolver e do modo como se integram com outros componentes externos.
O aprendizado em plataformas como o Arduino, NodeMCU e Raspberry Pi abre possibilidades
muito interessantes no desenvolvimento de aplicações de controle de condições ambientais,
big data e, até mesmo, no aprendizado de máquina. Portanto, os benefícios da compreensão e
aplicação dessas plataformas, que já são bem consolidadas tanto no meio acadêmico como no
ambiente comercial, nos ajudam a potencializar soluções práticas com resultados concretos
para solucionar problemas que atingem a sociedade moderna.
 PODCAST
No áudio, o especialista Sérgio Assunção Monteiro aborda a importância das plataformas
Arduino, NodeMCU e Raspberry Pi.AVALIAÇÃO DO TEMA:
REFERÊNCIAS
ARDUINO. [página oficial] Consultado em meio eletrônico em: 2 mar. 2021.
CIRCUITPYTHON. [página oficial] Consultado em meio eletrônico em: 2 mar. 2021.
ESPRESSIF. ESP8266 Technical Reference. Consultado em meio eletrônico em: 2 mar. 2021.
ESP8266. ESPlorer — Integrated Development Environment. Consultado em meio eletrônico
em: 2 mar. 2021.
ESP8266. What is a Raspberry Pi? Consultado em meio eletrônico em: 2 mar. 2021.
GITHUB. nodemcu/nodemcu-firmware. Consultado em meio eletrônico em: 2 mar. 2021.
GITHUB. raspberrypi/noobs. Consultado em meio eletrônico em: 2 mar. 2021.
MICROPYTHON. MicroPython. Consultado em meio eletrônico em: 2 mar. 2021.
NODEMCU. NodeMCU. Consultado em meio eletrônico em: 2 mar. 2021.
PYSERIAL. Welcome to pySerial’s documentation. Copyright 2001-2015, Chris Liechti.
Consultado em meio eletrônico em: 2 mar. 2021.
QEMU. [página oficial] Consultado em meio eletrônico em: 2 mar. 2021.
RASPBERRYPI. [página oficial] Consultado em meio eletrônico em: 2 mar. 2021.
SDCARD. sdcard. Consultado em meio eletrônico em: 2 mar. 2021.
SPYDER. Spyder. Consultado em meio eletrônico em: 2 mar. 2021.
TINKERCAD. [página oficial] Consultado em meio eletrônico em: 2 mar. 2021.
EXPLORE+
Para saber mais sobre os assuntos tratados, pesquise na internet:
O site oficial do Arduino, NodeMCU e Raspberry PI para aprender mais detalhes sobre
instalação, configuração e desenvolvimento em diferentes plataformas, além de ver mais
exemplos de projetos.
O site Fritzing e veja diversos exemplos de projetos do Arduino, NodeMCU e Raspberry
PI.
O site oficial do Python e aprenda mais sobre essa linguagem de programação, que será
muito útil para que você aprenda sobre desenvolvimento de projetos no Arduino,
NodeMCU e Raspberry PI.
CONTEUDISTA
Sérgio Assunção Monteiro
 CURRÍCULO LATTES
javascript:void(0);

Continue navegando