O que é Internet das Coisas (IoT): exemplos e como começar

Entenda o que é Internet das Coisas (IoT), veja exemplos reais, aprenda a começar com Arduino e ESP32 com código pronto e descubra como é a carreira em IoT.

Internet das Coisas (IoT, do inglês Internet of Things) é a ideia de conectar objetos físicos à internet para que eles coletem dados, se comuniquem e possam ser controlados à distância. A lâmpada que você liga pelo celular, o sensor que avisa quando a câmara fria esquentou, o medidor que manda o consumo de energia direto para a distribuidora: tudo isso é IoT.

A boa notícia para quem programa: começar custa pouco. Com uma placa ESP32, um cabo USB e uma tarde, você coloca um dispositivo na sua rede Wi-Fi e controla um LED pelo navegador. O código está mais abaixo.

Como a IoT funciona: as quatro camadas

Quase todo sistema de IoT, do mais simples ao industrial, tem as mesmas peças:

Camada O que faz Exemplos
Dispositivo Sensores medem o mundo; atuadores agem nele Sensor de temperatura, relé, motor, LED, câmera
Conectividade Leva os dados do dispositivo para fora Wi-Fi, Bluetooth, Zigbee, LoRaWAN, 4G/5G, NB-IoT
Plataforma / back-end Recebe, guarda e processa os dados Servidores com MQTT, bancos de séries temporais, nuvem
Aplicação Mostra os dados e permite agir Painel web, app no celular, alertas, automações

Repare que só a primeira camada é "eletrônica". As outras três são software, e boa parte é o mesmo back-end de sempre: APIs, banco de dados, autenticação. Por isso, muita gente de desenvolvimento entra em IoT pelo lado do software.

MQTT: o protocolo que você vai encontrar em todo lugar

Dispositivos IoT costumam ter pouca memória, pouca energia e conexão instável. Por isso, em vez de HTTP para tudo, é muito comum usar MQTT, um protocolo leve baseado em publicar e assinar:

  • O sensor publica a temperatura no tópico casa/sala/temperatura.
  • Um servidor central, o broker (como o Mosquitto), recebe a mensagem.
  • Quem assinou aquele tópico (um painel, um banco de dados, outra placa) recebe o valor.

Se você for aprender só um conceito de IoT além da placa em si, aprenda MQTT.

Exemplos de IoT no dia a dia (e fora dele)

Em casa

  • Lâmpadas, tomadas e fechaduras inteligentes.
  • Assistentes de voz controlando aparelhos.
  • Câmeras e campainhas com vídeo no celular.
  • Sensores de vazamento de água ou de porta aberta.

Na indústria e nos negócios

  • Manutenção preditiva: sensores de vibração em motores avisam que algo vai quebrar antes de quebrar.
  • Agronegócio: sensores de umidade de solo, estações meteorológicas e monitoramento de silos. Uma área em que o Brasil tem muita aplicação prática, pelo tamanho do setor.
  • Logística: rastreamento de cargas e controle de temperatura de alimentos e vacinas durante o transporte.
  • Energia: medidores inteligentes e monitoramento de usinas solares.
  • Cidades: iluminação pública que se ajusta, monitoramento de vagas e de qualidade do ar.
  • Saúde: equipamentos de monitoramento de pacientes que enviam dados para a equipe médica.

Como começar com Arduino e ESP32

Qual placa comprar

Placa Prós Contras Indicação
Arduino Uno Simples, robusta, mais tutoriais do mundo Sem Wi-Fi, pouca memória Aprender eletrônica e lógica do zero
ESP32 Wi-Fi e Bluetooth integrados, barato, potente Funciona em 3,3 V (cuidado com sensores de 5 V), modelos variam bastante Melhor escolha para IoT
ESP8266 Muito barato, Wi-Fi Mais limitado que o ESP32, menos pinos Projetos simples, se você já tiver um
Raspberry Pi É um computador completo com Linux Mais caro, consome mais energia, não é microcontrolador Gateway, servidor local, câmera, visão computacional

Nossa recomendação: comece com um ESP32 em formato de placa de desenvolvimento (as chamadas "DevKit"). Ela faz tudo que o Arduino Uno faz para iniciantes e ainda conecta na internet, que é o ponto da IoT. Kits iniciais com protoboard, jumpers, resistores, LEDs e alguns sensores são uma ótima compra e costumam ter preço acessível.

O que você vai precisar:

  • Uma placa ESP32 DevKit e um cabo USB que transmita dados (muitos cabos só carregam e não funcionam, a causa número um de frustração no primeiro dia).
  • Protoboard, jumpers, alguns LEDs e resistores (220 Ω a 330 Ω para LEDs).
  • Um sensor simples, como um DHT22 (temperatura e umidade) ou um sensor de luz (LDR).

Configurando o ambiente

  1. Instale a Arduino IDE (versão 2) pelo site oficial arduino.cc.
  2. Em Preferências, adicione a URL de placas do ESP32 que está na documentação oficial da Espressif (o pacote "esp32 by Espressif Systems").
  3. No Gerenciador de Placas, instale o pacote do ESP32.
  4. Conecte a placa, escolha o modelo (por exemplo, "ESP32 Dev Module") e a porta correta em Ferramentas.

Atenção se a porta não aparecer, troque o cabo USB antes de qualquer outra coisa. Em alguns computadores também é preciso instalar o driver do chip USB da placa (CP210x ou CH340, dependendo do modelo).

Projeto 1: o "Olá, mundo" do hardware

Piscar um LED. Muitas placas ESP32 DevKit têm um LED integrado no pino 2 (confira a da sua; no Arduino Uno, use LED_BUILTIN, que é o pino 13).

const int LED = 2;

void setup() {
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(500);
  digitalWrite(LED, LOW);
  delay(500);
}

Todo programa de Arduino tem essas duas funções: setup() roda uma vez quando a placa liga, e loop() roda para sempre. Se você já sabe o básico de programação, a lógica é a mesma; muda que agora o resultado acende no mundo real.

Projeto 2: controlar o LED pelo navegador via Wi-Fi

Aqui a IoT de fato começa. O ESP32 se conecta à sua rede e vira um pequeno servidor web:

#include <WiFi.h>
#include <WebServer.h>

const char* SSID = "NOME_DA_SUA_REDE";
const char* SENHA = "SENHA_DA_SUA_REDE";
const int LED = 2;

WebServer server(80);

void ligar() {
  digitalWrite(LED, HIGH);
  server.send(200, "text/plain", "LED ligado");
}

void desligar() {
  digitalWrite(LED, LOW);
  server.send(200, "text/plain", "LED desligado");
}

void setup() {
  Serial.begin(115200);
  pinMode(LED, OUTPUT);

  WiFi.begin(SSID, SENHA);
  Serial.print("Conectando");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.print("Conectado! IP: ");
  Serial.println(WiFi.localIP());

  server.on("/ligar", ligar);
  server.on("/desligar", desligar);
  server.begin();
}

void loop() {
  server.handleClient();
}

Envie o código, abra o Monitor Serial em 115200 baud e anote o IP que aparecer. Depois, no navegador de um celular ou computador na mesma rede, acesse http://SEU_IP/ligar e http://SEU_IP/desligar.

Dica o ESP32 só se conecta a redes de 2,4 GHz. Se seu roteador separa as redes de 2,4 GHz e 5 GHz, use o nome da de 2,4 GHz.

Prefere Python? Use MicroPython

O ESP32 também roda MicroPython, uma versão de Python para microcontroladores. O mesmo pisca-LED fica assim:

from machine import Pin
import time

led = Pin(2, Pin.OUT)

while True:
    led.value(not led.value())
    time.sleep(0.5)

Para isso, você grava o firmware do MicroPython na placa (instruções em micropython.org) e usa um editor como o Thonny. É uma ótima porta de entrada para quem já conhece Python, mas a maioria dos tutoriais e bibliotecas de sensores ainda é para o ambiente Arduino em C++.

Próximos projetos sugeridos

  1. Ler temperatura e umidade com um DHT22 e mostrar no Monitor Serial.
  2. Publicar essas leituras via MQTT num broker local (Mosquitto) ou público de testes.
  3. Montar um painel para ver os dados, com uma ferramenta pronta como Node-RED ou Home Assistant, ou criando a sua própria página.
  4. Disparar um alerta (e-mail ou mensagem) quando a temperatura passar de um limite.
  5. Fazer a placa funcionar a bateria usando o modo deep sleep.

Quando terminar o item 4, você terá montado um sistema de IoT completo, com as quatro camadas da tabela lá de cima.

Segurança: o ponto fraco da IoT

Muitos dispositivos IoT baratos saem de fábrica com senhas padrão, sem atualização e com comunicação sem criptografia. Isso já foi explorado em ataques de grande escala usando câmeras e roteadores invadidos. Em projetos pessoais e, principalmente, profissionais:

  • Nunca deixe senhas no código que vai para um repositório público.
  • Use TLS (MQTT sobre TLS, HTTPS) quando os dados saírem da sua rede local.
  • Não exponha o dispositivo diretamente na internet abrindo portas no roteador; use um broker ou serviço intermediário.
  • Planeje atualização de firmware remota (OTA) desde o início.

Quem entende de segurança em IoT é raro e muito valorizado.

Carreira em IoT

IoT não é exatamente um cargo, é um conjunto de áreas. As vagas costumam aparecer com outros nomes:

Perfil O que faz Habilidades principais
Desenvolvedor de sistemas embarcados Programa o firmware dos dispositivos C/C++, microcontroladores, RTOS, eletrônica básica, protocolos (I2C, SPI, UART)
Engenheiro de hardware Projeta as placas e circuitos Eletrônica, desenho de PCB, normas
Desenvolvedor back-end / plataforma IoT Recebe, processa e armazena dados dos dispositivos MQTT, Python/Node/Go/Java, bancos de séries temporais, nuvem
Desenvolvedor de aplicação Painéis e apps para os usuários Front-end, mobile, visualização de dados
Automação industrial Integra sensores e máquinas na fábrica CLPs, redes industriais, protocolos como Modbus e OPC UA

Como entrar na área

  • Vindo de software: o caminho mais curto é o lado da plataforma. Aprenda MQTT, faça os projetos acima e monte um portfólio com dispositivos reais mandando dados para uma API sua.
  • Vindo de engenharia (elétrica, eletrônica, mecatrônica, computação): aprofunde-se em C/C++ embarcado e em um RTOS como o FreeRTOS, que já vem integrado no ESP32.
  • Setores que mais contratam: indústria, agronegócio, energia, utilities (água, gás, eletricidade), logística e saúde. Vale procurar empresas desses setores, não só "empresas de tecnologia".

Uma vantagem honesta da área: há bem menos concorrência que em desenvolvimento web, e projetos com hardware de verdade chamam muita atenção em entrevistas. A desvantagem: menos vagas no total e maior concentração em polos industriais e tecnológicos.

Para ver como IoT se encaixa entre as outras trilhas da profissão, leia nosso guia de carreira de desenvolvedor. E se você ainda está no começo da programação em geral, o plano de 6 meses para aprender a programar te dá a base de lógica que vai fazer toda a diferença na hora de escrever o firmware. Para fundamentos de computação que ajudam muito em embarcados, o CS50 gratuito começa justamente por C.

IoT tem uma graça que pouca área de software tem: o seu código sai da tela e mexe no mundo físico. Compre um ESP32, faça um LED piscar e veja se essa sensação te pega.

Perguntas frequentes

O que é Internet das Coisas em palavras simples?

É a conexão de objetos físicos à internet, como lâmpadas, sensores, máquinas e eletrodomésticos, para que eles enviem dados e possam ser controlados à distância. Uma tomada inteligente que você liga pelo celular é IoT.

Qual a diferença entre Arduino e ESP32?

Arduino Uno é uma placa simples, ótima para aprender eletrônica e programação básica, mas sem Wi-Fi. O ESP32 é uma placa barata com Wi-Fi e Bluetooth integrados, mais potente, e pode ser programada na própria IDE do Arduino. Para projetos de IoT, o ESP32 costuma ser a melhor escolha.

Preciso saber eletrônica para trabalhar com IoT?

Para começar, só o básico: o que é tensão, corrente, resistor e como usar uma protoboard. Isso se aprende nos primeiros projetos. Trabalhos com hardware próprio exigem mais eletrônica; trabalhos com plataformas e software de IoT exigem menos.

Qual linguagem de programação é usada em IoT?

Nos dispositivos, principalmente C e C++ (inclusive no Arduino) e, em placas como o ESP32, também MicroPython. No servidor e na nuvem, as linguagens comuns de back-end, como Python, Node.js, Go e Java.

IoT é uma boa área para trabalhar?

É uma área com demanda em indústria, agronegócio, energia, logística e saúde, e com menos concorrência que desenvolvimento web. Em contrapartida, há menos vagas com o título 'IoT', e muitas oportunidades aparecem como sistemas embarcados, automação ou back-end.

Leia também