IoT: Construindo Ideias com
NodeMCU e MQTT
Cícero Moura
Internet das Coisas
“Sensores e atuadores embutidos em objetos físicos que são
conectados através de redes cabeadas ou sem fio,
frequentemente utilizando o mesmo protocolo utilizado por
toda a internet (IP).” (McKinsey)
#IoT
#InternetOfThings
#InternetDasCoisas
#WebDasCoisas
Sensores
Sensores proporcionam interação do sistema embarcado com o
meio externo, provendo monitoramento por grandezas físicas:
temperatura, umidade, presença, luminosidade.
Atuadores
Os atuadores são responsáveis pela resposta, atendendo a
comando e produzindo alguma ação, como envio de mensagens,
movimento e entre outros.
Exemplos: relê, servo, buzzer
Internet
É o meio de comunicação com a rede de computadores, podendo
ser com fio ou sem fio.
Podemos ter outros meios de comunicação como bluetooth e
infravermelho, mas para ser IoT tem que ter a conexão com a
internet.
Microcontroladores
Microcontroladores
Microcontrolador é um circuito integrado composto por
hardware e software, podendo ser programados.
Algumas características:
1. baixa capacidade de processamento;
2. pouca memória disponível;
3. consumo de pouca energia;
4. perfeito para funções dedicadas.
Arduino
O Arduino não é um microcontrolador e sim uma plataforma de
prototipação de dispositivos para IoT.
Confusão muito comum, porém ele utiliza microcontroladores
da Atmel, que são os ATmega nas versões 168 e 328P.
ESP8266
Microcontrolador da empresa Espressif, que possui uma
capacidade de memória e processamento maior que o
ATmega328P.
Se destaca por já incorporar em seu circuito um chip para
conexão com a internet Wi-Fi.
Plataformas
Arduino’s
Hardware e software livre.
Possuem uma IDE de desenvolvimento própria e são
programados na linguagem C++ com algumas adaptações.
Estão disponíveis diversos sensores, atuadores, bibliotecas
para programação e tutoriais.
Raspberry Pi
Microcomputador, do tamanho de um cartão, porém com um
poder de processamento razoável.
Raspberry PI 3 Model B:
● Processador Broadcom 64bit ARMv8 Quad-Core
● Clock 1.2 GHz
● 1GB de memória ram
● Ethernet, Wifi e Bluetooth
● Conector de vídeo HDMI
● 4 portas USB 2.0
● Slot para cartão microSD
NodeMCU
Plataforma para desenvolvimento com o microcontrolador
ESP8266.
Características:
● Programável em Lua ou C/C++
● Conexão: Wireless padrão 802.11 b/g/n
● Conector: micro-usb
● Modos de operação: STA/AP/STA+AP
● Portas GPIO: 11
● Tensão de operação: 4,5 ~ 9V
○ Conversor de tensão para 3,3V
NodeMCU com Lua
Para Programar em Lua necessita da gravação de um firmware:
1. Download do firmware (nodemcu-build.com)
2. Gravação por USB e utilizando o programa ESPtool
3. IDE de programação é a ESPlorer
4. Exemplo de conectar a rede WiFI:
Nuvem
MQTT
Protocolo de comunicação próprio para aplicações de IoT.
Message Queue Telemetry Transport, criado pela IBM.
Possui algumas características legais:
● Protocolo de troca de mensagens
● Leve e rápido
● Consome menos banda da rede
● Código aberto
MQTT: Conceitos
● Publisher: quem envia a mensagem
● MQTT Broker: servidor(Mosquitto e Eclipse IoT)
● Subscriber: quem solicita a mensagem
● Topic: canal da mensagem
IoT na Nuvem
Plataformas que contém serviços próprios para IoT na nuvem.
● Microsoft Azure (Hub IoT)
● Amazon AWS (AWS IoT)
● Google Cloud Platform
Show me the Code
Materiais
NodeMCU 1.0 ESP-12
Display Oled 0.96 I2C
Sensor DHT11
Prototipação
NodeMCU com C/C++
Adicionar dispositivos(http://arduino.esp8266.com/stable/package_esp8266com_index.json)
1
2
NodeMCU com C/C++
Instalação dos dispositivos com ESP8266
IDE Arduino: Ferramentas -> Placa -> Gerenciar
Bibliotecas
Instalação das bibliotecas.
IDE Arduino: Sketch -> Incluir -> Gerenciar
● DHT Sensor Library (DHT11)
● Adafruit SSD1306 (Display OLED)
● PubSubCLient (MQTT)
Código - Include’s
Código - Setup
1
2
3
Código - Loop
1
2
3
Código - Loop
4
5
Aplicativo Android
● Aplicativos Android Nativo:
○ paho (Eclipse)
○ MQTT SDK (IBM)
● Aplicativos Android Híbridos:
○ paho (Eclipse)
○ Cordova MQTT plugin (Apache)
● Aplicativo PlayStore:
○ MQTT Dashboard
Cícero Moura
cicerojmm@gmail.com
github.com/cicerojmm

IoT: construindo ideias com nodeMCU e MQTT

  • 1.
    IoT: Construindo Ideiascom NodeMCU e MQTT Cícero Moura
  • 2.
    Internet das Coisas “Sensorese atuadores embutidos em objetos físicos que são conectados através de redes cabeadas ou sem fio, frequentemente utilizando o mesmo protocolo utilizado por toda a internet (IP).” (McKinsey) #IoT #InternetOfThings #InternetDasCoisas #WebDasCoisas
  • 3.
    Sensores Sensores proporcionam interaçãodo sistema embarcado com o meio externo, provendo monitoramento por grandezas físicas: temperatura, umidade, presença, luminosidade.
  • 4.
    Atuadores Os atuadores sãoresponsáveis pela resposta, atendendo a comando e produzindo alguma ação, como envio de mensagens, movimento e entre outros. Exemplos: relê, servo, buzzer
  • 5.
    Internet É o meiode comunicação com a rede de computadores, podendo ser com fio ou sem fio. Podemos ter outros meios de comunicação como bluetooth e infravermelho, mas para ser IoT tem que ter a conexão com a internet.
  • 6.
  • 7.
    Microcontroladores Microcontrolador é umcircuito integrado composto por hardware e software, podendo ser programados. Algumas características: 1. baixa capacidade de processamento; 2. pouca memória disponível; 3. consumo de pouca energia; 4. perfeito para funções dedicadas.
  • 8.
    Arduino O Arduino nãoé um microcontrolador e sim uma plataforma de prototipação de dispositivos para IoT. Confusão muito comum, porém ele utiliza microcontroladores da Atmel, que são os ATmega nas versões 168 e 328P.
  • 9.
    ESP8266 Microcontrolador da empresaEspressif, que possui uma capacidade de memória e processamento maior que o ATmega328P. Se destaca por já incorporar em seu circuito um chip para conexão com a internet Wi-Fi.
  • 10.
  • 11.
    Arduino’s Hardware e softwarelivre. Possuem uma IDE de desenvolvimento própria e são programados na linguagem C++ com algumas adaptações. Estão disponíveis diversos sensores, atuadores, bibliotecas para programação e tutoriais.
  • 12.
    Raspberry Pi Microcomputador, dotamanho de um cartão, porém com um poder de processamento razoável. Raspberry PI 3 Model B: ● Processador Broadcom 64bit ARMv8 Quad-Core ● Clock 1.2 GHz ● 1GB de memória ram ● Ethernet, Wifi e Bluetooth ● Conector de vídeo HDMI ● 4 portas USB 2.0 ● Slot para cartão microSD
  • 13.
    NodeMCU Plataforma para desenvolvimentocom o microcontrolador ESP8266. Características: ● Programável em Lua ou C/C++ ● Conexão: Wireless padrão 802.11 b/g/n ● Conector: micro-usb ● Modos de operação: STA/AP/STA+AP ● Portas GPIO: 11 ● Tensão de operação: 4,5 ~ 9V ○ Conversor de tensão para 3,3V
  • 14.
    NodeMCU com Lua ParaProgramar em Lua necessita da gravação de um firmware: 1. Download do firmware (nodemcu-build.com) 2. Gravação por USB e utilizando o programa ESPtool 3. IDE de programação é a ESPlorer 4. Exemplo de conectar a rede WiFI:
  • 15.
  • 16.
    MQTT Protocolo de comunicaçãopróprio para aplicações de IoT. Message Queue Telemetry Transport, criado pela IBM. Possui algumas características legais: ● Protocolo de troca de mensagens ● Leve e rápido ● Consome menos banda da rede ● Código aberto
  • 17.
    MQTT: Conceitos ● Publisher:quem envia a mensagem ● MQTT Broker: servidor(Mosquitto e Eclipse IoT) ● Subscriber: quem solicita a mensagem ● Topic: canal da mensagem
  • 18.
    IoT na Nuvem Plataformasque contém serviços próprios para IoT na nuvem. ● Microsoft Azure (Hub IoT) ● Amazon AWS (AWS IoT) ● Google Cloud Platform
  • 19.
  • 20.
    Materiais NodeMCU 1.0 ESP-12 DisplayOled 0.96 I2C Sensor DHT11
  • 21.
  • 22.
    NodeMCU com C/C++ Adicionardispositivos(http://arduino.esp8266.com/stable/package_esp8266com_index.json) 1 2
  • 23.
    NodeMCU com C/C++ Instalaçãodos dispositivos com ESP8266 IDE Arduino: Ferramentas -> Placa -> Gerenciar
  • 24.
    Bibliotecas Instalação das bibliotecas. IDEArduino: Sketch -> Incluir -> Gerenciar ● DHT Sensor Library (DHT11) ● Adafruit SSD1306 (Display OLED) ● PubSubCLient (MQTT)
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
    Aplicativo Android ● AplicativosAndroid Nativo: ○ paho (Eclipse) ○ MQTT SDK (IBM) ● Aplicativos Android Híbridos: ○ paho (Eclipse) ○ Cordova MQTT plugin (Apache) ● Aplicativo PlayStore: ○ MQTT Dashboard
  • 30.