Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
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):
• 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.
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.
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.
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
https://www.youtube.com/watch?v=vLuzO_vJrW4
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.
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.