Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Workshop - Cotrole sua casa remotamente através da Internet

129 views

Published on

Workshop realizado no Red Bull Basement no dia 24/11.

Materiais Necessários para realizar esse workshop
placa nodeMCU
protoboard
módulo Rele
Códigos Exemplos
Exemplo 1 - blink
Exemplo 2 - Conexão WIFI
Exemplo 3 - Web Server - Hello World
Exemplo 4 - web Server - Acionamento de Saídas Digitais
Exemplo 5 - MQTT
Exemplo Bonus - MQTT- Leiutra de sensor DHT11 e acionamento de saídas
Slides
Introdução
IoT
Eletrônica Básica
ESP8266
Hands ON
Feedback
Se tiver alguma dúvida, crítica ou sugestão, envia para: fs.embarcados@gmail.com

Bons Estudos!

Mais detalhes em: https://github.com/FBSeletronica/Workshop-ESP8266

Published in: Engineering
  • Be the first to comment

Workshop - Cotrole sua casa remotamente através da Internet

  1. 1. WORKSHOP “CONTROLE SUA CASA REMOTAMENTE ATRAVÉS DA INTERNET” Por Fábio Souza
  2. 2. Fábio Souza Engenheiro com experiência no desenvolvimento de projetos eletrônicos embarcados. Hoje é diretor de operações do portal Embarcados, onde trabalha para levar conteúdos de eletrônica, sistemas embarcados e IoT para o Brasil. Também atua no ensino eletrônica e programação pelo Brasil. É entusiastas do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware, como o projeto Franzininho Participou da residência hacker 2018 no Red bull Basement. Quando não está ministrando palestras, cursos ou workshops, dedica seu tempo “escovando bits” ou projetando placas eletrônicas.
  3. 3. Agenda • IoT • Eletronica Básica • ESP8266 • IDE Arduino • ESP8266 web server • MQTT • Aplicação com MQTT
  4. 4. Internet das coisas
  5. 5. IoT É uma rede de objetosfísicos que possuem tecnologiaembarcada para comunicar, captar sinaise interagirconsigo mesmos ou com o ambiente externo. Gartner
  6. 6. Estrutura de IoT
  7. 7. Aplicações
  8. 8. IoT em funcionamento
  9. 9. Hardware Sensores + MCU/MPU + Conectividade
  10. 10. Empresas de Hardware
  11. 11. Diversas opções para prototipagem usando as tecnologias mais atuais Placas Saiba Mais:IoT Hardware Guide
  12. 12. Protocolos Infográfico de alguns protocolos de rede para IoT
  13. 13. Eletrônica Básica
  14. 14. Circuito Elétrico
  15. 15. Corrente Alternada x Corrente Contínua (AC/DC)
  16. 16. Tensão, Corrente e Resistência • Tensão: unidade volt (V) em homenagem a Alessandro Volta; • Corrente: Unidade ampere (A), em homenagem a André Marie Ampère; • Resistência: Unidade Ohm (Ω), em homenagem a Georg Simon Ohm. https://www.embarcados.com.br/tensao-corrente-e-resistencia-eletrica/
  17. 17. Tensão Resumidamentea tensão elétrica é a diferença de potencialentre dois pontos. Sua unidadeé o volt (V) e é representada nas equações e circuitosgeralmente pelasletras U e V. https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law/all https://www.embarcados.com.br/tensao-corrente-e-resistencia-eletrica/
  18. 18. Corrente É o fluxo de elétronsem um condutor quandosubmetido a uma diferença de potencial. A corrente elétrica pode causaralguns efeitos, por exemplo, o efeito térmico e efeito luminoso,que usamos em nosso dia a dia. A unidadede corrente elétrica é o ampère (A) e é geralmente representadaem equações e circuitos pela letra I. https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law/all https://www.embarcados.com.br/tensao-corrente-e-resistencia-eletrica/
  19. 19. Resistência A oposição à passagem de corrente é chamada de resistência elétrica. A unidadede Resistênciaelétrica é o Ohm cujo o símbolo é representado pela letra grega “Omega” (Ω). Ela é representadageralmente pela letra R em equações e circuitos. https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law/all https://www.embarcados.com.br/tensao-corrente-e-resistencia-eletrica/
  20. 20. Lei de Ohm “A corrente que flui por um resistor é proporcional à tensão aplicada e inversamente proporcional ao valor de sua resistência" Representada matematicamente por: I = V/R (Corrente é igual ao valor da tensão dividida pela resistência) https://www.embarcados.com.br/tensao-corrente-e-resistencia-eletrica/
  21. 21. Lei de Ohm
  22. 22. Potência
  23. 23. Prefixos do sistema internacional
  24. 24. Resistores
  25. 25. Código de cores
  26. 26. Circuitos: série e paralelo https://learn.sparkfun.com/tutorials/series-and-parallel-circuits
  27. 27. Divisor de tensão https://learn.sparkfun.com/tutorials/voltage-dividers
  28. 28. Capacitores https://learn.sparkfun.com/tutorials/capacitors
  29. 29. Aplicação https://learn.sparkfun.com/tutorials/capacitors
  30. 30. Indutores
  31. 31. Diodos https://learn.sparkfun.com/tutorials/diodes
  32. 32. Retificador https://learn.sparkfun.com/tutorials/diodes
  33. 33. Diodo flyback https://learn.sparkfun.com/tutorials/diodes
  34. 34. LEDs https://learn.sparkfun.com/tutorials/light-emitting-diodes-leds
  35. 35. LEDs https://learn.sparkfun.com/tutorials/light-emitting-diodes-leds
  36. 36. Circuitos integrados https://learn.sparkfun.com/tutorials/diodes
  37. 37. Circuitos integrados https://learn.sparkfun.com/tutorials/diodes
  38. 38. Protoboard Matriz de contatos
  39. 39. Instrumentos
  40. 40. Ferramentas
  41. 41. Sensores e Atuadores
  42. 42. Sensores
  43. 43. Atuadores
  44. 44. Placas para IoT
  45. 45. Arduino
  46. 46. ESP8266 ● Processor: L106 32- bit RISC microprocessor core based on the Tensilica X tensa Diamond Standard 106Micro running at 80 MHz† ● 64 KiB of instruction RAM, 96 KiB of data RAM ● External QSPI flash: up to 16 MiB is supported (512 KiB to 4 MiB typi cally included) ● IEEE 802.11 b/g/n Wi-Fi ● Integrated TR switch, balun, LNA, power amplifier and matching network ● WEPor WPA/WPA2 authentication, or open net works ● 16 GPIO pins ● SPI ● I²C (software implementation) ● I²S interfaces with DMA(sharing pins with GPIO) ● UART on dedicated pins, plus a transmit- only UART can be enabled on GPIO2 ● 10-bit ADC (successive approximationADC)
  47. 47. Raspberry PI • SoC: Broadcom BCM2837 • CPU: 4× ARM Cortex-A53, 1.2GHz • GPU: Broadcom VideoCore IV • RAM: 1GB LPDDR2 (900 MHz) Networking: 10/100 Ethernet, 2.4GHz 802.11n wireless • Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy Storage: microSD • GPIO: 40-pin header, populated • Ports: HDMI, 3.5mm analogue audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)
  48. 48. LinkIt ONE All-in-One connectivity: Supports GSM, GPRS, Wi-Fi, Bluetooth (2.1 SPP and 4.0 GATT profiles), GNSS (GPS, GLONASS and BeiDou), Audio out and SD c ard connectors Pin-out similar to Arduino UNO, including Digital IO, Analog IO, PWM, I2C, SPI and UART Open hardware board reference design including schematic, layouts and pin details
  49. 49. Hands ON
  50. 50. nodeMCU A nodeMCU criada com base no módulo ESP 12E, facilita o processo de programação do ESP8266 por já possuir onboard, o conversor USB serial, regulador de tensão e pino de I/O para conexão em protoboard. Hoje você programa uma placa com ESP8266 diretamente na IDE do Arduino, como se fosse um.
  51. 51. pinout • A placa ainda possui um LED de uso geral conectado ao GPIO_16, um LED no módulo ESP 12E (GPIO_2), e botões RST (Reset) e FLASH (gravação do programa).
  52. 52. Esquemático O projeto é open hardwaree você pode acessaros arquivos no github: https://github.com/nodemcu/nodemcu-devkit-v1.0
  53. 53. Conversor USB Serial Existem versões da placa que usam diferentes chips para comunicação serial. A seguir você acessa os drivers para os dois chips mais comuns: • CH340 • CP2102
  54. 54. Instalar a Arduino IDE A IDE pode ser baixada gratuitamente no site do Arduino, onde pode ser escolhida a melhor opção de download conforme o sistema operacional que você utiliza.
  55. 55. Abra a IDE do Arduino
  56. 56. Conheça a IDE
  57. 57. Toolbar • Verify Verifica se existe erro no código digitado. • Upload Compila o código e grava na placa Arduino se corretamente conectada; • New Cria um novo sketch em branco. • Open Abre um sketch, presente no sketchbook. • Save Salva o sketch ativo • Seriamonitor Abre o monitor serial.
  58. 58. Configuração da IDE Arduino para programar o ESP8266 Na IDE acesse Arquivo > Preferências
  59. 59. Adicione a URL Na janela de configurações de preferências, digite a URL abaixo no campo “URLs adicionais de Gerenciadores de Placas”: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  60. 60. Acesse o gerencidor de placas Agora acesse Ferramentas > placas > Gerenciadores de Placas:
  61. 61. Instale o pacote Procure por ESP8266. Encontrando a opção “esp8266 by ESP8266 Community” clique em instalar:
  62. 62. Selecione a nodeMCU
  63. 63. Selecione a porta Pronto a IDE está configurada para programar a sua placa NodeMCU
  64. 64. Blink
  65. 65. Abra o Exemplo 1 Carregue o código para a placa e verique se o LED está piscando.
  66. 66. Conexão WIFI Agora vamos aprender conectar o ESP8266 a rede WIFI
  67. 67. Abra o Exemplo 2 Para conectar nossa placa ao WIFI vamos usar a biblioteca ESP8266Wifi.h atualizar os campos “ssid” e “senha”
  68. 68. Veja se sua placa foi conectada a rede
  69. 69. ESP8266 como Webserver
  70. 70. Abra o exemplo 3 Faça as configurações do WIFI e carregue para a placa
  71. 71. Abra o terminal serial e veja qual o IP atribuído a placa:
  72. 72. Digite o IP da placa em um Navegador Pressione F5 e veja o que acontece com o valor abaixo de teste
  73. 73. Para atualizar o navegador automaticamente Adicone o seguinte trecho no HTML "HTTP/1.1 200 OKrnContent-Type: text/htmlrnrn<!DOCTYPE HTML>rn<html><meta http-equiv='refresh' content='3'>rn"; Atualize o código na placa e veja o que acontece no navegador.
  74. 74. Abra o Exemplo 4 Agora vamos acionar o LEDs. Faça as configurações do WIFI e carregue para a placa
  75. 75. Abra o terminal serial e veja qual o IP atribuído a placa:
  76. 76. Digite o IP da placa em um Navegador Clique no botão e veja se o estado do LED muda na placa.
  77. 77. Desafio Adicione mais saídas e sensores ao web server
  78. 78. MQTT (Message Queue Telemetry Transport)
  79. 79. MQTT Criado pela IBM no final da década de 90, é um protocolo de mensagens leve, utilizado para comunicação Machine to Machine.
  80. 80. Lembrando do modelo Cliente- Servidor
  81. 81. MQTT
  82. 82. MQTT Publish area/ID_da_area/sensor/ID_do_sensor/temperatura area/ID_da_area/sensor/ID_do_sensor/umidade
  83. 83. MQTT Subscriber area/10/sensor/+/temperatura area/20/sensor/#
  84. 84. Qualidade do serviço
  85. 85. Acionamento de Lâmpada com ESP8266 e MQTT
  86. 86. Criar uma conta no CloudMQTT https://www.cloudmqtt.com
  87. 87. Preencha o nome, escolha o plano Free (Cute Cat) e clique em Create a New Instance. Crie uma instância no CloudMQTT Preencha o nome, escolha o plano Free (Cute Cat) e clique em Create a New Instance.
  88. 88. Aqui estão as informações necessárias para conexão com o Broker: Server, User, Password e Port. Vamos usar essas informações no código do ESP8266 e no aplicativo MQTTDash, mais a frente. Abra a instância criada Aqui estão as informações necessárias para conexão com o Broker: Server, User, Password e Port. Vamos usar essas informações no código do ESP8266 e no aplicativo MQTT Dash, mais a frente.
  89. 89. MQTT DASH O MQTT Dash é um dos melhores aplicativos para interface gráfica no smartphone. Possui uma interface agradável, de fácil customizaçãoe configuração, sendo um dos melhores aplicativos que já utilizei para esse fim. Você pode baixá-lo na Google Play e instalar no seu smartphone. Deixe no jeito, logo vamos configurar nossa aplicação.
  90. 90. Circuito
  91. 91. Programação
  92. 92. instalar a biblioteca PubSubClient.h Acesse Sketch> Incluir Biblioteca> Gerenciar Bibliotecas: Procure por PubSubClient e instale a seguinte opção:
  93. 93. Abra o Exemplo 5 #define servidor_mqtt "xxxxxxxxxxxxxxxxxxxxxxx" //URL do servidor MQTT #define servidor_mqtt_porta "xxxxxxx" //Porta do servidor (a mesma deve ser informada na variável abaixo) #define servidor_mqtt_usuario "xxxxxxx" //Usuário #define servidor_mqtt_senha "xxxxxxx" //Senha Substituacom as informações do Broker
  94. 94. Abra o terminal Verifique se a placa conectou a rede WIFI e ao broker:
  95. 95. Abra a guia Websocket UI no CloudMQTT Envie uma mensagem no tópico casa/L1 pelo Websocket UI: • 0 - Saída em nível LOW • 1 - Saída em nível HIGH
  96. 96. Configurando a aplicação no MQTT Dash Após instalado, clique no sinal “+” na sua tela inicial:
  97. 97. Insira as informações do Broker Será aberta a configuraçãode uma nova conexão.Insira as seguinte informações: • Name • Adress • Port • User Name • User Password
  98. 98. Insira um elemento Com a conexão configurada corretamente,clique no sinal de “+” dentro do dashboard criado: Insira um Switch/button:
  99. 99. Configuração do Botão • O botão será usado para acionamentoda lâm pada. Você pode dar o nome L1 para ele, ou outro que achar melhor. Para o tópico,configure para “casa/L1”: • Para a parte visual desse botão,configure para exibir ícones de uma lâmpada acesa e o utra apagada.Para On, enviaremos o valor “1” e para Off, o valor “0”​ • Por fim, selecione o nível de qualidade para QoS(1).
  100. 100. Websocket UI no CloudMQTT Abra a guia Websocket UI no CloudMQTTe veja se as mensagens estão chegando ao pressionar o botão: Se placa estiver conectada saída também mudará o seu estado. Faça o teste!
  101. 101. Desafio Adicione mais saídas e outros tópicos ao seu projeto
  102. 102. CONTATO fs.embarcados@gmail.com about.me/fabio.souza @fabiosouza.io

×