Baixe o app para aproveitar ainda mais
Prévia do material em texto
Microprocessadores Material Teórico Responsável pelo Conteúdo: Prof. Me. Massaki de Oliveira Igarashi Revisão Textual: Prof.ª Dr.ª Selma Aparecida Cesarin Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) • Capítulo 1 – Introdução; • Capítulo 2 – Programação para o ESP8266. · Apresentar um exemplo de microcontroladores muito utilizado para aplicações em Internet das Coisas, o ESP8266, além de conceitos básicos e dicas de como configurar o microcontrolador ESP8266, seus módulos e hardwares adicionais. Também será abordada a co- nexão do ESP8266, a configuração à rede Wi-fi e a programação utilizando o IDE Arduino. OBJETIVO DE APRENDIZADO Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) Orientações de estudo Para que o conteúdo desta Disciplina seja bem aproveitado e haja maior aplicabilidade na sua formação acadêmica e atuação profissional, siga algumas recomendações básicas: Assim: Organize seus estudos de maneira que passem a fazer parte da sua rotina. Por exemplo, você poderá determinar um dia e horário fixos como seu “momento do estudo”; Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma alimentação saudável pode proporcionar melhor aproveitamento do estudo; No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados; Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus- são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e de aprendizagem. Organize seus estudos de maneira que passem a fazer parte Mantenha o foco! Evite se distrair com as redes sociais. Mantenha o foco! Evite se distrair com as redes sociais. Determine um horário fixo para estudar. Aproveite as indicações de Material Complementar. Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma Não se esqueça de se alimentar e de se manter hidratado. Aproveite as Conserve seu material e local de estudos sempre organizados. Procure manter contato com seus colegas e tutores para trocar ideias! Isso amplia a aprendizagem. Seja original! Nunca plagie trabalhos. UNIDADE Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) Capítulo 1 – Introdução Neste capítulo, você será apresentado à Internet das Coisas (IoT); também serão apresentadas algumas possibilidades de programação de microcontroladores para aplicações em IoT. A Internet das Coisas, tradução do termo em inglês, Internet of Things – IoT, faz referência à conexão global de objetos por meio da Internet. Esses objetos possuem tecnologia embarcada, sensores e conexão com rede capaz de coletar e transmitir dados. Nos últimos 5 anos, o crescimento das pesquisas relacionadas a esse tema de pesquisa tem sido quase que exponencial; e as perspectivas para os próximos anos continuam promissoras, já que, no Brasil, ainda se encontram em fase de implan- tação as diretrizes, as regulamentações e as ações governamentais, de âmbito na- cional, para Internet das Coisas. O principal objetivo da IoT é permitir a comunicação direta entre diversos equi- pamentos de uso pessoal, bem como entre eles e seus usuários, por meio de sen- sores e conexões sem fio. Essa comunicação permite, entre outras facilidades, o registro contínuo de dados sobre o estado desses objetos ou do seu ambiente. As aplicações vão desde edificações inteligentes e mobilidade urbana, vestimentas inteligentes que podem se ajustar de acordo com as mudanças de temperatura do ambiente e utilização de inteligência artificial para auxiliar na tomada de decisão de muitos processos. Mas, os desafios para a sua expansão e difusão ainda passam por uma conecti- vidade efetiva para garantir uma comunicação remota confiável e transferência de dados em um ambiente sem fio. Alguns autores até ousam apelidar a IoT por 6 letras “A” (Anything, Anytime, Anyone, Anyplace, Any service, and Any network); traduzindo para Português: qualquer coisa, qualquer tempo, qualquer um, qualquer lugar, qualquer serviço e qualquer rede (MAIER, 2017). Basicamente, para um objeto ser considerado inteligente, ele precisa: • Ser identificável (ter um nome e um endereço na rede); • Ter a capacidade de se comunicar (enviar e receber informações a outros dispositivos); • Interagir ao responder de alguma forma às informações recebidas; • Ter alguma capacidade básica de processamento; 8 9 • Possuir algum sensor para fenômenos físicos (exemplos: sensor de velocidade, sensor de luz, sensor de calor, eletromagnetismo e radiação, entre outros). Cresce a cada dia o número de microcontroladores e plataformas para o de- senvolvimento de aplicações para IoT; entre as mais conhecidas, destacam-se: ESP8266EX, Raspberry Pi 3, Xbee, algumas placas de Arduino como Arduino YUN e BeagleBone Black, entre outras. Devido à praticidade e disponibilidade de material para consulta, o escolhido para este Curso Introdutório será o ESP8266EX. Conhecendo o ESP8266 O ESP8266EX (ou simplesmente ESP8266, como popularmente é conhecido, é um Sistema-on-Chip (SoC) que integra um microcontrolador Tensilica de 32 bits, interfaces periféricas digitais padrão, amplificador de potência, amplificador de baixa emissão de ruído e filtros e gerenciamento de energia de seus módulos. Ele também fornece recursos para Wi-Fi de 2,4 GHz (802.11 b/g/n, suportando WPA/WPA2), entrada / saída de uso geral (16 GPIO). Certamente, a possibilidade de conexão do ESP8266 ao Wi-Fi 2.4 GHz, seu baixo custo de aquisição (algumas dezenas de Reais) e o vasto material disponível na Internet fazem com que esses sejam os principais motivos de sua disseminada utilização em aplicações de Internet das Coisas. O seu Circuito Integrado tem conexão I²C, conversão analógico-digital de 10 bits de resolução, Interface Periférica Serial (SPI), interfaces I²S com DMA (pinos com- partilhados com GPIO), conexão serial e Modulação de Largura de Pulso (PWM). O núcleo do processador, chamado “L106” da Espressif, baseia-se no núcleo do controlador de processador de 32 bits do Diamond Standard 106Micro da Tensilica e funciona a 80 MHz (ou 160 MHz com overclock). Possui uma ROM de inicialização de 64 KB, RAM de instruções de 64 KB e RAM de dados de 96 KB, não é muito, mas se podem fazer projetos muito interes- santes com esta plaquinha. A memória Flash externa pode ser acessada por meio do SPI. O próprio chip de silício é alojado dentro de uma embalagem Quad Flat sem encapsulamento, de 5 mm × 5 mm, com 33 almofadas de conexão, mas existem no mercado algumas opções bastante interessantes já prontas para programar. As duas opções mais encontradas e de baixo curso são os módulos ESP-01 e ESP-12F, conforme ilustra a Figura 1 a seguir. 9 UNIDADE Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) Figura 1 – Módulos ESP8266 disponíveis comercialmente: a) ESP-01 b) ESP-12F Ambos os módulos são muito fáceis de programar e de conectar a outros hardwares. O módulo ESP-01 já vem com os pinos de expansão montados na Placa Módu- lo, mas o ESP-12F, para que haja uma melhor conectividade a outros hardwares, necessita de uma Placa Adicional adquirida facilmente em sites de e-commerce para eletrônica; ela permite a conexão do ESP-12F a uma protoboard ou sua co- nexão a outros hardwares adicionais (Figura 2). Figura 2 – Placa adaptadora para expansão do módulo ESP-12F O datasheet do fabricante relata que o consumo médio do ESP8266 é em torno de 80 mA de corrente, porém, recomenda-se acoplar uma fonte externade 3,3V à alimentação do módulo para que, no momento da gravação do firmware no microcontrolador, não ocorram problemas e falhas (essas falhas ocorrem na maioria das vezes quando se tenta programá-lo usando apenas o cabo USB acoplado); isso geralmente ocorre porque durante a gravação o consumo do módulo é maior, e como ele também tem a conectividade Wi-Fi 2.4 GHz, o seu transmissor se encarrega por boa parte desse consumo excedente que não pode ser suprido unicamente pela saída USB. Também será preciso adquirir comercialmente um Módulo Conversor USB para serial TTL. É um módulo na cor vermelha ou azul conhecido popularmente como módulo FTDI e tem custo bastante acessível nos sites de e-commerce. 10 11 A Figura 3 apresenta um desses Módulos FTDI comerciais, imprescindível para a gravação do ESP8266. Figura 3 – Módulo FTDI para Conversão USB – Serial TTL Não se pode esquecer que também será preciso uma Protoboard (Figura 4) para teste e conectividade entre hardwares externos. Figura 4 – Protoboard para conectividade do módulo ESP8266 e demais hardwares do projeto Também podem ser úteis alicate, multímetro, fios e conectores para facilitar as conexões e o teste de continuidade entre os hardwares. Como iniciar projetos com ESP8266 A partir das explicações acima, pode-se resumir como principais itens para se iniciar projetos de desenvolvimento IoT utilizando ESP8266: • 1 x módulo ESP-01 ou ESP-12F; • 1 x Conversor FTDI USB-Serial TTL; • 1 x Fonte de alimentação externa 3,3 V (observação: pode-se usar Fonte usada ATX de microcomputador); • 1 x Protoboard; • 1 x IDE Arduino previamente configurada para ESP8266 (Veja o item “Con- figurando a IDE ARDUINO para ESP8266” a seguir). 11 UNIDADE Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) Após separar as peças importantes para a montagem do Projeto Teste, é preciso fazer as ligações das placas para gravação e teste conforme o esquema da Figura 5 a seguir. ANTENNA U$ 2 W IR EL ES S- W IFI -E SP -0 1 U$1 USB-SERIAL-FT232R USB DTR RX TX VCC CTS GND A1 A2 B1 B2 C1 C2 D1 D2 GN D UT XD GP IO 2 CH _P D GP IO 0 RS T UR XD VC C GND RESET 1 1 2 2 3 3 CHAVE_PROG NC-MM +- FONTE_EXT3.3V R1 R2 10 k 10 k Figura 5 No esquema elétrico da Figura 5, percebe-se uma chave denominada CHAVE_ PROG, que serve para colocar o pino GPIO0 em GND durante a gravação do firmware no microcontrolador ESP8266. Observa-se que após a sua gravação, ela deve ser colocada na posição normal para que o ESP8266 possa ser utilizado. Também se percebe uma chave RESET, que é útil para resetar a Placa e carregar o novo firmware após o processo de gravação ou quando algum problema ocorre durante a utilização da plataforma. Configurando a IDE ARDUINO para ESP8266 Antes de começar a programar o microcontrolador ESP8266, é preciso ter efetuado o download e instalado o IDE do Arduino, que pode ser obtido facilmente no site do fabricante oficial. Em seguida, entre no IDE Arduino e vá até o menu Arquivo --> Preferências. Na janela Preferências que abrirá (conforme a Figura 6 a seguir), vá até o campo URLs adicionais para gerenciadores de Placa e introduza o seguinte link: <http:// arduino.esp8266.com/stable/package_esp8266com_index.json>. Depois, clique em OK para confirmar. 12 13 Figura 6 – Tela de Confi guração da IDE Arduino para programar também o módulo ESP8266 Agora vá até o menu Ferramentas e clique em gerenciador de Placas (Figura 7). Figura 7 – Tela do Gerenciador de placas da IDE Arduino Se você não tiver cometido erros de digitação no link, aparecerá uma barra de progresso durante o download e configuração das ferramentas para o ESP8266 e, ao final da instalação, o ESP8266 deverá ser listado na sua lista de placas. 13 UNIDADE Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) Ao aparecer o bloco referente ao ESP8266, basta dar um clique no bloco que aparecerá o botão de instalação e clicar para instalar, conforme a Figura 8 a seguir. Figura 8 – Tela do Gerenciador de Placas com as ferramentas para ESP8266 Após clicar em instalar, aparecerá: esp8266 by ESP8266 Community: ver- são 2.4.0 INSTALLED. Isso indica que todas as ferramentas necessárias para o ESP8266 foram instaladas corretamente. Agora, basta retornar ao menu Ferramentas --- Placas e selecionar Generic ESP8266 Module, caso seja essa a placa com a qual irá desenvolver seu projetos e treino de programação; agora se pode iniciar a programar aplicações IoT utilizando a plataforma ESP8266. Figura 9 – Lista de placas cujos drivers já estão instalados e prontos para uso 14 15 Finalmente, após selecionar a Placa, basta selecionar no menu Ferramentas Porta, o número da Porta COM na qual está conectada a Placa. Caso não saiba exatamente o número da porta, é possível visualizar este número por meio do Gerenciador de dispositivos do Windows. Capítulo 2 – Programação para o ESP8266 Neste capítulo, você será apresentado a alguns sketches de programação do microcontrolador ESP8266 usando a IDE de programação do Arduino. Conforme já explicado anteriormente, a programação para o ESP8266 é a mesma para um microcontrolador Arduino qualquer e, portanto, utiliza a mesma IDE de programação para Arduino, portanto, nada muda em relação à utilização da IDE conforme o que já foi aprendido anteriormente, sobre linguagem C/C++ para Arduino. Exemplo 1: Programa Pisca Led Para o ESP8266 O exemplo 1 a seguir é muito semelhante ao exemplo Blink do Arduino, mas ele é útil para um primeiro teste e para verificar se está tudo certo com a sua Placa e demais procedimentos realizados: void setup() { // put your setup code here, to run once: pinMode(2,OUTPUT); //Coonfigura GPIO2 como saída digital } void loop() { // put your main code here, to run repeatedly: digitalWrite(2, HIGH); //Coloca GPIO2 em nível Alto (+Vcc) delay(1000); //Atraso de 1 segundo digitalWrite(2, LOW); //Coloca GPIO2 em nível baixo (GND) delay(1000); //Atraso de 1 segundo } 15 UNIDADE Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) Exemplo 2: Programa Conversor AD Para Esp8266 usando repositório online O exemplo 2 a seguir foi elaborado com base nas dicas disponíveis no canal Thingspeak da Mathworks®. O sketch desse exemplo envia um valor da sua entrada analógica e exibe a lei- tura em um gráfico previamente configurado no canal ThingSpeak. Para isso tudo funcionar, ele faz uso da API ThingSpeak, facilmente acessada e explicada no tutorial disponível em: https://goo.gl/vR7yRo.Ex pl or /* ESP8266 --> ThingSpeak Channel ThingSpeak Setup: * CRIAR UMA NOVA CONTA DE USUÁRIO – https://goo.gl/KG9Q7z * CIRAR UM NOVO CANAL selecionando Channels, My Channels, e então New Channel * HABILITE UM CAMPO * TOME NOTA DO Channel ID e Write API Key Digite as configurações da sua rede Wi-Fi: * SSID * Senha Tutorial: https://goo.gl/VXfJpW.Exp lo r */ #include <ESP8266WiFi.h> #include <SPI.h> #include <WiFi.h> /*Configurações da sua rede Wi-Fi const char* ssid = “NOME_DA_SUA_REDE”; // Digite aqui o nome da sua 16 17 rede (SSID) const char* password = “SENHA_WPA”; // Digite aqui a senha para acessar sua rede WiFiClient client; // ThingSpeak Settings const int channelID = 240308; //ID do seu Canal ThingSpeak String writeAPIKey = “VXZ3273MXCZQZOEP”; // API key do seu canal ThingSpeak const char* server = “api.thingspeak.com”; const int postingInterval = 20 * 1000; // Envia dados a cada 20 segundos void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void loop() { if (client.connect(server, 80)) { // Measure Analog Input (A0) int valueA0 = analogRead(A0); // Construct API request body 17 UNIDADE Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) String body = “field1=”; body += String(valueA0); Serial.print(“A0: “); Serial.println(valueA0);client.print(“POST /update HTTP/1.1\n”); client.print(“Host: api.thingspeak.com\n”); client.print(“Connection: close\n”); client.print(“X-THINGSPEAKAPIKEY: “ + writeAPIKey + “\n”); client.print(“Content-Type: application/x-www-form-urlencoded\n”); client.print(“Content-Length: “); client.print(body.length()); client.print(“\n\n”); client.print(body); client.print(“\n\n”); } client.stop(); delay(postingInterval);// Espera e então posta novamente } 18 19 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Sites Arduino Acesse outros Materiais Complementares e Tutoriais para Arduino. https://www.arduino.cc Sparkfun Site de compras que contém esquemáticos de circuitos e exemplos de programas para microcontroladores. https://www.sparkfun.com/ Vídeos Getting Started with ThinkSPeak https://youtu.be/JsHGxe6lRSY 19 UNIDADE Os Microprocessadores e Microcontroladores na Internet das Coisas (loT) Referências ATZORI, Luigi; IERA, Antonio; MORABITO, Giacomo. The internet of things: A survey. Computer networks, v. 54, n. 15, p. 2787-2805, 2010. LEE, Suk Kyu; BAE, Mungyu; KIM, Hwangnam. Future of IoT Networks: A Survey. Applied Sciences, v. 7, n. 10, p. 1072, 2017. MAIER, Alexander; SHARP, Andrew; VAGAPOV, Yuriy. Comparative analysis and practical implementation of the ESP32 microcontroller module for the internet of things. In: Internet Technologies and Applications (ITA). IEEE, 2017. p. 143-8. SINGH, Kiran Jot; KAPOOR, Divneet Singh. Create Your Own Internet of Things: A survey of IoT platforms. IEEE Consumer Electronics Magazine, , v. 6, n. 2, p. 57-68, 2017. 20
Compartilhar