SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
IoT com Arduino
Conecte tudo na rede!
Prof. Me. Daniel Rodrigues de Sousa | professor.daniel.rsousa@gmail.com
Daniel Rodrigues de Sousa
 Engenheiro eletricista formado pela Universidade Cruzeiro do Sul –
2001
 Mestre em Ciências da Computação pela UFABC - 2016
 Autor dos livros Microcontroladores ARM7 – O poder dos 32 bits,
Desbravando o PIC24 – Conheça os Microcontroladores de 16 bits,
Desbravando o PIC18 – Recursos Avançados, Desbravando o
Desbravando o PIC18 – Ensino Didático, todos pela Editora Érica
Agenda
➢
O que é IoT?
➢
Camadas de Rede IoT.
➢
Message Queuing Telemetry Transport – MQTT.
➢
Proposta de IoT com Arduino.
➢
Código.
➢
Demonstração.
Internet das Coisas – Termos Pesquisados
Internet das Coisas – Definição
A Internet das Coisas (Internet of Things – IoT), é uma rede de
objetos físicos, veículos, prédios e outros que possuem tecnologia
embarcada, sensores e conexão com rede capaz de coletar e
transmitir dados.
IoT nada mais é que uma extensão da Internet atual, que proporciona
aos objetos do dia-a-dia (quaisquer que sejam), mas com capacidade
computacional e de comunicação, se conectarem à Internet.
Permite que os próprios objetos sejam acessados como provedores
de serviços. Estas novas habilidades, dos objetos comuns, geram
um grande número de oportunidades tanto no âmbito acadêmico
quanto no industrial.
Internet das Coisas – Definição
1990 - John Romkey e
Simon Hackett
apresentou o primeiro
dispositivo conectado a
rede: uma torradeira
elétrica
Internet das Coisas - Aplicações
Arquitetura Básica dos Dispositivos IoT
Microcontrolador/
microprocessador:
➢PIC
➢AVR
➢8051
➢MSP
➢ARM
➢x86
➢x86-64
Arquitetura Básica dos Dispositivos IoT
Comunicação:
➢Ethernet
➢Wi-Fi
➢BLE
➢ZigBee
➢3G/4G
➢SigFox
➢LoraWan
Arquitetura Básica dos Dispositivos IoT
Fonte de Energia:
➢Baterias
➢Pilhas
➢Fonte
➢Células
Fotoelétricas
➢Geradores Eólicos
➢Redes de comuni-
cação
Arquitetura Básica dos Dispositivos IoT
Sensores:
➢Tensão
➢Temperatura
➢Luminosidade
➢Gazes
Atuadores:
➢Relés
➢Motores
➢Equipamentos
Arquitetura Básica dos Dispositivos IoT
Modelo de Conectividade de Dispositivos IoT
Protocolos e Camadas para IoT
Camadas Internet TCP/IP IP IoT
Aplicação
HTTP, HTTPS, FTP,
SSH, etc...
CoAP, MQTT
Transporte TCP, UDP UDP
Internet IPv4, IPv6 6LoWPAN
Rede
IEEE 803.2 Ethernet /
802.11 Wi-Fi
IEEE 802.11,
IEEE 802.15
Message Queuing Telemetry Transport - MQTT
Message Queuing Telemetry Transport - MQTT
Proposta de um Sistema IoT com MQTT
Broker MQTT
Subscribe
PublishSubscriber/
Publisher
Subscriber/
Publisher
Subscriber/
Publisher
Proposta de um Sistema IoT com MQTT
Broker MQTT
Subscribe
PublishSubscriber/
Publisher
Subscriber/
Publisher
Subscriber/
Publisher
Raspbian Jessie + Eclipse Mosquitto
Proposta de um Sistema IoT com MQTT
Broker MQTT
Subscribe
PublishSubscriber/
Publisher
Subscriber/
Publisher
Subscriber/
Publisher
Sketch Arduino + PubSubClient.h
Proposta de um Sistema IoT com MQTT
Broker MQTT
Subscribe
PublishSubscriber/
Publisher
Subscriber/
Publisher
Subscriber/
Publisher
Sketch Arduino + PubSubClient.h
Proposta de um Sistema IoT com MQTT
Broker MQTT
Subscribe
PublishSubscriber/
Publisher
Subscriber/
Publisher
Subscriber/
Publisher
App MQTT Dash
Raspberry Pi
Raspberry Pi
Intel Edison
Intel Galileo / Galileo Gen 2
ESP8266 - Módulos
ESP8266 - Módulos
ESP01 + Conversor USB/RS232
Instalação das Placas ESP8266
Instalação das Placas ESP8266
Código Arduino (PubSubClient.h)
Código Arduino (ESP01 / Intel Edison)
#define Intel_Edison
#ifdef Intel_Edison
#include <WiFi.h>
#else
#include <ESP8266WiFi.h>
#endif
#include <PubSubClient.h>
char ssid[] = "Teste";
// Rede
char pass[] = "0123456789"; // Senha da Rede
int keyIndex = 0; // númeso indexador da rede (para redes WEP)
Código Arduino (ESP01 / Intel Edison)
int status = WL_IDLE_STATUS;
#ifdef Intel_Edison
#define LED_1 2
#define LED_2 3
#define LED_3 4
#else
#define LED_1 2
#endif
bool flag_debug = false;
IPAddress ip;
IPAddress server(192, 168, 1, 182);
Código Arduino (ESP01 / Intel Edison)
WiFiClient ethClient;
PubSubClient client(ethClient);
void setup()
{
Serial.begin(115200);
Serial.setTimeout(10);
pinMode(LED_1, OUTPUT);
digitalWrite(LED_1, LOW);
#ifdef Intel_Edison
pinMode(LED_2, OUTPUT);
digitalWrite(LED_2, LOW);
pinMode(LED_3, OUTPUT);
digitalWrite(LED_3, LOW);
Código Arduino (ESP01 / Intel Edison)
#endif
conecta_Wifi();
Serial.println("Conectado na rede Wifi!");
printWifiStatus();
ip = WiFi.localIP();
client.setServer(server, 1883);
client.setCallback(callback);
}
Código Arduino (ESP01 / Intel Edison)
void loop()
{
if (!client.connected()) {
reconnect();
}
client.loop();
}
void reconnect() {
while (!client.connected()) {
Serial.print("Aguardando conexão com o servidor MQTT...");
#ifdef Intel_Edison
if (client.connect("INTEL_EDISON", "teste", "teste")) {
#else
if (client.connect("ESP8266", "teste", "teste")) {
#endif
Código Arduino (ESP01 / Intel Edison)
Serial.println("Conectado!");
#ifdef Intel_Edison
client.subscribe("edison/pincmd", 1);
#else
client.subscribe("esp8266/pincmd", 1);
#endif
} else {
Serial.print("falhou, rc=");
Serial.print(client.state());
Serial.println(" tentando novamente em 5 segundos...");
delay(5000);
}
}
}
Código Arduino (ESP01 / Intel Edison)
void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i=0;i<length;i++) {
Serial.print((char)payload[i]);
}
Serial.println();
#ifdef Intel_Edison
if(payload[0] == '3') digitalWrite(LED_1, HIGH);
if(payload[0] == '2') digitalWrite(LED_1, LOW);
if(payload[0] == '5') digitalWrite(LED_2, HIGH);
if(payload[0] == '4') digitalWrite(LED_2, LOW);
if(payload[0] == '7') digitalWrite(LED_3, HIGH);
if(payload[0] == '6') digitalWrite(LED_3, LOW);
Código Arduino (ESP01 / Intel Edison)
#else
if(payload[0] == '1') digitalWrite(LED_1, HIGH);
if(payload[0] == '0') digitalWrite(LED_1, LOW);
#endif
}
void conecta_Wifi() {
while (status != WL_CONNECTED) {
Serial.print("Tentativa de conexão na rede (SSID): ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
delay(5000);
}
}
Código Arduino (ESP01 / Intel Edison)
void printWifiStatus() {
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
IPAddress ip = WiFi.localIP();
Serial.print("Endereço IP: ");
Serial.println(ip);
long rssi = WiFi.RSSI();
Serial.print("Potência do sinal (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}
MQTT Dash
MQTT Dash
MQTT Dash
Perguntas?
Obrigado!
professor.daniel.rsousa@gmail.com

Mais conteúdo relacionado

Semelhante a IoT com Arduino - Conecte tudo na rede

Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Dalton Valadares
 
Computação Física e Internet das Coisas
Computação Física e Internet das CoisasComputação Física e Internet das Coisas
Computação Física e Internet das CoisasMichela Limaco
 
Workshop Introducao ao IoT - Arduino Day Recife 2017
Workshop Introducao ao IoT - Arduino Day Recife 2017Workshop Introducao ao IoT - Arduino Day Recife 2017
Workshop Introducao ao IoT - Arduino Day Recife 2017Eronides Neto
 
Conectando o arduino na nuvem
Conectando o arduino na nuvemConectando o arduino na nuvem
Conectando o arduino na nuvemSmartappsbr
 
The Things Network
The Things Network The Things Network
The Things Network Diogo Gomes
 
Mesa Redonda IoT Sieng PUC-RJ - Vinícius Correia
Mesa Redonda IoT Sieng PUC-RJ - Vinícius CorreiaMesa Redonda IoT Sieng PUC-RJ - Vinícius Correia
Mesa Redonda IoT Sieng PUC-RJ - Vinícius CorreiaVinícius Leódido Correia
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Eronides Da Silva Neto
 
Internet das Coisas (IoT - Internet of Things)
Internet das Coisas (IoT - Internet of Things)Internet das Coisas (IoT - Internet of Things)
Internet das Coisas (IoT - Internet of Things)Rogerio Alencar Filho
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasMarco Antonio Maciel
 
Minicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasMinicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasRomulo Fagundes
 
IoT – Internet of Things. Do Básico ao Hello World!
IoT – Internet of Things. Do Básico ao Hello World!IoT – Internet of Things. Do Básico ao Hello World!
IoT – Internet of Things. Do Básico ao Hello World!Rodolfo Cruz
 
Tecnologias LPWA: Conectando o que não foi conectado
Tecnologias LPWA: Conectando o que não foi conectado Tecnologias LPWA: Conectando o que não foi conectado
Tecnologias LPWA: Conectando o que não foi conectado Eronides Da Silva Neto
 
Tecnologias LPWA: conectando o que nao foi conectado
Tecnologias LPWA: conectando o que nao foi conectadoTecnologias LPWA: conectando o que nao foi conectado
Tecnologias LPWA: conectando o que nao foi conectadoEronides Da Silva Neto
 
Palestra arduino
Palestra arduinoPalestra arduino
Palestra arduinoWalter Coan
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 

Semelhante a IoT com Arduino - Conecte tudo na rede (20)

IoT - Internet of Things
IoT -  Internet of ThingsIoT -  Internet of Things
IoT - Internet of Things
 
Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0Internet das Coisas e a Indústria 4.0
Internet das Coisas e a Indústria 4.0
 
Computação Física e Internet das Coisas
Computação Física e Internet das CoisasComputação Física e Internet das Coisas
Computação Física e Internet das Coisas
 
Bento Quirino Apresentação
Bento Quirino ApresentaçãoBento Quirino Apresentação
Bento Quirino Apresentação
 
Workshop Introducao ao IoT - Arduino Day Recife 2017
Workshop Introducao ao IoT - Arduino Day Recife 2017Workshop Introducao ao IoT - Arduino Day Recife 2017
Workshop Introducao ao IoT - Arduino Day Recife 2017
 
Conectando o arduino na nuvem
Conectando o arduino na nuvemConectando o arduino na nuvem
Conectando o arduino na nuvem
 
IoT: construindo ideias com nodeMCU e MQTT
IoT: construindo ideias com nodeMCU e MQTTIoT: construindo ideias com nodeMCU e MQTT
IoT: construindo ideias com nodeMCU e MQTT
 
The Things Network
The Things Network The Things Network
The Things Network
 
Mesa Redonda IoT Sieng PUC-RJ - Vinícius Correia
Mesa Redonda IoT Sieng PUC-RJ - Vinícius CorreiaMesa Redonda IoT Sieng PUC-RJ - Vinícius Correia
Mesa Redonda IoT Sieng PUC-RJ - Vinícius Correia
 
Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)Plataformas open-source para Internet das Coisas (IoT)
Plataformas open-source para Internet das Coisas (IoT)
 
Internet das Coisas (IoT - Internet of Things)
Internet das Coisas (IoT - Internet of Things)Internet das Coisas (IoT - Internet of Things)
Internet das Coisas (IoT - Internet of Things)
 
Desenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das CoisasDesenvolvendo Produtos para Internet das Coisas
Desenvolvendo Produtos para Internet das Coisas
 
Minicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das CoisasMinicurso CONIC - Internet das Coisas
Minicurso CONIC - Internet das Coisas
 
IoT – Internet of Things. Do Básico ao Hello World!
IoT – Internet of Things. Do Básico ao Hello World!IoT – Internet of Things. Do Básico ao Hello World!
IoT – Internet of Things. Do Básico ao Hello World!
 
Tecnologias LPWA: Conectando o que não foi conectado
Tecnologias LPWA: Conectando o que não foi conectado Tecnologias LPWA: Conectando o que não foi conectado
Tecnologias LPWA: Conectando o que não foi conectado
 
Tecnologias LPWA: conectando o que nao foi conectado
Tecnologias LPWA: conectando o que nao foi conectadoTecnologias LPWA: conectando o que nao foi conectado
Tecnologias LPWA: conectando o que nao foi conectado
 
Palestra arduino
Palestra arduinoPalestra arduino
Palestra arduino
 
Apicon2018.pptx
Apicon2018.pptxApicon2018.pptx
Apicon2018.pptx
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Desafios do IoT
Desafios do IoTDesafios do IoT
Desafios do IoT
 

Mais de Daniel Rodrigues de Sousa

Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDesenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDaniel Rodrigues de Sousa
 
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Daniel Rodrigues de Sousa
 
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Daniel Rodrigues de Sousa
 
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Daniel Rodrigues de Sousa
 
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Daniel Rodrigues de Sousa
 
Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Daniel Rodrigues de Sousa
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaDaniel Rodrigues de Sousa
 
Bootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICBootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICDaniel Rodrigues de Sousa
 

Mais de Daniel Rodrigues de Sousa (13)

Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB HarmonyDesenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
Desenvolvendo aplicações gráficas com a família PIC32MZ (DA) e ® MPLAB Harmony
 
Criando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry PiCriando sua própria nuvem com Raspberry Pi
Criando sua própria nuvem com Raspberry Pi
 
Existe vida após o arduino?
Existe vida após o arduino? Existe vida após o arduino?
Existe vida após o arduino?
 
Existe vida após o Arduino?
Existe vida após o Arduino?Existe vida após o Arduino?
Existe vida após o Arduino?
 
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
 
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
Robótica Educacional: Estudo com Validação Real do Controlador Proporcional I...
 
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
Low-power: Como reduzir o consumo de energia do seu produto e aumentar a vida...
 
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
Estudo com Validação Real do Controlador Proporcional Integral e Derivativo n...
 
Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...Implementação do controle PID e validação real utilizando a plataforma robóti...
Implementação do controle PID e validação real utilizando a plataforma robóti...
 
CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?CPBR7 - Existe vida depois do Arduino?
CPBR7 - Existe vida depois do Arduino?
 
Aplicações do microcontrolador PIC
Aplicações do microcontrolador PICAplicações do microcontrolador PIC
Aplicações do microcontrolador PIC
 
Aplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a diaAplicação dos microcontroladores no dia a dia
Aplicação dos microcontroladores no dia a dia
 
Bootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PICBootloader: Teoria de operação e implementação via USB para PIC
Bootloader: Teoria de operação e implementação via USB para PIC
 

IoT com Arduino - Conecte tudo na rede

  • 1. IoT com Arduino Conecte tudo na rede! Prof. Me. Daniel Rodrigues de Sousa | professor.daniel.rsousa@gmail.com
  • 2. Daniel Rodrigues de Sousa  Engenheiro eletricista formado pela Universidade Cruzeiro do Sul – 2001  Mestre em Ciências da Computação pela UFABC - 2016  Autor dos livros Microcontroladores ARM7 – O poder dos 32 bits, Desbravando o PIC24 – Conheça os Microcontroladores de 16 bits, Desbravando o PIC18 – Recursos Avançados, Desbravando o Desbravando o PIC18 – Ensino Didático, todos pela Editora Érica
  • 3. Agenda ➢ O que é IoT? ➢ Camadas de Rede IoT. ➢ Message Queuing Telemetry Transport – MQTT. ➢ Proposta de IoT com Arduino. ➢ Código. ➢ Demonstração.
  • 4. Internet das Coisas – Termos Pesquisados
  • 5. Internet das Coisas – Definição A Internet das Coisas (Internet of Things – IoT), é uma rede de objetos físicos, veículos, prédios e outros que possuem tecnologia embarcada, sensores e conexão com rede capaz de coletar e transmitir dados. IoT nada mais é que uma extensão da Internet atual, que proporciona aos objetos do dia-a-dia (quaisquer que sejam), mas com capacidade computacional e de comunicação, se conectarem à Internet. Permite que os próprios objetos sejam acessados como provedores de serviços. Estas novas habilidades, dos objetos comuns, geram um grande número de oportunidades tanto no âmbito acadêmico quanto no industrial.
  • 6. Internet das Coisas – Definição 1990 - John Romkey e Simon Hackett apresentou o primeiro dispositivo conectado a rede: uma torradeira elétrica
  • 7. Internet das Coisas - Aplicações
  • 8. Arquitetura Básica dos Dispositivos IoT
  • 11. Fonte de Energia: ➢Baterias ➢Pilhas ➢Fonte ➢Células Fotoelétricas ➢Geradores Eólicos ➢Redes de comuni- cação Arquitetura Básica dos Dispositivos IoT
  • 13. Modelo de Conectividade de Dispositivos IoT
  • 14. Protocolos e Camadas para IoT Camadas Internet TCP/IP IP IoT Aplicação HTTP, HTTPS, FTP, SSH, etc... CoAP, MQTT Transporte TCP, UDP UDP Internet IPv4, IPv6 6LoWPAN Rede IEEE 803.2 Ethernet / 802.11 Wi-Fi IEEE 802.11, IEEE 802.15
  • 15. Message Queuing Telemetry Transport - MQTT
  • 16. Message Queuing Telemetry Transport - MQTT
  • 17. Proposta de um Sistema IoT com MQTT Broker MQTT Subscribe PublishSubscriber/ Publisher Subscriber/ Publisher Subscriber/ Publisher
  • 18. Proposta de um Sistema IoT com MQTT Broker MQTT Subscribe PublishSubscriber/ Publisher Subscriber/ Publisher Subscriber/ Publisher Raspbian Jessie + Eclipse Mosquitto
  • 19. Proposta de um Sistema IoT com MQTT Broker MQTT Subscribe PublishSubscriber/ Publisher Subscriber/ Publisher Subscriber/ Publisher Sketch Arduino + PubSubClient.h
  • 20. Proposta de um Sistema IoT com MQTT Broker MQTT Subscribe PublishSubscriber/ Publisher Subscriber/ Publisher Subscriber/ Publisher Sketch Arduino + PubSubClient.h
  • 21. Proposta de um Sistema IoT com MQTT Broker MQTT Subscribe PublishSubscriber/ Publisher Subscriber/ Publisher Subscriber/ Publisher App MQTT Dash
  • 25. Intel Galileo / Galileo Gen 2
  • 28. ESP01 + Conversor USB/RS232
  • 32. Código Arduino (ESP01 / Intel Edison) #define Intel_Edison #ifdef Intel_Edison #include <WiFi.h> #else #include <ESP8266WiFi.h> #endif #include <PubSubClient.h> char ssid[] = "Teste"; // Rede char pass[] = "0123456789"; // Senha da Rede int keyIndex = 0; // númeso indexador da rede (para redes WEP)
  • 33. Código Arduino (ESP01 / Intel Edison) int status = WL_IDLE_STATUS; #ifdef Intel_Edison #define LED_1 2 #define LED_2 3 #define LED_3 4 #else #define LED_1 2 #endif bool flag_debug = false; IPAddress ip; IPAddress server(192, 168, 1, 182);
  • 34. Código Arduino (ESP01 / Intel Edison) WiFiClient ethClient; PubSubClient client(ethClient); void setup() { Serial.begin(115200); Serial.setTimeout(10); pinMode(LED_1, OUTPUT); digitalWrite(LED_1, LOW); #ifdef Intel_Edison pinMode(LED_2, OUTPUT); digitalWrite(LED_2, LOW); pinMode(LED_3, OUTPUT); digitalWrite(LED_3, LOW);
  • 35. Código Arduino (ESP01 / Intel Edison) #endif conecta_Wifi(); Serial.println("Conectado na rede Wifi!"); printWifiStatus(); ip = WiFi.localIP(); client.setServer(server, 1883); client.setCallback(callback); }
  • 36. Código Arduino (ESP01 / Intel Edison) void loop() { if (!client.connected()) { reconnect(); } client.loop(); } void reconnect() { while (!client.connected()) { Serial.print("Aguardando conexão com o servidor MQTT..."); #ifdef Intel_Edison if (client.connect("INTEL_EDISON", "teste", "teste")) { #else if (client.connect("ESP8266", "teste", "teste")) { #endif
  • 37. Código Arduino (ESP01 / Intel Edison) Serial.println("Conectado!"); #ifdef Intel_Edison client.subscribe("edison/pincmd", 1); #else client.subscribe("esp8266/pincmd", 1); #endif } else { Serial.print("falhou, rc="); Serial.print(client.state()); Serial.println(" tentando novamente em 5 segundos..."); delay(5000); } } }
  • 38. Código Arduino (ESP01 / Intel Edison) void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); for (int i=0;i<length;i++) { Serial.print((char)payload[i]); } Serial.println(); #ifdef Intel_Edison if(payload[0] == '3') digitalWrite(LED_1, HIGH); if(payload[0] == '2') digitalWrite(LED_1, LOW); if(payload[0] == '5') digitalWrite(LED_2, HIGH); if(payload[0] == '4') digitalWrite(LED_2, LOW); if(payload[0] == '7') digitalWrite(LED_3, HIGH); if(payload[0] == '6') digitalWrite(LED_3, LOW);
  • 39. Código Arduino (ESP01 / Intel Edison) #else if(payload[0] == '1') digitalWrite(LED_1, HIGH); if(payload[0] == '0') digitalWrite(LED_1, LOW); #endif } void conecta_Wifi() { while (status != WL_CONNECTED) { Serial.print("Tentativa de conexão na rede (SSID): "); Serial.println(ssid); status = WiFi.begin(ssid, pass); delay(5000); } }
  • 40. Código Arduino (ESP01 / Intel Edison) void printWifiStatus() { Serial.print("SSID: "); Serial.println(WiFi.SSID()); IPAddress ip = WiFi.localIP(); Serial.print("Endereço IP: "); Serial.println(ip); long rssi = WiFi.RSSI(); Serial.print("Potência do sinal (RSSI):"); Serial.print(rssi); Serial.println(" dBm"); }