Você está na página 1de 60

APLIC. DE CLOUD, IOT E INDÚSTRIA 4.

0
EM PYTHON

(ARA0058/5492483)
Prof: Maximiano Correia Martins, D.Sc
Atividade Autônoma Aura Correção
Questão 1:
A Internet das Coisas (do inglês Internet of Things (IoT)) possui diversos protocolos. Cada um desses protocolos tem
características que os tornam mais adequados para tratar determinadas aplicações. Um desses protocolos é o MQTT.
Nesse sentido, selecione a opção que está corretamente relacionada ao protocolo MQTT.

A)É usado principalmente na comunicação máquina-a-máquina (M2M).


B)É aplicado essencialmente para comunicação dos dispositivos.
C)É utilizado essencialmente para comunicação pela Internet.

D)É usado para a comunicação sem fio.


E)Seu uso é feito exclusivamente para a comunicação de dispositivos eletrônicos de alta complexidade que se
conectem a Internet.
Atividade Autônoma Aura Correção
Questão 1:
A Internet das Coisas (do inglês Internet of Things (IoT)) possui diversos protocolos. Cada um desses protocolos tem
características que os tornam mais adequados para tratar determinadas aplicações. Um desses protocolos é o MQTT.
Nesse sentido, selecione a opção que está corretamente relacionada ao protocolo MQTT.

A)É usado principalmente na comunicação máquina-a-máquina (M2M).


B)É aplicado essencialmente para comunicação dos dispositivos.
C)É utilizado essencialmente para comunicação pela Internet.

D)É usado para a comunicação sem fio.


E)Seu uso é feito exclusivamente para a comunicação de dispositivos eletrônicos de alta complexidade que se
conectem a Internet.
Gabarito: A alternativa CORRETA é a letra "A".

Justificativa: MQTT é um protocolo de mensagens públicas projetado para


comunicação máquina-a-máquina (M2M). Foi originalmente desenvolvido pela IBM
e, agora, é um padrão aberto.
Atividade Autônoma Aura

Questão 2:
A Internet das Coisas (do inglês Internet of Things (IoT)) possui diversos protocolos.
Cada um desses protocolos tem características que os tornam mais adequados para tratar
determinadas aplicações. Um desses protocolos é o CoAP. Nesse sentido, selecione a
opção que está corretamente relacionada ao protocolo CoAP.

A) É definida na camada de controle


B) Atua na camada de transporte
C) Está na camada de serviço
D) Trabalha na camada de aplicação
E) É utilizada na camada de apresentação
Gabarito: A alternativa CORRETA é a letra "C".
Justificativa: Na rede inteligente e na rede celular, a camada de serviço é uma camada conceitual
dentro de uma arquitetura de provedor de serviço de rede. CoAP é um protocolo de camada de
serviço que se destina ao uso em dispositivos de Internet com recursos limitados, como nós de rede
de sensores sem fio.
Plano de Aula: 4 ª Aula de Cloud, IoT e IND4.0
Início da aula com debate sobre as “PLATAFORMAS DE MIDDLEWARE E PROTOCOLOS DE
COMUNICAÇÃO PARA IOT”

Nesta aula, serão apresentados conceitos relacionados as plataformas de PLATAFORMAS


DE MIDDLEWARE E PROTOCOLOS DE COMUNICAÇÃO PARA IOT: RESTful HTTP, DDS, AMQP
+
ETAPAS NECESSÁRIAS PARA INSTALAÇÃO, CONFIGURAÇÃO E DESENVOLVIMENTO DE UMA
APLICAÇÃO NA PLATAFORMA ARDUINO
Bibliografia:
[1] Tema "PLATAFORMAS DE MIDDLEWARE E PROTOCOLOS DE
COMUNICAÇÃO PARA IOT", Módulo "PROTOCOLOS DE REDE PARA IOT
MQTT, COAP, XMPP-IOT, RESTFUL HTTP, DDS, AMQP“

[2] de Moraes, T. M.: Avaliação de Desempenho de Protocolos de Comunicação para


Aplicações IoT. Tese (Trabalho de Mestrado) - Universidade Federal de Pernambuco
Centro de Informática. Pernambuco, p.23-40, 2017. Disponível em [
https://repositorio.ufpe.br/bitstream/123456789/35370/1/DISSERTA%C3%87%C3%83O
%20Thays%20Melo%20de%20Moraes.pdf ]. Acesso em: 27/05/2021.

[3] What is DDS? Disponível em [ https://www.dds-foundation.org/what-is-dds-3/ ].


Acesso em: 06/05/2021. Usar o tradutor do chrome.
Situação-problema:
Suponha que a uma empresa que já tem uma cultura de tecnologia, que está conectada na
internet e já utiliza o protocolo RESTful HTTP pretenda utilizar outros protocolos de
rede com o objetivo de incorporar as melhores características de cada um para ampliar
seus serviços. Quais as principais características que devem ser levadas em consideração
para evitar incompatibilidades entre o uso dos protocolos? Quais devem ser as
habilidades técnicas dos profissionais envolvidos neste processo?
Protocolos de comunicação par IOT
Atualmente existem diversos protocolos presentes na camada de aplicação, e em sua maioria,
eles concentram-se em questões acerca da comunicação Máquina a Máquina (M2M).
Al-Fuqaha et al. (2015) relata os cinco protocolos de comunicação mais indicados para a
transmissão de mensagens entre dispositivos IoT.
1. Data DistributionSystem (DDS)
2. Extensible Messaging and Presence Protocol (XMPP)
3. Advanced Message Queuing Protocol (AMQP)
4. Constraint Application Protocol (CoAP)
5. Message Queue Telemetry Transport (MQTT)

Outros autores como Yassein, Shatnawi et al. (2016), Mun, Dinh e


Kwon (2016), Yokotani e Sasaki (2016), incluem em suas pesquisas WebSocket e HTTP,
contudo esses protocolos não são específicos para comunicação de aplicações IoT.
Protocolo AMQP
Advanced Message Queuing Protocol (AMQP) é um protocolo de aplicação
para troca de mensagens.
De acordo com Frigieri, Mazzer e Parreira (2015), o AMQP é um protocolo de
padrão aberto de mensagens de middleware baseado no paradigma de filas
de mensagens orientadas a tópicos, em que produtos escritos para
diferentes plataformas e em diferentes linguagens podem trocar mensagens.
Conforme sua documentação, Standard (2012), o AMQP é um protocolo de
internet aberto para mensagens de negócios.
No padrão AMQP, os produtos de middleware escritos para diferentes
plataformas e em diferentes idiomas podem enviar mensagens de um para
outro (FERNANDES et al., 2013).
Protocolo AMQP
Esse protocolo foi criado em 2003 por John O’Hara no JPMorgan Chase (NAIK, 2017), e atualmente sua
documentação padronizada encontra-se em Organization for the Advancement of Structured Information
Standards (OASIS).

O principal objetivo do AMQP é entregar as mensagens sem perda e fornecer segurança e interoperabilidade
(PONNUSAMY; RAJAGOPALAN, 2018).

Ele define um protocolo de nível de fio binário que permite a troca confiável de mensagens de negócios entre
duas partes, possui uma arquitetura em camadas e a especificação é organizada como um conjunto de partes
que reflete essa arquitetura (STANDARD, 2012).
PROTOCOLO AMQP
AMQP é um protocolo da camada de aplicação de padrão aberto que segue o
paradigma publicar-assinar, conforme definido pelo OASIS, 2012.
Ele é projetado para redes orientadas a mensagens e tem suporte para arquitetura
de publicador/assinante.
Ele faz uso do TCP como protocolo de transporte para fornecer comunicação
confiável.
Além disso, para fornecer QoS(Quality of Service), garante três níveis de entrega,
(Protocols and Interoperability, 2021):

O QoS (Quality of Service ou Qualidade de Serviço) trata-se de um conjunto de tecnologias funcionando em


uma rede para assegurar sua capacidade de executar tráfego de alta prioridade e aplicativos de forma
totalmente confiável com capacidade de rede limitada
QOS 0: MAIS UMA VEZ
Garante que uma determinada mensagem só seja recebida pelo
assinante no máximo uma vez. Isso significa que a mensagem pode
nunca chegar.
O remetente e o destinatário tentarão entregar a mensagem, mas se
algo falhar e a mensagem não chegar ao seu destino (por exemplo,
devido a uma conexão de rede), a mensagem pode ser perdida.
Esse QoS tem a menor sobrecarga de tráfego de rede e menos carga
para o cliente e o broker e geralmente é útil para dados de telemetria,
em que não importa se alguns dos dados são perdidos.
QOS 1: PELO MENOS UMA VEZ
Garante que uma mensagem chegará ao destinatário pretendido uma
ou mais vezes.
O remetente continuará a enviar a mensagem até receber uma
confirmação do destinatário, atestando que recebeu a mensagem.
O resultado dessa QoS é que o destinatário pode receber a mensagem
várias vezes, aumentando a sobrecarga da rede mais do que no QoS 0,
(devido a acks).
Além disso, mais carga é colocada sobre o remetente, pois ele precisa
armazenar a mensagem e tentar novamente caso não receba uma
confirmação em um tempo razoável.
QOS 2: EXATAMENTE UMA VEZ

O mais caro do QoS (em termos de tráfego de rede e carga para o


remetente e o receptor), esse QoS garantirá que a mensagem seja
recebida por um destinatário exatamente uma vez.
Isso garante que o receptor nunca obtenha cópias duplicadas da
mensagem e, eventualmente, as receba, mas ao custo extra de
sobrecarga de rede e complexidade exigida pelo emissor e pelo
receptor.
Protocolo AMQP
Com publicadores e assinantes, ambos usando um broker, o AMQP tem mais dois
componentes: trocas e filas de mensagens.
Na imagem a seguir, apresentamos um exemplo de como ocorre a comunicação no
AMQP.
As trocas executam a funcionalidade de roteamento fazendo o encaminhamento das
mensagens para as filas de mensagens apropriadas. Essas mensagens podem ser
armazenadas em filas de mensagens antes de serem encaminhadas aos assinantes.
Tipos de mensagens AMQP
AMQP usa dois tipos de mensagens diferentes:

Ele usa QoS e, portanto, garante a passagem segura de dados importantes.


O AMQP usa a arquitetura de publicação/assinatura já estabelecida para
compartilhamento de dados, conforme usado pelo protocolo MQTT.
Garante a interoperabilidade de aplicações implementadas em linguagens
distintas.
Oferece conexão segura para usuários usando protocolo SSL como CoAP,
MQTT, HTTP e XMPP.
Desvantagens do protocolo AMQP
Entre as principais desvantagens do protocolo AMQP estão:
• Tem problemas de compatibilidade com suas versões mais antigas.
• A implementação de soluções é mais complexa do que HTTP.
• Requer largura de banda maior, ao contrário do MQTT/CoAP/XMPP.
• A descoberta de recursos não é compatível com CoAP/HTTP/XMPP.
PROTOCOLO RESTFUL HTTP
O HTTP é o protocolo fundamental usado para a Web do modelo cliente-servidor
em que a comunicação entre um cliente e um servidor ocorre por meio de uma
mensagem do tipo solicitação/resposta: o cliente envia uma mensagem de
solicitação HTTP e o servidor retorna uma mensagem de resposta, contendo o
recurso solicitado, caso a solicitação tenha sido aceita.
Já o REST é um conjunto de regras que especifica como o Servidor e o Cliente
devem interagir, ou seja, é uma arquitetura.
Há, ainda, o conceito de RESTful, que basicamente significa que um serviço da
Web implementa o estilo de arquitetura REST.
Essa arquitetura, com o protocolo HTTP, tem sido muito aplicada para sistemas de
IoT (DIZDAREVIĆ et al, 2019).
PROTOCOLO RESTFUL HTTP
A combinação do protocolo HTTP com REST permite que os dispositivos
possam disponibilizar suas informações de estado, devido à forma
padronizada de criar, ler, atualizar e excluir dados, ou seja, às chamadas
operações CRUD.
De acordo com esse mapeamento, as operações de criação,
atualização, leitura e exclusão de recursos correspondem aos métodos
HTTP POST, GET, PUT e DELETE, respectivamente.
Na prática, aplicações REST HTTP possibilitam que os desenvolvedores
possam construir um modelo REST para diferentes dispositivos IoT e
trabalhar com dados nos formatos JSON e XML, por exemplo.
PROTOCOLO RESTFUL HTTP
Na imagem a seguir, apresentamos um exemplo de uma interação de solicitação/resposta REST
HTTP entre dois clientes e um servidor.
Algumas das principais vantagens do REST
Separação entre o cliente e o servidor: com a separação da interface do
usuário do servidor e do armazenamento de dados, é possível melhorar
a portabilidade da interface para outros tipos de plataformas, o que
implica no aumento da escalabilidade, flexibilidade e confiabilidade dos
projetos, pois os desenvolvedores podem trabalhar de forma
independente nos diferentes componentes do projeto.
Independência de plataforma e de linguagens de programação: isso
ocorre porque a comunicação com as aplicações é feita através de API
REST que permitem utilizar servidores PHP, Java, Python ou NodeJS.
Veja algumas das desvantagens do REST:
Apesar do uso do protocolo de transporte TCP que fornece entrega confiável de grandes
quantidades de dados, o que é uma vantagem em conexões que não têm requisitos
estritos de latência, ele cria desafios em ambientes com recursos limitados. Um dos
principais problemas é que os nós restritos, na maioria das vezes, enviam pequenas
quantidades de dados esporadicamente e a configuração de uma conexão TCP leva tempo,
produzindo sobrecarga desnecessária.

Utilização do protocolo TLS (Transport Layer Security) como mecanismo de segurança. O


TLS usa um processo de handshake que, na prática, adiciona tráfego adicional a cada
estabelecimento de conexão que pode consumir os recursos dos dispositivos de IoT.
PROTOCOLO DDS (DATA DISTRIBUTION SERVICE)

O DDS define um modelo de comunicação do tipo publicação/assinatura em tempo real totalmente


distribuído ponto a ponto, ou seja, sem broken (Object Management Group, 2014).
Ele fornece comunicação de alto desempenho, escalabilidade e disponibilidade e dá suporte para a
especificação de contratos de QoS entre publicadores e consumidores de dados, além de ter
mecanismos para tratar com aspectos de tempo real, como prioridade e outras políticas de QoS
específicas.
Ele permite a interoperabilidade entre programas desenvolvidos em diferentes linguagens de
programação, bem como descoberta automática de publicadores e assinantes de DDS.
De forma semelhante ao que ocorre com o MQQT, possui Tópicos DDS que são entidades para
transferência de informações onde as aplicações podem publicar, ou assinar e podem ser
considerados como tabelas de banco de dados relacionais distribuídas.
Entidades na arquitetura DDS
As principais entidades na arquitetura DDS incluem:

• Domínio
• Participante do Domínio
• Tópico
• Publicador
• Assinante
• DataWriter (escritor de dados)
• DataReader (leitor de dados)
Entidades na arquitetura DDS
Os Publicadores e Assinantes são divididos em Domínios que permitem o isolamento da
comunicação dentro de nós que possuem interesses comuns.
Os tópicos são definidos pelo programador de uma aplicação DDS. Ele escreve um arquivo IDL com
a descrição dos nomes, tipos de dados e as chaves que identificam as instâncias (que podem ser
vistas como linhas de banco de dados) de cada tópico.
Um compilador recebe o IDL como entrada e gera código para stubs de comunicação na linguagem
de programação escolhida pelo programador.
Com os stubs gerados, as aplicações podem ingressar em um domínio DDS, publicar e assinar os
dados desse domínio.
O Domínio DDS que contém o espaço global de dados compartilhados é totalmente distribuído pela
rede ponto a ponto formada pelos nós da rede sem qualquer agente intermediário, ou entidade de
gerenciamento centralizado como o broken.

https://www.dds-foundation.org/what-is-dds-3/
Na imagem a seguir, apresentamos o modelo conceitual do espaço global de dados.

O participante do domínio é o ponto de


entrada para a troca de mensagens em
domínios específicos que fazem a associação
entre publicadores e assinantes e os domínios
aos quais pertencem.

Ele é usado para criar editores, assinantes,


escritores de dados (Data Writer), leitores de
dados (Data Reader) e tópicos em um domínio.

https://www.dds-foundation.org/what-is-dds-3/
Vantagens do Protocolo DDS
Facilidade de integração
A abordagem centrada em dados usada pelo DDS permite a definição de modelos de dados
comuns e extensíveis para interoperabilidade oculta dos detalhes de conectividade e topologia
das aplicações.
Eficiência de desempenho e escalabilidade
As implementações de DDS podem alcançar latências ponto a ponto muito baixas e taxa de
transferência de vários milhões de mensagens por segundo.
Segurança avançada
Fornece autenticação padronizada, criptografia, controle de acesso e recursos de registro para
permitir conectividade de dados segura de ponta a ponta em um sistema de IoT.
Padrão aberto
A especificação de middleware OMG DDS é um padrão aberto que tem a participação de
diversos fornecedores e usuários.
Vantagens do DDS (continuação)
Habilitado para QoS
Possui um conjunto de políticas de QoS que permite que o DDS controle
todos os aspectos da distribuição de dados, como pontualidade, priorização
de tráfego, confiabilidade e uso de recursos.
Descoberta escalonável
Para sistemas dinâmicos de grande escala, o DDS oferece descoberta
automática, com a funcionalidade plug-and-play para simplificar a integração
e orquestração do sistema.
Aplicabilidade
O DDS pode abordar de forma transparente comunicação ponto a ponto,
dispositivo a dispositivo, dispositivo a nuvem e nuvem a nuvem.
Desvantagens do Protocolo DDS
• É muito pesado para ser usado em sistemas embarcados.
• DDS não faz interface com serviços da web.
• DDS consome duas vezes a largura de banda do protocolo MQTT.
• As políticas de QoS são aplicadas apenas em ambientes DDS restritos.
Conclusão
Vimos as plataformas mais utilizadas para o desenvolvimento de aplicações de IoT: Xively, WSO2, ThingSpeak,
OpenIoT, ThingsBoard, em que exploramos as suas características, pontos fortes e fracos.
Além disso, também analisamos os protocolos de rede para IoT: MQTT, CoAP, XMPP-IoT, RESTful HTTP, DDS, AMQP
sob a mesma ótica: características, vantagens e desvantagens.
A compreensão de como essas plataformas e protocolos funcionam nos dá elementos para fazermos escolhas mais
adequadas quando vamos montar um projeto de IoT.
Os desafios relacionados à construção de um projeto desse tipo abrangem a confiabilidade dos objetos da rede e dos
dados que estão sendo transmitidos e recebidos, pois são esses dados que vão dar suporte para a tomada de decisão.
Então, é necessário assegurar-se de que sejam confiáveis.
Os benefícios da utilização dessas plataformas e protocolos são diversos, como a padronização do desenvolvimento,
uso de recursos pré-prontos que podem ser conectados ao projeto, além de contar com o suporte dos fornecedores.
Outro ponto interessante que precisamos destacar é que muitas dessas aplicações de IoT possuem um grande
volume de dados e, portanto, existe uma interessante ligação entre elas e as áreas de Big Data e de Aprendizado de
Máquina.
Atividade Autônoma Aura
Questão 1:
A Internet das Coisas (do inglês Internet of Things (IoT)) possui diversos protocolos de
comunicação. Um desses protocolos é o já conhecido HTTP. A respeito do HTTP,
selecione a opção correta.

A) Habilita recursos de rede e reduz a percepção de latência


B) Reduz a percepção de latência e permite a troca múltipla de simultaneidade
C) Permite múltiplas trocas simultâneas e habilita recursos de rede
D) Habilita recursos de rede e reduz a percepção de latência e permite múltiplas trocas
simultâneas
E) Quando aplicado para IoT, o HTTP é adequadamente referenciado como HTTPIoT.
Atividade Autônoma Aura
Questão 2:
Um dos protocolos mais importantes da Internet é o HTTP. Esse protocolo também é
aplicado para Internet das Coisas (do inglês Internet of Things (IoT)). Entre as etapas da
utilização desse protocolo estão as requisições. Nesse sentido, selecione a opção que trata
corretamente o processo de requisições.

A) Uma requisição também conhecida como solicitação do cliente é basicamente feita de


um método.
B) As requisições são tarefas.
C) As solicitações são executadas através de eventos.
D) Trata-se da troca de sinais entre dispositivos clientes e servidores.
E) Corresponde às solicitações seguras de informações sobre o canal de comunicação
entre servidores e clientes.
Gabarito AURA
1) Gabarito: A alternativa CORRETA é a letra "D".

Justificativa: O uso do protocolo HTTP para IoT permite o uso mais eficiente dos recursos de rede e uma
percepção reduzida de latência, introduzindo a compactação do campo de cabeçalho e permitindo várias
trocas simultâneas na mesma conexão.

2) Gabarito: A alternativa CORRETA é a letra "A".

Justificativa: HTTP é um protocolo de requisição/resposta em que os clientes solicitam informações de um


servidor e o servidor responde a essas solicitações de acordo. Uma solicitação é composta de um método, um
recurso, alguns cabeçalhos e algum conteúdo opcional.
ETAPAS NECESSÁRIAS PARA INSTALAÇÃO, CONFIGURAÇÃO E DESENVOLVIMENTO DE
UMA APLICAÇÃO NA PLATAFORMA ARDUINO
Objetivos
Descrever as etapas necessárias para instalação, configuração e desenvolvimento de uma aplicação na plataforma
Arduino.
• Tópicos
Bibliografia:
[1] Tema "DESENVOLVIMENTO DE APLICAÇÕES USANDO PLATAFORMAS DE
MIDDLEWARE PARA IOT EM PYTHON", Módulo "ETAPAS NECESSÁRIAS
PARA INSTALAÇÃO, CONFIGURAÇÃO E DESENVOLVIMENTO DE UMA
APLICAÇÃO NA PLATAFORMA ARDUINO", do conteúdo digital da disciplina.

[2] 10 Arduino Projects with DIY Step by Step Tutorials. Disponível em


[ https://www.youtube.com/watch?v=QUQta4f_87E ]. Acesso em: 06/05/2021.

[3] Arduino Education. Disponível em: [ https://www.arduino.cc/education/ ]. Acesso


em: 30/04/2021. Usar o tradutor do chrome.
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.

Curiosidade: 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.
ARDUINO
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.
Arduino
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.
Microcontrolador Arduino
Um conceito bastante importante quando estudamos sobre o Arduino
é o de microcontrolador. Ele é similar a um computador normal sem
ter, no entanto, o disco rígido e alguns outros componentes.
Os elementos básicos do microcontrolador 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.
Entre algumas das vantagens para se trabalhar com o Arduino

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.
A placa Arduino
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.
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.
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.
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.
Arduíno - Shields
Os shields são placas que podem ser conectadas ao Arduino, estendendo seus recursos. Os
diferentes Shields seguem a mesma filosofia do kit de ferramentas original: são fáceis de
montar e baratos de produzir. São Portanto Hardwares complementares ao processador
Arduino para expandir suas funcionalidades.
- Ethernet
- Wifi
- GPS
- Bluetooth
- Drivers p/ motores
- Reles
- Sensores
- Displays
- Robótica
- Detectores de fumaça, radiação...
Arduíno - Kits
Arduíno - Home Page
Arduíno – Baixando o Software de desenvolvimento (IDE)
Arduíno – Conectando ao computador
Arduíno – Conectando ao computador
1. Conecte seu Arduino ao
computador e abra a IDE Arduino.
2. Antes de carregar um programa,
você precisa selecionar qual porta
você deseja usar para fazer
carregar o programa no Arduino
(upload).
3. Dentro do Arduino IDE, clique no
menu Ferramentas (tools) e abra o
submenu Porta(Port).
4. Clique na porta que seu Arduino
está conectado, tal como COM3 ou
COM4. Geralmente aparece o
nome da placa Arduino : “COM3
(Arduino/Genuino Uno)”
Arduíno – Compilando e rodando o programa
5. Após escrever o código, clique em Carregar (Upload) para que o programa seja transferido para seu Arduino.

Caso tenha ocorrido tudo conforme esperado, poderemos fazer a leitura da temperatura através do monitor
serial.
6. Abra o monitor serial para verificar o que está sendo lido na entrada A0.
Arduíno – 1° Programa (Hello World!)
Olá Mundo em Python
Python
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.
Instalação: PYTHON no ARDUINO
Prompt DOS
pip: python -m pip install --upgrade pip

pyfirmata: pip3.7 install pyfirmata

https://www.youtube.com/watch?v=vLuzO_vJrW4

Dentro da IDE do Arduino Carregar o exemplo “StandardFirmata” no


Arduino
Depois é so compilar no python o seu código que ele sera carregado e
executado dentro do microcontrolador Arduino.
Atividade Autônoma Aura
Questão 1:
O Arduino é um ecossistema computacional composto pela linguagem de programação,
bibliotecas, placa e componentes que podem ser acoplados. Ele é bastante utilizado para
implementar soluções voltadas para Internet das Coisas. Nesse sentido, selecione a opção
que está corretamente relacionada ao Arduino.

A) Os programas escritos em Arduino são chamados de Fonte IDE.


B) O ecossistema Arduino garante a segurança dos códigos através da criptografia
C) Um programa escrito com o IDE para Arduino é chamado de Sketch
D) Os Códigos fonte do Arduino são similares aos códigos da linguagem Python.
E) A linguagem de programação do Arduino é orientada a objetos o que facilita a sua
comunicação com programas em Java.
Atividade Autônoma Aura
Questão 2:
O Arduino é bastante utilizado para desenvolver soluções voltadas para Internet das
Coisas. Trata-se de um ecossistema computacional composto pela linguagem de
programação, bibliotecas, placa e componentes que podem ser acoplados. Em relação à
estrutura de desenvolvimento de um programa do Arduino, selecione a opção correta.

A) Trata-se de um paradigma de programação declarativa em que os componentes da


placa são tratados como objetos.
B) É baseado nas linguagens C e Assembly e a principal função é a "main".
C) É formada por um construtor da classe e de quantos métodos sejam necessários para
resolver o problema.
D) É composta pelas funções: build e loop.
E) Consiste das funções: setup e loop.
Gabarito: Atividade Autônoma Aura
Questão 1 : Gabarito: A alternativa CORRETA é a letra "C".

Justificativa: Os programas escritos em Arduino são chamados de Sketch (esboços) que são salvos no
computador de desenvolvimento como arquivos de texto com a extensão de arquivo .ino.

Gabarito: A alternativa CORRETA é a letra "E".

Justificativa: A função setup() é chamado uma vez no programa quando um Sketch (esboço) começa após a
inicialização. É usado para inicializar variáveis, modos de pino de entrada e saída e outras bibliotecas
necessárias no esboço.

A função loop() é usada após setup () ser chamada. A função loop() é executada repetidamente no programa
principal. Ela controla a placa até que ela seja desligada ou reiniciada.

Você também pode gostar