Estudos sobre IoT: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
 
(229 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 2: Linha 2:


Estudos e experimentações sobre Internet das Coisas realizadas durante o Estágio de Pós-Doutorado na [https://pgeas.ufsc.br/ Pós Graduação em Automação e Sistemas] da UFSC, por [[Usuário:Evandro.cantu|Evandro.cantu]] (2020).
Estudos e experimentações sobre Internet das Coisas realizadas durante o Estágio de Pós-Doutorado na [https://pgeas.ufsc.br/ Pós Graduação em Automação e Sistemas] da UFSC, por [[Usuário:Evandro.cantu|Evandro.cantu]] (2020).
==Apresentação sobre Internet das Coisas==
*[[Apresentacao sobre Internet das Coisas|Apresentação sobre Internet das Coisas]]


==Estudos sobre Internet das Coisas==
==Estudos sobre Internet das Coisas==


===[[Internet das Coisas sem mistério]]===
===Livros:===
 
====[[Repensando a Internet das Coisas]]====
Página Wiki com síntese de algumas ideias do Livro (Costa, 2013) <ref>Francis da Costa. [[Media:Rethinking-Internet-Of-Things-Book.pdf|Rethinking Internet of Things]]: A scalable approach to connecting everything. Apress Open, 2013.</ref>
 
====[[Internet das Coisas do exagero a realidade]]====
Página Wiki com síntese de algumas ideias do livro (Rayes and Salam, 2019) <ref name=FromHypeToReality>Ammar Rayes & Samer Salam. [[Media:InternetOfThingsFromHypeToReality.pdf|Internet of Things From Hype to Reality]]: The Road to Digitization, Springer, 2019.</ref>.
 
====[[Internet das Coisas em cinco dias]]====
 
Página Wiki com síntese de algumas ideias do Livro (Colina etall, 2016) <ref name=IoT5days>Antonio Liñán Colina, Alvaro Vives, Marco Zennaro, Antoine Bagula, Ermanno Pietrosemoli.[https://archive.org/details/IoT5days Internet of Things in Five Days], Internet Archive, 2016. </ref>, disponível ''online''.
 
====[[Internet das Coisas sem mistério]]====
Página Wiki com síntese do Livro (DIAS, 2016) <ref name=DIAS>DIAS, Renata Rampim de Freitas,. Internet das Coisas sem mistérios: Uma nova inteligência para os negócios. São Paulo: Netpress Books, 2016. </ref>.
Página Wiki com síntese do Livro (DIAS, 2016) <ref name=DIAS>DIAS, Renata Rampim de Freitas,. Internet das Coisas sem mistérios: Uma nova inteligência para os negócios. São Paulo: Netpress Books, 2016. </ref>.


===Internet of Things - The role of reconfigurable platforms===
===[[Artigos sobre Internet das Coisas e Padronização]]===
Mapas Conceituais com síntese do Artigo (PEÑA etall, 2017) <ref name=PENA>PEÑA, María Dolores Valdeés; RODRIGUEZ-ANDINA, Juan J. and MANIC, Milos. Internet of Things: The role of reconfigurable platforms, IEEE Industrial Electronics Magazine, Septeber 2017. </ref>: [https://cmapscloud.ihmc.us:443/rid=1VM25R076-18K5C20-Q34/IoT-Conceitos%26Arquitetura.cmap IoT: Conceitos e Arquitetura]
 
==Laboratórios com tecnologias para Internet das Coisas==
 
====[[MQTT]]====
Página Wiki sobre '''protocolo MQTT'''
 
===[[Mosquitto]]===
 
Página Wiki sobre '''brocker Mosquitto'''.
 
O '''Mosquitto''' é um '''brocker''' '''[[MQTT]]''' ''open source'', que pode ser utilizado desde computadores de placa única até servidores.
 
===[[MQTT e Mosquitto: Analise do protocolo com Wireshark]]===
 
Nesta página Wiki estão descritos experimentos visando a '''análise''' do protocolo '''[[MQTT]]''' e brocker '''[[Mosquitto]]''' utilizando captura de mensagens com '''Wireshark''' e uso de contêineres '''[[Docker]]''' para montagem dos cenários de teste.


===Integração de ferramentas para IoT===
===[[MQTT e Arduino]]===
Apresentação (MONTEZ, 2020) <ref name=MONTEZ>. Integração de ferramentas para IoT, Disciplina TISA – Técnicas de Implementação de Sistemas Automatizados, Pós-Graduação em Engenharia de Automação e Sistemas, UFSC, 2020. </ref>.
Nesta página Wiki estão descritos experimentos utilizando '''Arduíno''' e a '''biblioteca MQTT''' para comunicação com um '''brocker''' '''[[Mosquitto]]'''.


===[[Media:The choice of clouds-service configurations of interne-tof think.pdf | Trade-offs involved in the choice of cloud service configurations when building secure, scalable, and efficient Internet-of-Things networks]]===
===[[MQTT e ESP8266]]===
Artigo: (MISHRA etal, 2020) <ref>Amitabh Mishra, Thomas Reichherzer, Ezhil Kalaimannan, Norman Wilde, Ruben Ramirez. [https://journals.sagepub.com/doi/full/10.1177/1550147720908199?utm_source=Adestra&utm_medium=email&utm_content=0A00061&utm_campaign=not+tracked&utm_term=&em=118818bf8f42dc644fa19a346e386af3654773a765520185d6e58140eac79cd2& Trade-offs involved in the choice of cloud service configurations when building secure, scalable, and efficient Internet-of-Things networks], International Journal of Distributed Sensor Networks,  February, 2020. </ref>.
Nesta página Wiki estão descritos experimentos utilizando '''ESP8266''' e a '''biblioteca MQTT''' para comunicação com um '''brocker''' '''[[Mosquitto]]'''.


Notas de síntese:
===[[Node-RED]]===
Página Wiki sobre ferramenta de programação ''low code'' '''Node-RED'''.


:[[Arquivo:Figure1_IoT_SMILE_home_network_overview.gif]]
O '''Node-RED''' é uma ferramenta de programação '''''Low Code''''', voltada para '''Internet das Coisas''', que permite interligar dispositivos físicos, ambientes de desenvolvimento de software e serviços em nuvem.


:Sensores do ambiente são controlados pelo '''ESP8266''', o qual coleta dados e envia, via '''rede sem fio''', através do '''protocolo MQTT''', para um '''Raspberry Pi''' que atua como ''hub'' de sensores.
===[[Cayenne]]===


:O ''hub'' de sensores envia os dados através do '''protocolo HTTP''' a um '''Web Service''' e '''banco de dados MySQL''', rodando num '''Ubuntu''' hospedado nuvem da '''''Amazon Web Services''''' ('''AWS''').
Página Wiki sobre a plataforma de programação  '''''Low Code''''' orientada ao hardware '''Cayenne'''.


===[https://ler.amazon.com.br/?asin=B00I0R6Q7Q Rethinking the Internet of Things]===
O '''Cayenne''' é uma plataforma de programação  '''''Low Code''''', orientada ao hardware, voltada para o desenvolvimento de sistemas para '''Internet das Coisas''', a qual permite desenvolver aplicações Web ou Android para interagir com os dispositivos de hardware.
Livro (Costa, 2013) <ref>Francis da Costa. Rethinking the Internet of Things: A scalable approach to connecting everything. Apress Open, 2013.</ref>


O crescimento do número de dispositivos voltados a Internet das Coisas e predominância da comunicação máquina máquina (M2M) vai exigir outro tipo de infraestrutura de rede.
==Hardware para Internet das Coisas==


Algumas razões que justificam uma nova estrutura de rede.
===Eletrônica===
*Apesar do IPv6 atender o requisito de endereçamento para os dispositivos para IoT, como sensores e atuadores, a maioria deles têm limitações de processamento, memória e taxas de transmissão para suportar a pilha de protocolos IP.
;[[Conceitos sobre Eletronica|Conceitos sobre Eletrônica]]:
*A implementação do IP exige conhecimento da rede por parte dos dispositivos, como a definição de endereços MAC para todos os tipos de dispositivos.
*As necessidades de rede dos dispositivos de IoT são completamente diferentes da comunicação da Internet. O tipo de informação trocada entre estes dispositivos envolve dados assimétricos, com mais dados fluindo dos sensores, que o contrário, e, em muitos casos, a perda de uma mensagem ou ruídos não terão consequências catastróficas. Muitos desdes dispositivos vão operar de forma autônoma, independente de ter ou não alguém "escutando" por uma informação.
*Quando há sensoreamento em tempo real e laços estritos de resposta, o controle fim a fim da das arquiteturas de rede tradicionais falham.
*A comunicação par-a-par das redes IP dificultam a riqueza da comunicação entre os dispositivos para IoT. Para estes, somente um modelo como '''''publisher/subscriber''''' pode atender as demandas de escala e de coleta de informações dos sensores e distribuição das mesmas aos interessados nos dados.


Conceito de arquitetura em três camadas para as redes voltadas a IoT:
;[[Laboratorios sobre Eletronica|Laboratórios sobre Eletrônica]]:
*Dispositivos terminais simples;
*Nós propagadores de informações em rede;
*Funções de procura e integração de informações.


==Tecnologias e Ferramentas para Internet das Coisas==
Páginas Wiki com conceitos e laboratórios sobre eletrônica e sua aplicação na interface entre o mundo físico e o mundo digital.


===[[MQTT]]===
===Arduíno===
Página Wiki sobre '''protocolo MQTT'''.


O  '''MQTT''' ('''''Message Queue Telemetry Transport''''') é um '''protocolo de mensagens''' para '''sensores''' e pequenos '''dispositivos móveis''', baseado no modelo '''Publicador/Subscritor''', ideal para aplicações de '''Internet das Coisas''', em particular para a comunicação '''máquina a máquina''' ('''M2M''' - ''Machine to Machine''). O '''MQTT''' trabalha no topo da pilha de protocolos '''TCP/IP'''.
Páginas Wiki com síntese sobre esta plataforma de hardware livre Arduíno:
*[[Arduino]]
*[[Arduino: Entradas e Saidas]]
*[[Arduino: Sensores e Atuadores]]
*[[Arduino: Controle de Motores]]


===[[Mosquitto]]===
===[[ESP8266 e ESP32]]===
 
Página Wiki com síntese sobre os microcontroladores '''ESP8266 e ESP32''' que possuem interface WiFi embutida.
 
===[[Raspberry Pi]]===
 
Página Wiki com síntese sobre esta plataforma de hardware '''Raspberry Pi'''.
 
==Simuladores de Hardware e outras ferramentas==
 
===[https://www.tinkercad.com TinkerCAD]===
 
Emulador para '''Arduíno''' e '''circuitos eletrônicos''' que funciona a partir de um navegador Web.


Página Wiki sobre '''brocker Mosquitto'''.
===[https://www.simulide.com SimulIDE]===


O '''Mosquitto''' é um '''brocker MQTT''' ''open source'', que pode ser utilizado desde computadores de placa única até servidores.
Simulador para '''Arduíno''' e '''circuitos eletrônicos'''.


===[[MQTT e Mosquitto: Analise do protocolo com Wireshark]]===
;Instalação do SimulIDE no Ubuntu 20.04:
*Baixar a versão compatível com o sistema operacional de extrair o conteúdo do arquivo .tar.gz.
*Instalar dependências que precisam para o programa e estão descritas no arquivo README.md.
*:Podem ser instaladas com o comando:
sudo apt-get install libqt5core5a libqt5gui5 libqt5xml5 libqt5svg5 libqt5widgets5 libqt5concurrent5 libqt5multimedia5 libqt5multimedia5-plugins libqt5serialport5 libqt5script5 libelf1
*O diretório "SimulIDE_x.x.x" tem tudo o que precisa para rodar o programa, ir até ele e executar:
./simulide


Nesta página Wiki estão descritos experimentos visando a '''análise''' do '''protocolo MQTT''' e '''brocker Mosquitto''' utilizando captura de mensagens com '''Wireshark'''.
===[[KICAD]]===


===[[MQTT e Arduino]]===
O [https://kicad.org/ KICAD] é um editor de '''diagramas esquemáticos''' para '''circuitos eletrônicos''' e geração de leiaute para '''placas de circuito impresso'''.
Nesta página Wiki estão descritos experimentos utilizando um '''Arduíno''' e a '''biblioteca MQTT''' para comunicação com um '''brocker Mosquitto'''.


===[https://nodered.org/ Node-RED]===
Introdução ao KICAD:
*https://www.embarcados.com.br/introducao-ao-kicad/
*https://www.embarcados.com.br/captura-de-esquematico-no-kicad/
*https://www.embarcados.com.br/pcb-no-kicad/


É uma ferramenta de programação '''''Low Code''''', voltada para '''Internet das Coisas''', que permite interligar dispositivos físicos, ambientes de desenvolvimento de software e serviços em nuvem.
===[https://www.freecadweb.org/ FreeCAD]===


Site: [https://knolleary.net  knolleary:  Words and things by Nick O'Leary]
Editor para estruturas 3D.


==Redes de Comunicação para Internet das Coisas==
==Redes de Comunicação para Internet das Coisas==
===Camada Enlace===
====LLN (''low-power and lossy networks'')====
Muitos desenvolvimentos em IoT utilizam tecnologias de enlace desenvolvidas para dispositivos com limitações de processamento, memória e energia, referidas como redes '''LLN''' (''low-power and lossy networks''). Fazem partes das redes LLN as tecnologias de enlace '''IEEE 802.15.4''', '''Bluetooth''', '''Low Power Wi-Fi''', ou '''PLC''' (''Power-Line Communication'').
=====[[IEEE 802.15.4]]=====
Página Wiki sobre '''IEEE 802.15.4''' e '''Shield XBee para Arduino'''.


===WSN===
As redes padronizadas '''IEEE 802.15.4''' estão focadas em soluções de comunicação sem fio com baixa taxa de transmissão e baixo consumo de energia, com destaque para a tecnologia '''Zigbee'''.
 
====[[LoRa WAN]]====
 
Página Wiki sobre '''LoRa WAN'''.
 
'''LoRa WAN''' ('''''Long Range''''') é uma rede sem fio de baixa potência para longas distâncias, bastante utilizada para conectar dispositivos para '''Internet das Coisas'''.
 
====WSN====


'''WSN''' ('''''Wireless Sensor Network'''''), ou Redes de Sensores Sem Fio, são redes interligando sensores e outros dispositivos remotos dispersos espacialmente e são responsáveis com monitorar e eventualmente controlar as condições do ambiente. O hardware de cada sensor possui componentes para realizar o sensoreamento, capacidade de processamento e interface de comunicação.
'''WSN''' ('''''Wireless Sensor Network'''''), ou Redes de Sensores Sem Fio, são redes interligando sensores e outros dispositivos remotos dispersos espacialmente e são responsáveis com monitorar e eventualmente controlar as condições do ambiente. O hardware de cada sensor possui componentes para realizar o sensoreamento, capacidade de processamento e interface de comunicação.


===LoRa===
===Camada Rede===


'''LoRa''' ('''''Long Range''''') é uma rede sem fio de baixa potência para longas distâncias, bastante utilizada para conectar dispositivos para '''Internet das Coisas'''.
====[[IPv6]]====
Página Wiki sobre '''IPv6'''.


==Hardware para Internet das Coisas==
====[[6LowPAN]]====
 
Página Wiki sobre '''6LowPAN'''
 
Adapta a camada rede da Internet, em particular para IPv6, para as limitações de '''tamanho do quadro''' impostas pelas redes '''LLN'''.
 
====Time-Sensitive Networking====
As redes '''TSN''' (''Time-Sensitive Networking'') foram desenvolvidas para aplicações industriais e de automação com requisistos estritos de tempo.
 
===Camada Transporte===
 
A '''Camada de Transporte''' da Internet tem a função de prover um '''canal de comunicação lógico fim a fim entre os processos de aplicação'''.
 
====[[Protocolo TCP|TCP]]====
O '''TCP''' é um '''protocolo orientado a conexão''' com grande ''overhead'' e, portanto, nem sempre adequado para dispositivos com baixa capacidade de processamento e memória e limitações no consumo de energia.
 
====[[Protocolo UDP|UDP]]====
O UDP é um protocolo '''sem conexão''', ou '''''best effort''''', com pequeno  ''overhead'', sendo, portanto, uma opção mais adequada para sistemas de '''Internet das Coisas'''.
 
Os exemplos de '''camadas de transporte seguras''' incluem a '''TLS''' (''Transport Layer Security'') sobre '''TCP''' e o '''DTLS''' (''Datagram Transport Layer Security''), que é baseado em '''UDP''', e que pode ser utilizado opcionalmente para o transporte seguro de mensagens '''CoAP'''.
 
===Camada Aplicação===
 
====[[CoAP]]====


===[https://www.tinkercad.com TinkerCAD]===
Página Wiki sobre '''CoAP'''.


Emulador para '''Arduíno''' e '''circuitos eletrônicos'''.
O '''CoAP''' (''Constrained Application Protocol'') é uma '''alternativa mais leve''' ao '''HTTP''', com alvo nos dispositivos limitados em termos de energia e comunicação (redes '''LLN'''). O '''CoAP''' usa '''UDP''', ao invés do '''TCP''' usado pelo '''HTTP''', reduzindo o ''overhead'' de mensagens ocasionado pela abertura e encerramento de uma conexão TCP.


===[http://www.orangepi.org/orangepipcplus/ Orange Pi]===
====[[MQTT]]====
Página Wiki sobre '''protocolo MQTT'''


*https://www.embarcados.com.br/primeiros-passos-orange-pi-pc-plus-h3/
O  '''MQTT''' ('''''Message Queue Telemetry Transport''''') é um '''protocolo de mensagens''' para '''sensores''' e pequenos '''dispositivos móveis''', baseado no modelo '''Publicador/Subscritor''', ideal para aplicações de '''Internet das Coisas'''. O '''MQTT''' trabalha no topo da pilha de protocolos '''TCP/IP'''.


==Computação em Nuvem==
==Computação em Nuvem==


;Categorias de serviços de '''computação em nuvem'''  (''Clould Computing''):
;'''[[Computacao em Nuvem|Conceitos sobre Computação em Nuvem e Computação em Névoa]]'''


[[Arquivo:CloudComputing.png]]
===[[Docker]]===


* SaaS: Software como Serviço
Página Wiki sobre contêineres '''Docker'''.
* PaaS: Plataforma como Serviço
 
* IaaS: Infraestrutura como Serviço
'''Docker''' é um '''contêiner''', que é uma unidade padronizada de software que permite aos desenvolvedores isolar suas aplicações do meio no qual vai rodar.
 
Como afirma <ref name=FromHypeToReality/>,  os '''contêineres''' são fundamentais para implementar instâncias em sistemas de para '''''cloud computing''''' ou '''''fog computing'''''.  Os '''contêineres''' são te==Plataformas para Computação em Nuvem==
cnologias de virtualização operando no nível do sistema operacional, incluindo somente a parte do sistema operacional e bibliotecas necessárias para rodar a aplicação desejada.


===[https://firebase.google.com FireBase]===
===[https://firebase.google.com FireBase]===
Linha 112: Linha 202:
'''AWS''' é uma plataforma de serviços de '''computação em nuvem''' oferecida pela Amazon.com.
'''AWS''' é uma plataforma de serviços de '''computação em nuvem''' oferecida pela Amazon.com.


===[[Docker]]===
===[https://www.digitalocean.com/ Digital Ocean]===
 
'''Digital Ocean''' é uma plataforma de serviços de '''computação em nuvem''' com vários produtos disponíveis, como '''máquinas virtuais''', '''contêineres''', '''banco de dados''', '''plataformas para aplicações''' e outros.
 
===[https://www.fiware.org/ Fiware]===
 
'''Fiware''' é uma plataforma ''open source'' voltada ao desenvolvimento de '''soluções inteligentes''' utilizando '''IoT'''.


Página Wiki sobre contêineres '''Docker'''.
Possui diferentes módulos para facilitar o desenvolvimento de aplicações, como por exemplo:
* [https://fiwaretourguide.readthedocs.io/en/latest/core/introduction/ Context Broker]: permite contextualizar a informações recebidas de modo escalável e independente da fonte de informação através de uma API REST.
* [https://fiwaretourguide.readthedocs.io/en/latest/iot-agents/introduction/ IoT Agents]: realizam a interação com os objetos uma vez que podem estar em ambientes heterogêneos e rodarem diferentes protocolos.
* [https://fiwaretourguide.readthedocs.io/en/latest/data-publication/how-to-offer-datasets-including-context-information-through-the-wstore/introduction/ Fiware Store]: Banco de dados.


'''[https://www.docker.com/ Docker]''' é um '''Contêiner''', que é uma unidade padronizada de software que permite aos desenvolvedores isolar suas aplicações do meio no qual vai rodar.
==Sistemas Operacionais para dispositivos de IoT==


===[https://alpinelinux.org/ Alpine Linux]===
===[https://alpinelinux.org/ Alpine Linux]===
Distribuição '''Linux''' minimalista, simples e segura ('''Alpine''': ''Small. Simple. Secure.''), ideal para dispositivos embarcados com hardware reduzido.
Distribuição '''Linux''' minimalista, simples e segura ('''Alpine''': ''Small. Simple. Secure.''), ideal para dispositivos embarcados com hardware reduzido.


Ver exemplo de uso de '''[[Docker#Teste_bridge_com_Linux_alpine|alpine no Docker]]'''.
Ver exemplo de uso do '''[[Docker#Teste_bridge_com_Linux_alpine|Alpine no Docker]]'''.
 
===[https://www.contiki-ng.org/ Contiki]===
 
Sistema operacional dedicado a microprocessadores de baixo poder de processamento e memória, com foco nos dispositivos de IoT com comunicação sem fio e baixo consumo de energia. Suas principais características incluem métodos eficientes de alocação de memória e comunicação IP e baixo consumo de energia. Possui implementações dos protocolos [[CoAP]] e [[MQTT]] <ref name=IoT5days/>.
 
Ver exemplo de uso do '''[[Docker#Teste_do_sistema_operacional_Contiki|Contiki no Docker]]'''.
 
==Projetos envolvendo IoT==
 
===[https://www.openhab.org/ OpenHAB]===
 
O '''OpenHAB''' é um projeto aberto para apoiar usuários na automação residencial.
 
===[https://openenergymonitor.org/ Open Energy Monitor]===


===[https://www.nginx.com/ NGINX]===
O '''Open Energy Monitor''' é um projeto ''open source'' para monitoramento de energia e explorar os campos de energias renováveis e com zero emissão de carbono.
Tecnologias para Websites


==Referências==
==Referências==
<ref name=MONTEZ>. Integração de ferramentas para IoT, Disciplina TISA – Técnicas de Implementação de Sistemas Automatizados, Pós-Graduação em Engenharia de Automação e Sistemas, UFSC, 2020. </ref>
<references />
<references />



Edição atual tal como às 13h23min de 16 de maio de 2022

Estudos sobre Internet das Coisas (IoT- Internet of Things)

Estudos e experimentações sobre Internet das Coisas realizadas durante o Estágio de Pós-Doutorado na Pós Graduação em Automação e Sistemas da UFSC, por Evandro.cantu (2020).

Apresentação sobre Internet das Coisas

Estudos sobre Internet das Coisas

Livros:

Repensando a Internet das Coisas

Página Wiki com síntese de algumas ideias do Livro (Costa, 2013) [1]

Internet das Coisas do exagero a realidade

Página Wiki com síntese de algumas ideias do livro (Rayes and Salam, 2019) [2].

Internet das Coisas em cinco dias

Página Wiki com síntese de algumas ideias do Livro (Colina etall, 2016) [3], disponível online.

Internet das Coisas sem mistério

Página Wiki com síntese do Livro (DIAS, 2016) [4].

Artigos sobre Internet das Coisas e Padronização

Laboratórios com tecnologias para Internet das Coisas

MQTT

Página Wiki sobre protocolo MQTT

Mosquitto

Página Wiki sobre brocker Mosquitto.

O Mosquitto é um brocker MQTT open source, que pode ser utilizado desde computadores de placa única até servidores.

MQTT e Mosquitto: Analise do protocolo com Wireshark

Nesta página Wiki estão descritos experimentos visando a análise do protocolo MQTT e brocker Mosquitto utilizando captura de mensagens com Wireshark e uso de contêineres Docker para montagem dos cenários de teste.

MQTT e Arduino

Nesta página Wiki estão descritos experimentos utilizando Arduíno e a biblioteca MQTT para comunicação com um brocker Mosquitto.

MQTT e ESP8266

Nesta página Wiki estão descritos experimentos utilizando ESP8266 e a biblioteca MQTT para comunicação com um brocker Mosquitto.

Node-RED

Página Wiki sobre ferramenta de programação low code Node-RED.

O Node-RED é uma ferramenta de programação Low Code, voltada para Internet das Coisas, que permite interligar dispositivos físicos, ambientes de desenvolvimento de software e serviços em nuvem.

Cayenne

Página Wiki sobre a plataforma de programação Low Code orientada ao hardware Cayenne.

O Cayenne é uma plataforma de programação Low Code, orientada ao hardware, voltada para o desenvolvimento de sistemas para Internet das Coisas, a qual permite desenvolver aplicações Web ou Android para interagir com os dispositivos de hardware.

Hardware para Internet das Coisas

Eletrônica

Conceitos sobre Eletrônica
Laboratórios sobre Eletrônica

Páginas Wiki com conceitos e laboratórios sobre eletrônica e sua aplicação na interface entre o mundo físico e o mundo digital.

Arduíno

Páginas Wiki com síntese sobre esta plataforma de hardware livre Arduíno:

ESP8266 e ESP32

Página Wiki com síntese sobre os microcontroladores ESP8266 e ESP32 que possuem interface WiFi embutida.

Raspberry Pi

Página Wiki com síntese sobre esta plataforma de hardware Raspberry Pi.

Simuladores de Hardware e outras ferramentas

TinkerCAD

Emulador para Arduíno e circuitos eletrônicos que funciona a partir de um navegador Web.

SimulIDE

Simulador para Arduíno e circuitos eletrônicos.

Instalação do SimulIDE no Ubuntu 20.04
  • Baixar a versão compatível com o sistema operacional de extrair o conteúdo do arquivo .tar.gz.
  • Instalar dependências que precisam para o programa e estão descritas no arquivo README.md.
    Podem ser instaladas com o comando:
sudo apt-get install libqt5core5a libqt5gui5 libqt5xml5 libqt5svg5 libqt5widgets5 libqt5concurrent5 libqt5multimedia5 libqt5multimedia5-plugins libqt5serialport5 libqt5script5 libelf1
  • O diretório "SimulIDE_x.x.x" tem tudo o que precisa para rodar o programa, ir até ele e executar:
./simulide

KICAD

O KICAD é um editor de diagramas esquemáticos para circuitos eletrônicos e geração de leiaute para placas de circuito impresso.

Introdução ao KICAD:

FreeCAD

Editor para estruturas 3D.

Redes de Comunicação para Internet das Coisas

Camada Enlace

LLN (low-power and lossy networks)

Muitos desenvolvimentos em IoT utilizam tecnologias de enlace desenvolvidas para dispositivos com limitações de processamento, memória e energia, referidas como redes LLN (low-power and lossy networks). Fazem partes das redes LLN as tecnologias de enlace IEEE 802.15.4, Bluetooth, Low Power Wi-Fi, ou PLC (Power-Line Communication).

IEEE 802.15.4

Página Wiki sobre IEEE 802.15.4 e Shield XBee para Arduino.

As redes padronizadas IEEE 802.15.4 estão focadas em soluções de comunicação sem fio com baixa taxa de transmissão e baixo consumo de energia, com destaque para a tecnologia Zigbee.

LoRa WAN

Página Wiki sobre LoRa WAN.

LoRa WAN (Long Range) é uma rede sem fio de baixa potência para longas distâncias, bastante utilizada para conectar dispositivos para Internet das Coisas.

WSN

WSN (Wireless Sensor Network), ou Redes de Sensores Sem Fio, são redes interligando sensores e outros dispositivos remotos dispersos espacialmente e são responsáveis com monitorar e eventualmente controlar as condições do ambiente. O hardware de cada sensor possui componentes para realizar o sensoreamento, capacidade de processamento e interface de comunicação.

Camada Rede

IPv6

Página Wiki sobre IPv6.

6LowPAN

Página Wiki sobre 6LowPAN

Adapta a camada rede da Internet, em particular para IPv6, para as limitações de tamanho do quadro impostas pelas redes LLN.

Time-Sensitive Networking

As redes TSN (Time-Sensitive Networking) foram desenvolvidas para aplicações industriais e de automação com requisistos estritos de tempo.

Camada Transporte

A Camada de Transporte da Internet tem a função de prover um canal de comunicação lógico fim a fim entre os processos de aplicação.

TCP

O TCP é um protocolo orientado a conexão com grande overhead e, portanto, nem sempre adequado para dispositivos com baixa capacidade de processamento e memória e limitações no consumo de energia.

UDP

O UDP é um protocolo sem conexão, ou best effort, com pequeno overhead, sendo, portanto, uma opção mais adequada para sistemas de Internet das Coisas.

Os exemplos de camadas de transporte seguras incluem a TLS (Transport Layer Security) sobre TCP e o DTLS (Datagram Transport Layer Security), que é baseado em UDP, e que pode ser utilizado opcionalmente para o transporte seguro de mensagens CoAP.

Camada Aplicação

CoAP

Página Wiki sobre CoAP.

O CoAP (Constrained Application Protocol) é uma alternativa mais leve ao HTTP, com alvo nos dispositivos limitados em termos de energia e comunicação (redes LLN). O CoAP usa UDP, ao invés do TCP usado pelo HTTP, reduzindo o overhead de mensagens ocasionado pela abertura e encerramento de uma conexão TCP.

MQTT

Página Wiki sobre protocolo MQTT

O MQTT (Message Queue Telemetry Transport) é um protocolo de mensagens para sensores e pequenos dispositivos móveis, baseado no modelo Publicador/Subscritor, ideal para aplicações de Internet das Coisas. O MQTT trabalha no topo da pilha de protocolos TCP/IP.

Computação em Nuvem

Conceitos sobre Computação em Nuvem e Computação em Névoa

Docker

Página Wiki sobre contêineres Docker.

Docker é um contêiner, que é uma unidade padronizada de software que permite aos desenvolvedores isolar suas aplicações do meio no qual vai rodar.

Como afirma [2], os contêineres são fundamentais para implementar instâncias em sistemas de para cloud computing ou fog computing. Os contêineres são te==Plataformas para Computação em Nuvem== cnologias de virtualização operando no nível do sistema operacional, incluindo somente a parte do sistema operacional e bibliotecas necessárias para rodar a aplicação desejada.

FireBase

O Firebase é uma plataforma de computação em nuvem para desenvolvimento de aplicativos para dispositivos móveis e para Web, mantida pela Google.

Firebase Realtime database
Implementa um banco de dados NoSQL que fornece as aplicações clientes atualizações em tempo real (“realtimeupdates) quando os dados mudam na base de dados.

Operações básicas no banco de dados:

  • set() - Salva dado em uma referência específica, substituindo o valor anterior.
  • push() - Adiciona dado em uma lista de valores.
  • once() - Lê dado de uma referência e acompanha qualquer mudança no mesmo.

AWS

AWS é uma plataforma de serviços de computação em nuvem oferecida pela Amazon.com.

Digital Ocean

Digital Ocean é uma plataforma de serviços de computação em nuvem com vários produtos disponíveis, como máquinas virtuais, contêineres, banco de dados, plataformas para aplicações e outros.

Fiware

Fiware é uma plataforma open source voltada ao desenvolvimento de soluções inteligentes utilizando IoT.

Possui diferentes módulos para facilitar o desenvolvimento de aplicações, como por exemplo:

  • Context Broker: permite contextualizar a informações recebidas de modo escalável e independente da fonte de informação através de uma API REST.
  • IoT Agents: realizam a interação com os objetos uma vez que podem estar em ambientes heterogêneos e rodarem diferentes protocolos.
  • Fiware Store: Banco de dados.

Sistemas Operacionais para dispositivos de IoT

Alpine Linux

Distribuição Linux minimalista, simples e segura (Alpine: Small. Simple. Secure.), ideal para dispositivos embarcados com hardware reduzido.

Ver exemplo de uso do Alpine no Docker.

Contiki

Sistema operacional dedicado a microprocessadores de baixo poder de processamento e memória, com foco nos dispositivos de IoT com comunicação sem fio e baixo consumo de energia. Suas principais características incluem métodos eficientes de alocação de memória e comunicação IP e baixo consumo de energia. Possui implementações dos protocolos CoAP e MQTT [3].

Ver exemplo de uso do Contiki no Docker.

Projetos envolvendo IoT

OpenHAB

O OpenHAB é um projeto aberto para apoiar usuários na automação residencial.

Open Energy Monitor

O Open Energy Monitor é um projeto open source para monitoramento de energia e explorar os campos de energias renováveis e com zero emissão de carbono.

Referências

[5]

  1. Francis da Costa. Rethinking Internet of Things: A scalable approach to connecting everything. Apress Open, 2013.
  2. 2,0 2,1 Ammar Rayes & Samer Salam. Internet of Things From Hype to Reality: The Road to Digitization, Springer, 2019.
  3. 3,0 3,1 Antonio Liñán Colina, Alvaro Vives, Marco Zennaro, Antoine Bagula, Ermanno Pietrosemoli.Internet of Things in Five Days, Internet Archive, 2016.
  4. DIAS, Renata Rampim de Freitas,. Internet das Coisas sem mistérios: Uma nova inteligência para os negócios. São Paulo: Netpress Books, 2016.
  5. . Integração de ferramentas para IoT, Disciplina TISA – Técnicas de Implementação de Sistemas Automatizados, Pós-Graduação em Engenharia de Automação e Sistemas, UFSC, 2020.

Evandro.cantu (discussão) 10h19min de 25 de março de 2020 (-03)