3 - Desenvolvimento de Aplicações Usando Plataformas de Middleware para Iot em Python
3 - Desenvolvimento de Aplicações Usando Plataformas de Middleware para Iot em Python
3 - Desenvolvimento de Aplicações Usando Plataformas de Middleware para Iot em Python
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
MÓDULO 2
MÓDULO 3
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.
MÓDULO 1
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:
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:
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.
O processador.
Memória de acesso aleatório (RAM), que funciona de modo semelhante a RAM de computador
tradicional.
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.
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
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 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:
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.
/*
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
Outro ponto muito importante no comentário é que ele nos informa que o código é de domínio
público.
POTENCIÔMETRO
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.
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).
(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.
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.
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.
SHIELDS DE MOTOR
SHIELD ETHERNET
SHIELD WIFI
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
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).
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.
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.
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);
}
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 linha com o comando “pinMode(led, OUTPUT);” estabelece que o pino 9 será uma saída.
6
Os trechos de programa
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
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.
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.
Desse modo, o LED vai acender e passar por níveis de luminosidade que estabelecemos.
BIBLIOTECAS
DICA
Ethernet: com funções para se conectar à internet usando o Arduino Ethernet Shield,
Arduino Ethernet Shield 2 e Arduino Leonardo ETH.
Wire: interface de dois fios (TWI/I2C) para enviar e receber dados em uma rede de
dispositivos ou sensores.
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:
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);
}
}
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:
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.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')
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.
E) Um dos principais motivos do sucesso do Arduino é o seu hardware proprietário que garante
a qualidade e extensão de seus produtos.
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
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.
Fonte: Shutterstock.com
Placa NodeMCU.
A placa do NodeMCU pode ser programada utilizando o Arduino IDE. Ela possui os seguintes
recursos:
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):
Uma entrada analógica para digital com 1024 níveis (10 bits) de resolução.
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.).
PASSO 1
Devemos abrir a IDE do Arduino. Em seguida, ir ao menu e acessar:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
PASSO 2
Agora, devemos selecionar a placa com que vamos trabalhar. Para isso, precisamos ir em
Board Manager e acessar:
PASSO 4
Agora, a placa já está instalada. Para ver a placa instalada, basta abrir:
Feito isso, vamos verificar se a instalação está funcionando corretamente, testando o programa
de piscar do LED.
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.
#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.
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.
Agora, vamos explicar como funciona a pinagem do NodeMCU, conforme podemos ver na
figura seguinte.
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.
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.
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:
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
Pino WAKE
PYTHON
BASIC
JAVASCRIPT
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).
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”.
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.
O nosso objetivo é desenvolver uma aplicação que envia um sinal para o pino 5, conforme
apresentamos na figura a seguir.
Na linha 1, importamos a biblioteca “time” que usamos para que o sistema dê intervalos
para enviar o sinal para o NodeMCU.
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.
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.
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.
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.
GABARITO
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.
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.
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.
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
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.
ATENÇÃO
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
Raspberry Pi OS.
LibreELEC.
OSMC.
Recalbox.
Lakka.
RISC OS.
Screenly OSE.
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:
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.
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:
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
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.
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.
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.
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
ETAPA 02
ETAPA 03
ETAPA 04
Feito isso, vai aparecer a tela de configuração, conforme podemos ver na figura a seguir.
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”.
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.
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
Podemos implementar o programa para imprimir na tela a famosa frase “Hello World!”,
conforme podemos ver na figura seguinte.
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 3, temos o comando que soma os valores das variáveis a com i e atribui o resultado
para a variável a.
Agora, mostraremos outra forma de programar. Vamos utilizar a aplicação IDLE, conforme
podemos ver na próxima figura.
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.
E, agora, precisamos executar o programa. Para isso, basta ir ao menu e selecionar o caminho:
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.
python nome_do_arquivo.py
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
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.
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) 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
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.
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
ARDUINO. [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. What is a Raspberry Pi? 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 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