A Internet das Coisas é hoje uma das áreas mais estudadas por entusiastas de tecnologia da informação. Assim, além de estar presente em vários artigos, tem despertado o interesse de várias empresas do setor de tecnologia, como Google, Oracle, Qualcomm e Microsoft.
O conceito de IoT, como veremos a partir de agora, é um pouco amplo e, portanto, difícil de resumir em uma sentença. De forma simples, entende-se por Internet das Coisas um ambiente que reúne diversos tipos de hardware, as “coisas” (things), que se comunicam entre si (M2M, ou Machine to Machine) com pessoas (através de displays de LED, por exemplo) ou ainda com outros sistemas computacionais (via Wi-Fi, Bluetooth, etc.). A Internet das Coisas, no entanto, transcende a conectividade entre sensores, motores, micro controladores, gadgets vestíveis, entre outras opções, e tem como propósito principal elevar o nível de comunicação entre dispositivos e seres humanos, transformando pulsos elétricos em dados que podem ser manipulados e enviados para sistemas maiores, com interface mais amigável.
Segundo a Gartner, referência de consultoria em tecnologia, hoje temos cerca de cinco bilhões de dispositivos interconectados que compõem a IoT e esse número deve saltar para 25 bilhões até 2020. Com essa quantidade de dispositivos gerando informações que trafegam na rede, alguns desafios precisam ser superados, tais como:
- Como processar essa quantidade de informação e transformá-la em algo útil?
- Como desenvolver soluções de integração entre bilhões de equipamentos e sistemas de grandes corporações?
- Quem será o desenvolvedor de tais sistemas? Um engenheiro da computação, eletrônico ou um analista de sistemas?
- Um protocolo de comunicação entre os dispositivos tem que ser estabelecido, bem como APIs de acesso a esses protocolos devem ser suportadas pelas linguagens de programação.
Atualmente já existem tecnologias que podem auxiliar na mineração e processamento de dados, tais como as soluções de Big Data de empresas como SAS, Oracle e IBM, superando assim o primeiro desafio. Porém, a resolução desse ponto não é o foco desse artigo.
O segundo desafio também já possui mais de uma solução, e entre as principais podemos citar as plataformas Arduíno e Raspberry Pi. O Arduíno é uma plataforma de prototipagem composta de uma placa microcontroladora, uma IDE e uma linguagem de programação própria, baseada em C e C++. O hardware segue os princípios do “hardware open source”, ou seja, tem uma especificação que pode ser fabricada por qualquer pessoa que estiver disposta a construir sua própria placa. A concepção dessa plataforma surgiu como um projeto da universidade italiana Ivrea Interaction Design Institute, com o objetivo de fornecer uma solução de baixo custo para que estudantes de engenharia pudessem desenvolver seus trabalhos acadêmicos mais facilmente.
O Arduíno pode ser conectado a diversos sensores, estabelecendo uma comunicação de duas vias com eles, de tal maneira que é possível ler dados dos sensores e escrever comandos (ligar e desligar, por exemplo) e parâmetros de configuração, tais como precisão de amostra, leitura contínua ou não, sentido de rotação de um motor, etc.
Devido às características supracitadas, o processo de desenvolvimento de uma aplicação para a plataforma Arduíno é um pouco diferente do processo de desenvolvimento de software para um microcomputador. O código fonte é compilado da mesma forma, no entanto o produto desse processo é gravado no microcontrolador e a aplicação é executada sempre que o dispositivo é ligado (não há um sistema operacional com janelas e ícones para o usuário iniciar/encerrar a aplicação).
Já o Raspberry Pi (RPi) é um microcomputador completo, com processador, memória RAM e ROM (basicamente um cartão de memória MicroSD), portas USB, HDMI e Ethernet. Esse computador tem aproximadamente o tamanho de um cartão de crédito, opera com apenas 5 volts e possui interfaces que podem ser conectadas a diversos dispositivos.
Um dos diferenciais do Raspberry Pi é que ele roda um sistema operacional. Originalmente, apenas uma versão do Debian customizada para a arquitetura de processadores ARM, mas outros SOs também passaram a ser suportados na versão 2 do Pi, tais como o Windows 10, Ubuntu, entre outros. Devido a isso, temos várias opções de linguagens de programação disponíveis para essa solução, como C, C++, Java, Python, etc. Além disso, o Raspberry viabiliza diversas opções de conectividade com sensores, tais como os protocolos I²C, SPI e UART. Pode-se dizer até que todos os sensores compatíveis com o Arduíno são compatíveis com o Raspberry Pi.
Com todos esses diferenciais, por que escolher o Arduíno, se o Raspberry Pi pode me oferecer mais? Em favor do Arduíno, temos que levar em consideração que além de ser mais barato e consumir menos energia, conta também com portas de entrada analógicas (capazes de ler informações mais precisas e não apenas 0s e 1s, como as digitais), que podem ser úteis em algumas situações. A escolha de qual plataforma utilizar, portanto, deve ser feita de acordo com as necessidades do projeto.
O terceiro desafio – quem vai desenvolver para IoT – é algo a se pensar, pois exigirá de um analista de sistemas com conhecimento básico em eletrônica. Palavras pouco comuns para um desenvolvedor, como resistores, transistores e voltagem, passam a fazer parte do vocabulário de quem se interessa por IoT. Desse modo, o perfil de profissional, ou entusiasta, que deseja adentrar nesse universo de sensores, motores, etc., é o de um engenheiro? À primeira vista, a resposta é sim. Um engenheiro da computação ou eletrônico, além do conhecimento de eletrônica, tem uma carga horária de faculdade bem interessante em linguagens de programação como C++ e Java, o que lhes dá boas condições para desenvolver uma integração entre sensores e um sistema computacional. Se você não tem esse perfil, no entanto, não se preocupe e não desista de conhecer esse novo mundo que se apresenta através da IoT. Provavelmente você terá um pouco mais de dificuldade, mas não precisa ser “cientista de foguetes” para fazer um LED acender quando a temperatura do ambiente atingir um valor muito alto, por exemplo.
O último ponto levantado, sobre protocolos e APIs de acesso ao hardware, é onde entra em cena o Java. Além de ser uma linguagem consagrada no mercado e com uma vasta quantidade de desenvolvedores, ainda tem uma característica fundamental para a adoção em um cenário tão heterogêneo quanto o da IoT, o fato de ser multiplataforma. Hoje em dia temos o Java rodando em artefatos simples como cartões, a poderosos computadores, passando por placas embarcadas, dispositivos móveis e outros aparelhos de menor poder de processamento e memória. Em sua essência, o Java mantém as mesmas características em todas as plataformas na qual funciona, apenas adaptando-se às particularidades de cada uma. Por isso temos alguns sabores de Java e dentre essas variações, duas podem ser utilizadas para IoT: Java Micro Edition e Java Standard Edition Embedded.
Até meados da década passada, o Java Micro Edition (Java ME) era a principal solução tecnológica para o desenvolvimento de softwares para dispositivos móveis (leia-se celulares e PDAs), contudo, perdeu espaço com o avanço dos smartphones Android e iPhone. Nesse período de ascensão dos smartphones a SUN já tinha deixado o Java ME meio de lado e a Oracle não fez muito esforço para trazê-la de volta aos holofotes. No entanto, quando foi anuncia ...
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 54,90
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 54,90 /mês
Total: R$ 658,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.