3 - Desenvolvimento de Aplicações Usando Plataformas de Middleware para Iot em Python

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 65

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 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:

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.

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.

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

A função “loop” é executada enquanto o sistema estiver funcionando.

A linha com o comando “analogWrite(led, brightness);” define o brilho do pino 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:

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

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
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.

A) O baixo custo ajudou bastante o Arduino a se popularizar, mesmo com o projeto da placa
sendo fechado.

B) 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.

C) O ambiente de programação do Arduino habilita que os desenvolvedores possam


programar, depurar e carregar as aplicações diretamente para a placa.

D) Por ser uma linguagem de programação essencialmente estruturada, baseada em C, os


programadores têm muita facilidade de desenvolver projetos no Arduino.

E) Um dos principais motivos do sucesso do Arduino é o seu hardware proprietário que garante
a qualidade e extensão de seus produtos.

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) 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.

B) A IDE Arduino viabiliza a implementação, testes e transferência de programas do


computador para a placa Arduino.
C) 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.

D) 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.

E) Os shields são elementos lógicos de programação com fins específicos que podem ser
adicionados a projetos no Arduino.

GABARITO

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.

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.
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:

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:

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.

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
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.

A) É uma extensão do Arduino, visto que suas características técnicas são uma adaptação do
projeto do Arduino.

B) Pode ser programado utilizando a IDE do Arduino, desde que seja feita a instalação do
software da placa.

C) O fato de o NodeMCU ser baseado no microprocessador ESP8266 facilita o


desenvolvimento de aplicações para WEB.

D) 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.

E) Projetos desenvolvidos em NodeMCU já são, por si mesmos, considerados seguros, uma


vez que essa característica já está embutida na placa.

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) 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.

B) Os pinos de uso geral, chamados de GPIO, devem operar na tensão de 5V, caso contrário
os componentes podem sofrer danos.

C) 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.
D) 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.

E) Projetos desenvolvidos em NodeMCU já são, por si mesmos, considerados seguros, uma


vez que essa característica já está embutida na placa.

GABARITO

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.

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.

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:

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.

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.

Feito isso, vai aparecer a tela no modo gráfico, conforme podemos ver na figura a seguir.
Fonte: captura de tela do emulador QEMU.
 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

python

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.

Fonte: captura de tela do emulador QEMU.


 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:

a=0
for i in range(1, 10):
a = a + i
print('A soma eh:', 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.

Fonte: captura de tela do emulador QEMU.


 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.

Fonte: captura de tela do emulador QEMU.


 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.
Fonte: captura de tela do emulador QEMU.
 Programa no editor de texto.

Depois de escrever o programa, precisamos salvá-lo, conforme podemos ver na figura a seguir.

Fonte: captura de tela do emulador QEMU.


 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.


Fonte: captura de tela do emulador QEMU.
 Executar o programa.

Por fim, podemos ver o resultado da execução do programa na figura seguinte.

Fonte: captura de tela do emulador QEMU.


 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_arquivo.py

Conforme podemos ver na figura a seguir.


Fonte: captura de tela do emulador QEMU.
 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

1. O RASPBERRY PI É MUITO CONHECIDO NO DESENVOLVIMENTO DE


APLICAÇÕES PARA INTERNET DAS COISAS. INICIALMENTE, ELE FOI
PROJETADO COM FINS PEDAGÓGICOS, MAS RAPIDAMENTE EVOLUIU
PARA APLICAÇÕES COMERCIAIS. A RESPEITO DO RASPBERRY PI,
SELECIONE A OPÇÃO CORRETA.

A) O Raspberry Pi é muito conhecido no desenvolvimento de aplicações para Internet das


Coisas. Inicialmente, ele foi projetado com fins pedagógicos, mas rapidamente evoluiu para
aplicações comerciais.

B) Como o nome do Raspberry Pi sugere, ele só pode ser programado utilizando a linguagem
Python que já vem com seu kit de instalação.

C) Trata-se de um projeto de engenharia muito bem-sucedido. Isso se deve, em especial, por


possuir um código proprietário que garante a qualidade das suas funcionalidades.

D) É um projeto de código aberto que possui mais de uma opção para fazer a instalação. Além
disso, pode ser programado em diversas linguagens.

E) O Raspberry Pi possui uma comunidade ativa, porém é restrita ao desenvolvimento de


aplicações acadêmicas, uma vez que o suporte comercial só pode ser feito pelo fabricante.
2. UM DOS ASPECTOS QUE TORNOU O RASPBERRY PI UMA
INTERESSANTE ESCOLHA PARA DESENVOLVER PROJETOS FOI A
FACILIDADE DE INSTALÁ-LO. A INSTALAÇÃO DE UM SISTEMA PODE
SER UM PROCESSO COMPLEXO QUE DEMANDE BASTANTE ATENÇÃO,
POIS É NECESSÁRIO FAZER DIVERSAS CONFIGURAÇÕES. A RESPEITO
DOS PROCESSOS DE INSTALAÇÃO E CONFIGURAÇÃO DO RASPBERRY
PI, SELECIONE A OPÇÃO CORRETA.

A) O Raspberry pode ser instalado em múltiplas plataformas, ou seja, Windows, Mac OS e


Linux. Além disso, existem opções de instalações que são mais adequadas para usuários
iniciantes e outras para usuários avançados.

B) Antes de iniciar o processo de instalação do Raspberry Pi, é necessário verificar se as


aplicações são para uso acadêmico, ou comercial, pois no caso de aplicações comerciais é
necessário adquirir uma licença específica.

C) A linguagem de programação nativa do Raspberry Pi é o Java. Isso é uma grande


vantagem, pois é bem conhecida a variedade de contextos em que o Java pode ser aplicado,
ampliando, assim, as possibilidades dos projetos desenvolvidos para o Raspberry Pi.

D) A placa do Raspberry Pi é, aproximadamente, do tamanho de uma placa de um computador


pessoal e, semelhante a essa, pode ser conectada a um monitor de computador, ou de um
aparelho de televisão com conector HDMI.

E) Uma das vantagens de desenvolver com o Raspberry Pi é abstrair das especificidades dos
pinos, uma vez que são de uso geral e o próprio sistema faz o endereçamento deles sem a
necessidade de referenciá-los no código, como no caso do Arduino, por exemplo.

GABARITO

1. O Raspberry Pi é muito conhecido no desenvolvimento de aplicações para Internet


das Coisas. Inicialmente, ele foi projetado com fins pedagógicos, mas rapidamente
evoluiu para aplicações comerciais. A respeito do Raspberry Pi, selecione a opção
correta.

A alternativa "D " está correta.


O Raspberry Pi é um projeto de código aberto que, inicialmente, foi criado para facilitar o
aprendizado do desenvolvimento de software por meio de uma plataforma de baixo custo em
relação aos computadores tradicionais. Com o tempo, evoluiu para aplicações em diversas
áreas, inclusive comerciais. Isso ocorreu, em especial, pelo engajamento da comunidade de
programação.

2. Um dos aspectos que tornou o Raspberry Pi uma interessante escolha para


desenvolver projetos foi a facilidade de instalá-lo. A instalação de um sistema pode ser
um processo complexo que demande bastante atenção, pois é necessário fazer diversas
configurações. A respeito dos processos de instalação e configuração do Raspberry Pi,
selecione a opção correta.

A alternativa "A " está correta.

O Raspberry Pi tem suporte para ser instalado no Windows, Mac OS e Linux. Na página oficial,
são dadas algumas opções que são mais adequadas para o perfil de conhecimento do usuário
e do hardware que estiver disponível.

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.

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

Você também pode gostar