Alura > Cursos de Programação > Cursos de Embarcados e Robótica > Conteúdos de Embarcados e Robótica > Primeiras aulas do curso Esp32: detector de presença com Bluetooth Low Energy

Esp32: detector de presença com Bluetooth Low Energy

Preparando o projeto - Introdução

Você que tem trabalhado com projetos de automação, de [IoT], embarcados e quer incluir novos recursos no seus trabalhos, nós vamos estar vendo agora a tecnologia Bluetooth Low Energy.

Como assim, Ricardo? Essa tecnologia, no nosso projeto, vai permitir que ao chegarmos em um ambiente, esse ambiente detecte a nossa presença através de um dispositivo Bluetooth e faça o acionamento, por exemplo, da iluminação ou de qualquer outro equipamento que você venha interligar no teu projeto.

Então a base do nosso trabalho vai ser a tecnologia Bluetooth Low Energy. Eu vou apresentar para vocês o novo controlador que vamos trabalhar, o ESP32 - eu já detalho ele para você.

A ideia principal desse projeto é pensar em um sistema de automação que realmente não tenhamos nenhum tipo de botão, a nossa presença no ambiente faz com que sejam acionados os dispositivos que já pré-configuramos.

Eu sou o Ricardo Mercês e vou te acompanhar ao longo de mais esse curso.

Preparando o projeto - Detalhando o projeto

Para nós começarmos o nosso projeto, eu preparei um diagrama simples, só para entendermos o fluxo de acionamento, como a coisa vai funcionar. Tudo começa quando estamos carregando um dispositivo Bluetooth Low Energy.

Eu vou utilizar no projeto essa Mi Band, essa aqui é até o modelo 2, já tem modelos mais novos, mas você não fica preso: "eu preciso ter uma Mi Band para aprender essa tecnologia ou mesmo para fazer o projeto que o Ricardo está propondo.". Não, outros dispositivos também vão funcionar e você vai entender o porquê.

Eu precisava de um para poder ilustrar e operar todo o nosso projeto. Enfim, entrei no meu ambiente, entrei aqui no escritório carregando um dispositivo, que no caso aqui é que a minha Mi Band. Esse dispositivo, ele vai estar fazendo “advertise”, ou seja, ele está fazendo anúncio: "Olhe, eu estou aqui, eu sou um dispositivo Bluetooth Low Energy!". Ele vai fazer esse anúncio e quem vai detectar esse anúncio?

O “core” da nossa solução é um componente novo, bem legal, que se chama “ESP32” - já detalho ele para você, por enquanto pensa só que ele é o irmão mais novo do que o “ESP8266” que já utilizamos em projetos anteriores. É um, vamos dizer assim, um Arduino bem mais poderoso, a ideia é essa.

O nosso dispositivo que fala Bluetooth, é por isso que vamos utilizar ele, ele vai detectar que a Mi Band está no ambiente. E o que que ele faz?

Ele dispara. Ele está conectado na nossa “rede via MQTT”, que você também já aprendeu sobre isso nos cursos anteriores: “Protocolo MQTT”. Tenho batido muito nessa tecla, que ele é primordial, ele é essencial para você desenvolver toda essa parte de automação, de [IoT] – “Protocolo MQTT”.

Enfim, ele fala via “MQTT” com os meus equipamentos: pode ser iluminação, ar-condicionado ou qualquer outro equipamento que já esteja ligado na tua rede, pronto para receber um comando.

Que comando seria esse, por exemplo? Ligar a luz, liga a tua sala de cinema, o ventilador, o ar-condicionado, não importa. Essa comunicação do nosso ESP32 com os dispositivos, em outros projetos já fizemos bem essa amarração.

Mas só lembrando, podemos por exemplo usar aquele “S1OFF” - que é aquele dispositivo que configuramos - ele está espetado aqui, por exemplo, na nossa iluminação, via uma publicação de “MQTT”, eu aciono a iluminação.

Então o diagrama do nosso projeto é esse daqui: cheguei no escritório com a Mi Band, sem apertar nada, ou seja, sem acionar um botão - e essa é a ideia principal desse projeto. O ESP32 detecta a minha presença e faz o acionamento, e no final ele vai acionar um relé para ativar a iluminação ou que quer seja pré-configurado. Então essa é a ideia do diagrama. O que vamos fazer agora?

Vamos precisar de alguns materiais, como por exemplo: algum dispositivo Bluetooth e vai precisar do ESP32. Vamos detalhar melhor quem é o ESP32. Então esse daqui é o nosso “core”, ou seja, é o nosso controlador, que vamos utilizar no projeto. Vamos conhecer um pouquinho melhor ele, o ESP32.

O ESP32, como eu falei para vocês, ele é um irmão mais novo do “8266”, que já vimos anteriormente. Bem rapidamente aqui, sem ficar lendo toda a “pinagem”, o que é legal nele? Basicamente. Por que você escolheu ele para o projeto?

Porque o ESP8266 fala Wi-fi e esse daqui fala o Wi-fi e Bluetooth - e essa é a principal justificativa. Tem um comparativo aqui, só para ilustramos, sem entrar muito nessa eletrônica do componente.

Tamanho: muito parecido com o 8266. O que mais é legal falar? O 8266 tem Wi-fi, o ESP32 também. Bluetooth e Bluetooth Low Energy - o mais importante porque Bluetooth Low Energy, como o próprio nome diz, nós vamos ter um dispositivo Bluetooth com baixo consumo de energia e isso é fundamental não só para esse projeto, mas toda essa parte de automação [IoT] que temos desenvolvido.

Outro detalhe bem interessante: esse camarada já é um dual-core. Exatamente, ele está aqui na minha mão, ele já é um dual-core. Esse é mini, parece um “Lego” pequeno, do tamanho de uma peça de “Lego duplo”, mais ou menos. Está aqui, já é dual-core. E outra coisa legal: você pode expandir ele, no que tange interligações do GPIO, ele tem 36 GPIOs, enquanto o anterior 17. Ou seja, 36 canais para você estar ligando “N” componentes, se você quiser ligar fisicamente, conectado a ele.

No nosso projeto, como você olhou, como você viu no diagrama, não vai ter nada físico conectado nele porque está na rede, está falando Wi-fi com que já espalhamos de [AIoT] dentro do nosso ambiente de rede. Então esse é o ESP32 e esse aqui já é obrigatório para você realizar o projeto. Então, Ricardo, resumindo: o ESP32 e um outro dispositivo Bluetooth.

Você para e pensa assim: "Bom, Ricardo, eu não tenho uma Mi Band, eu tenho outro dispositivo parecido com a Mi Band, serve?". Sim, no final das contas o que precisa é um dispositivo Bluetooth que esteja fazendo anúncio.

Esse anúncio vai ser coletado pelo ESP32 e vamos tocar o projeto. Mas nessa hora você pergunta assim: "Ricardo, eu estou super interessado na tecnologia, vou comprar o ESP32 para realizar esse projeto e outros, mas por enquanto eu não tenho uma smartband, um smartwatch, não tenho nenhum “wearable” desse que seja Bluetooth. Consigo realizar o projeto?".

Sim. Por quê? Logicamente você tem que ter algum dispositivo. Quando disse algum dispositivo, um smartphone que tem a capacidade de falar Bluetooth Low Energy serve para você não só aprender, mas testar tudo o que vamos fazer aqui.

Vamos usar um aplicativo que roda em Android e no iPhone. A questão do iPhone tem só uma particularidade, que é: o iPhone, ele vai ficar fazendo o “advertise” do endereço Bluetooth - eu vou detalhar isso para você - de forma randômica, então, para você testar, você vai ter que toda hora entrar no código e recadastrar o teu equipamento.

Mas a ideia é o seguinte: você vai ter como testar a solução e ver a coisa funcionando. Então vamos começar da seguinte maneira: separe o teu ESP32, vamos usar a “IDE” do Arduino para programar - isso que é bem legal: aquela “IDE” que você já tá ambientado a utilizar, serve também para programarmos o ESP32.

Então vamos fazer a instalação dele, botar ele para funcionar, fazer um teste para ver a placa já funcionando e partirmos para o nosso “setup” e, mais importante, partirmos para o entendimento da tecnologia Bluetooth Low Energy.

Separe o teu material e já no próximo vídeo iremos começar a fazer os primeiros testes.

Preparando o projeto - Instalando as bibliotecas

Vamos começar a trabalhar com nosso ESP32. Eu cheguei a comentar no vídeo anterior essa “Espressif” - não sei a pronúncia correta - é uma empresa chinesa e foi ela que desenvolveu o ESP32 - só mais uma informação, até para você fundamentar melhor na tecnologia que você está trabalhando.

No final das contas, esse “camarada” aqui é um microcontrolador, assim como os outros dispositivos que temos trabalhado. Eu gosto de falar que ele é o irmão mais novo do ESP8266.

Então vamos lá: ESP32. O que você vai precisar? Você já está com a tua placa, eu já peguei a minha placa e já conectei aqui no meu notebook. E então? No GitHub - vai ter o link na descrição do curso - se você botar lá GitHub Espressif Arduino ESP32, ele vai disponibilizar para você todas as bibliotecas, tudo aquilo que precisamos trabalhar. Como assim, Ricardo? Não é só abrir a interface do Arduino? Não. Por quê?

Olhe só: carreguei aqui o Arduino. Por que não é somente abrir o Arduino e está resolvido? Quando abrimos a interface do Arduino, a IDE do Arduino - o que acontece? Ele já tem algumas bibliotecas, algumas placas já pré-instaladas, para fazermos a programação. Quando nós trabalhamos com ESP8266 em cursos anteriores, tivemos que fazer um processo e vai repetir ele aqui caso você não tenha visto.

Ricardo, agora é o ESP32, você está falando do ESP8266. Não se preocupe, é só para ilustrar que o processo é o mesmo. Então olhe só, temos que vir aqui: “Arduino”, “Preferências”. “Additional Boards”, ou seja, placas adicionais. Olhe o meu como já está configurado. Vou clicar aqui nesse. O que é isso daqui? Isso daqui é a URL para ele pegar no repositório toda a referência, todos os arquivos, para o ESP8266. O que vamos fazer?

Eu vou incluir aqui o repositório do ESP32. Como eu faço isso? Vamos voltar aqui no browser. E uma notícia bem legal, para você ver como está aqui bem recente:

Na época que eu comecei a projetar e fazer os testes todos, essa facilidade de apontar ali e pegar a biblioteca não tinha, nós tínhamos que colocar isso tudo na mão mas a partir de julho, e na documentação do GitHub - que eu sempre recomendo que você dê uma lida, até para aprofundar o teu conhecimento - ele diz aqui o seguinte: no “Installation Instructions”, diz que as instruções usando a IDE do Arduino é o recomendável.

E é isso que vamos fazer. Então, sem mais delongas, estou aqui no GitHub, nas instruções para fazer a instalação. Na prática, o que precisamos é isso daqui. Ele disponibiliza a versão “stable” e a versão de desenvolvimento. Você vai pegar esta URL aqui, copiar a URL, vai no seu Arduino e, na linha de baixo, você colca. Isso serve para qualquer hardware que você queira adicionar no IDE.

Lógico que, nessa IDE, ele suportando isso, você vai colocando os repositórios aqui, linha por linha. Quando você dá o “ok”, você repara aqui ele coloca uma tecla “,” aqui para separar.

Eu tenho já o do ESP8266 e do ESP32 agora. Eu aperto em “ok”. Mas e aí, Ricardo? O que fazemos agora? Ele já foi apontado aqui o repositório, então você precisa vir aqui, em “Tools”, ele vai aqui listar as interfaces que você já tem instaladas.

Olhe o ESP8266, que já estava pré-instalado do meu. Eu vou colocar um novo: “Boards Manager”. O que ele faz? Ele vai no repositório e faz download das referências. Uma vez feitos esses downloads, se você colocar aqui ESP32 - está aqui. Clicou nele e mandou instalar. Ele vai pegar as “libs” e tudo o que é necessário e vai “popular” o teu Arduino com essas referências. Ele está fazendo aqui. Você vê que basicamente é isso.

Depois que fizer a instalação, vamos ter a relação dos modos todos prontos para utilizarmos. Já concluiu a minha instalação, vou fechar. Se tudo funcionou direito, você vai visualizar isso aqui: “Tools”, “Boards”, e veja o que apareceu: uma lista baseada no ESP32. Então pronto.

A partir daqui, que nós vamos estar utilizando. No caso aqui, o ESP32, eu vou utilizar no projeto esse “ESP32 Dev Module” - esse modo aqui de desenvolvimento - que é a referência para essa plaquinha aqui. Então vamos testar a conectividade com a placa.

Lembre-se que quando usamos a IDE do Arduino, independentemente da plataforma - que no meu caso é um Mac, mas você pode estar usando o Linux, o Windows, não importa - quando selecionamos o módulo - olhe, selecionei o módulo aqui - eu tenho que “setar” também “Tools” e a “Porta de comunicação”, ou “Port: /dev/cu.SLAB_USBtoUART”.

E legal que no fórum, até em cursos anteriores - o pessoal também com Mac - alguns tiveram alguma dificuldade em baixar o driver mas tem todas as referências lá, não tem problema nenhum.

Se você já trabalhou com um módulo desse, ou seja, se o teu Arduino já “falou” via essa serial com uma placa, esse problema está resolvido. No meu caso, aparece esse driver aqui. Eu estou com o ESP32 conectado no notebook e o driver que aparece é esse aqui. Se a tua máquina estivar rodando Windows vai aparecer com alguma coisa, assim como no Linux, não importa. O importante é usar aqui a referência correta.

No meu caso é esse nome bonito que aparece e vamos fazer um teste de conectividade, até para saber se a tua placa está “conversando” adequadamente.

No próximo vídeo, nós iremos fazer esse teste e rodar um exemplo no nosso ESP32. Vá preparando a tua conectividade, prepare também fazendo o download e volte para a fazermos o teste juntos.

Sobre o curso Esp32: detector de presença com Bluetooth Low Energy

O curso Esp32: detector de presença com Bluetooth Low Energy possui 135 minutos de vídeos, em um total de 40 atividades. Gostou? Conheça nossos outros cursos de Embarcados e Robótica em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Embarcados e Robótica acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

Matricule-se

Pro

De
R$ 2.400
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri powered by ChatGPT

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas