IoT

IoT é uma sigla que vem causando muito interesse nas pessoas, atrelada à ideia de adicionar qualquer coisa na internet, vem conquistando cada vez mais adeptos entre hobistas, profissionais e, até mesmo, grandes empresas. Mas, quão novo é esse conceito? E por que só agora está tão popular?

Novas tecnologias mais acessíveis, menor custo de equipamentos de hardware e maior número de usuários na rede mundial de computadores são os principais culpados por isso.

IoT, do inglês Internet of Things, que significa Internet das Coisas, é um termo nascido em 1999 e criado por Kevin Ashton em um trabalho desenvolvido no laboratório de Auto-ID no famoso MIT - Massachusetts Institute of Technology.

No início da década de 2000 não existiam tecnologias como o Arduino, ESP32, Raspberry, muito menos Android. A Android, Inc. foi fundada em Palo Alto - Califórnia em outubro de 2003 por Andy Rubin, ou seja, grande parte das tecnologias utilizadas hoje para a demonstração eficiente do conceito de IoT só veio existir após os anos 2000.

As linguagens de programação até já existiam, com exceção das linguagens .NET. Naquela época, já tínhamos: Python, C, C++ e Java, que inclusive nasceu com o propósito bem alinhado com IoT, mas o Hardware que se dispunha na época era bastante rudimentar, ou seja, além dos computadores pessoais com poucos periféricos, os dispositivos embarcados eram quase inexistentes. O acesso à internet também era bem limitado e os protocolos de comunicação utilizados para os testes eram HTTP, TCP/IP e FTP

Principalmente depois da criação do Arduino, a quantidade de tecnologias em sistemas embarcados, comunidade maker e gadgets forneceu a substância necessária para o crescimento do conceito de IoT. Mas o Arduino não apenas criou uma tecnologia nova, e sim, soube de forma brilhante disponibilizar para as pessoas a tecnologia dos Microcontroladores, que além de ser o componente principal dos sistemas embarcados, também tem na parte do hardware, o principal protagonista em IoT.


O Arduino não apenas criou uma tecnologia nova, mas soube de forma brilhante disponibilizar às pessoas a tecnologia dos Microcontroladores.

#DicaVsoft: Clique para entender mais sobre “Programação para Microcontroladores.

O que é um microcontrolador?

Agora que já expliquei um pouco da história por trás da IoT, inicio uma série de artigos para oferecer uma explicação mais clara e direta sobre o que são, como dimensionar e usar os microcontroladores e outras dicas para os usuários de placas de prototipagem para sistemas embarcados, ou nos programadores que se sentem atraídos pelo desenvolvimento de soluções em hardware.

Os microcontroladores são circuitos integrados “CIs”, mais conhecidos também como chips, que tem um computador dentro deles, uma espécie de computadores de um único chip. Logo, assim como qualquer computador, eles são variados em especificações, tamanhos de memória RAM e ROM, velocidade de operação e sistemas operacionais que podem ser instalados.

Então, é importante lembrar que existem vários fabricantes e modelos de Microcontroladores, cujo nome também é representado pelas siglas uC e MCU. Os mais famosos atualmente são listados abaixo:

  • Microcontroladores da Família PIC da fabricante Microchip;
  • Microcontroladores da Família AVR da fabricante Atmel comprada em 2006 pela Microchip;
  • Microcontroladores ESP da Espressif;
  • Microcontroladores ST da fabricante STM;
  • Microcontroladores MSP da Fabricante Texas Instruments.

Como escolher o melhor microcontrolador?

Assim como você pode passar dias pesquisando e vendo vídeos no Youtube antes de comprar seu próximo notebook, por que comprar um microcontrolador sem uma pesquisa para saber se ele atende às suas necessidades de projeto? 

Mas, para pesquisar precisamos saber o que procurar em um uC e também quais as especificações a observar, certo? Pois bem, pensando nisso, separei alguns fatores que podem ser levados em consideração na hora de pesquisar e escolher um bom uC.

Para a escolha de um desses computadores que trarão poder computacional ao seu projeto, devemos responder as seguintes perguntas:

  1. Qual valor quero pagar pelo chip?
  2. Que tipo de comunicação este uC deve ter com outros eletrônicos?
  3. A principal aplicação é digital ou analógica?
  4. Qual complexidade e quantidade de dispositivos irei conectar neste uC?
  5. Quantos pinos de entrada ou saída de sinais serão precisos?
  6. Qual o tamanho e qualidade da comunidade para este uC?

Estas perguntas são melhor respondidas quando já temos o escopo do nosso projeto. Então, para uma didática mais assertiva, vamos aqui imaginar que você queira fazer um relógio de cabeceira com as funções de mostrar data, hora, temperatura e avisar sobre seus compromissos consultando sua agenda via internet. Com essa ideia, podemos começar um escopo e imaginar bem as respostas para cada um dos itens acima. Confira mais detalhes sobre cada um deles a seguir.

Valor do componente: quanto custa um microcontrolador?

Você deve concordar comigo que essa é a mais importante característica comercial e de viabilização desse projeto, certo? 

No entanto, ela não deve ser a primeira a ser avaliada, pois o valor de compra só pode ser pesquisado depois que temos a visão das especificações técnicas. Mas, é provável que você já tenha uma ideia aproximada do limite do que quer gastar, e assim, deve procurar por componentes que estejam dentro do seu orçamento a fim de garantir a viabilidade do projeto.


Tipo de comunicação com outros eletrônicos

Para o projeto que usamos de exemplo, fica evidente que a comunicação que precisamos é a Wi-Fi, mas aí entra um detalhe bem importante no âmbito da eletrônica de embarcados. Nem sempre a comunicação é feita apenas em um protocolo, nem sempre existe apenas um canal de comunicação no projeto e sempre temos mais de um componente e não apenas o uC no equipamento que estamos projetando. 

A comunicação com o mundo externo, seja para pegar aqueles dados da agenda ou mesmo sincronizar o relógio, não precisa ser internamente no uC, podemos utilizar outros componentes que tenham essa função. Esses outros componentes podem compartilhar as informações com o uC via canal Serial (UART, USB ou outros nem tão conhecidos como I2C, SPI, CAN), até mesmo em comunicação paralela, como a pararell port

Alguns microcontroladores possuem internamente a eletrônica necessária para comunicação Wi-Fi ou até mesmo Ethernet, mas é importante lembrar que isso já irá afetar o custo deste componente. Alguns microcontroladores possuem conectividade wireless embarcada neles, a um custo extra, claro. Contudo, esse custo tem diminuído. Atualmente MCUs com conectividade Wi-Fi já possuem preços mais acessíveis e são opções viáveis, ainda que um pouco mais caros que microcontroladores mais simples. Cabe a você fazer a análise do custo benefício e avaliar as opções.

Também é válido lembrar que para medir a temperatura ambiente e para o display, podem ser necessários canais de comunicação. Alguns sensores de temperatura já entregam o valor em um sinal analógico que poderia ser lido por uma entrada analógica, outros enviam o valor da leitura via I2C ou outro método de comunicação. Além disso, o sensor será um dos elementos que deverão ser estudados e dimensionados no referido projeto. 

Aplicação digital ou analógica?

Dependendo da aplicação de seu projeto, um determinado microcontrolador pode ser útil, sobredimensionado ou impróprio. Conhecer as características do projeto é tão importante como conhecer as do componente que serão utilizados. 

Por isso, avalie se será necessário mais entradas digitais ou analógicas e qual a natureza de cada canal, e entenda se será entrada ou saída, pois existem também microcontroladores com saídas analógicas. Avalie também se vamos precisar de temporizadores internos e quantos serão necessários no caso, se vamos trabalhar com PWM e outras diversas definições que são importantes especificar e documentar.


Qual é a quantidade necessária de GPIO?

GPIO (General Purpose Input/Output) são as portas programáveis de entrada ou saída de dados digitais binários 0 ou 1. O 0 (zero) lógico é fisicamente representado como 0V no pino do microcontrolador e o 1 (um) lógico é representado como 5V ou 3.3V nos microcontroladores, podendo também, dependendo do modelo, ser outro valor de tensão, aí precisamos consultar o datasheet (Manual do Componente). 

É necessário saber quantas entradas e saídas iremos utilizar, como já foi dito. Por isso, temos aqui mais um conhecimento necessário: nos microcontroladores muitos pinos compartilham funções onde, às vezes, só é possível usar uma ou outra função. Um exemplo disso é quando um determinado pino pode ser referenciado como GPIO digital entrada ou saída, mas também pode ser utilizado como analógico e PWM, assim, tendo que ser configurado para apenas uma função na programação. Se você precisasse do PWM, já iria perder uma entrada analógica ou um GPIO. E, por esse motivo, existem tantos modelos de microcontroladores em cada fabricante.


Por que consultar a comunidade é importante?

Por fim, é importante fazer uma análise cuidadosa das informações disponíveis sobre o microcontrolador que iremos utilizar, entender se há uma comunidade ativa e quais ferramentas e softwares oferecem suporte a esse componente. 

Um exemplo de comunidade muito forte é a movimentada pelo Arduino que trabalha com os microcontroladores AVR Atmega entre alguns ARM e até Intel. Não é à toa que a popularização do Arduino se tornou tão grande. No entanto, existem comunidades ativas de outros microcontroladores também em sites internacionais, fóruns dos fabricantes, além de podermos fazer pesquisas prévias no GitHub e Stack Overflow.


Acompanhe os próximos conteúdos

Nos próximos artigos desta série, irei explicar os termos técnicos mais comuns dos microcontroladores, a arquitetura interna e mostrarei as principais IDEs e compiladores, tanto pagos como os gratuitos, trazendo também exemplos de códigos e num tutorial para a programação e simulação de aplicações práticas com microcontroladores. 

Gostou do conteúdo? Acompanhe o LinkedIn da Vsoft para receber mais novidades sobre o assunto e também acompanhar novos artigos publicados pelo time de Ambassadors.

Até a próxima!

Author

Kleber Oliveira

Projetista de Hardware e IoT

Posts relacionados

Todos os posts
go  top