Programe o ESP32 com SDK-IDF (Programação Nativa em C/C++) e FreeRTOS

Por meio deste curso você aprenderá como desenvolver projetos sofisticados multithreads em C/C++ utilizando WiFi e Bluetooth com FreeRTOS com ESP32

Programando o ESP32 com SDK-IDF (Programação Nativa em C/C++) com FreeRTOS

  • 427 Alunos matriculados
  • 14 Horas de duração
  • 38 Aulas
  • 7 Módulos
  • Certificado de conclusão
ASSINE JÁ

Obtenha acesso a este e outros cursos

Professor universitário, desenvolvedor de projetos de sistemas embarcados e IoT, como a plataforma geniot.io e um dos fundadores da Microgenios.
FERNANDO SIMPLICIO DE SOUSA

Aulas de Especialização: ESP32 com SDK-IDF (Programação Nativa em C/C++) com FreeRTOS


Esta especialização é fruto de muita pesquisa e anos de trabalho como programador na área de sistemas embarcados. Sem dúvida alguma, este treinamento vai ajudar a todos os profissionais a desenvolverem projetos e produtos comerciais com o ESP32 utilizando o que há de melhor no SDK-IDF C/C++ nativo fornecido pela Espressif.

Por meio do SDK-IDF nativo do ESP32 é possível operar as funções e APIs para WiFi, Bluetooth, MQTT e Filesystem de maneira assincrona, permitindo, por meio das funções de callback, acompanhar e interagir em todas as mudanças de estados dos componentes (bibliotecas de acesso a recurso). Assim, é possível ter acesso total ao controle de eventos e notificações do ESP32.

Esta especialização é composta por 28 laboratórios (até o momento) e de 32 aulas em vídeo narradas em português com duração total de 12 horas (contínuas de vídeos).

Como ambiente de desenvolvimento foram utilizados o editor Notepad++ e o SDK-IDF nativo da Espressif em seu port para Windows. O hardware utilizado no curso é o NodeMCU ESP32, que pode ser adquirido juntamente com a compra deste treinamento.

A primeira aula da unidade explica, passo a passo, como instalar o SDK-IDF do ESP32 em um computador Windows. Após os procedimentos de instalação são feitas as configurações das variáveis de ambiente para linkagem do SDK-IDF.

Durante as primeiros laboratórios do curso, são abordados temas de grande importância sobre a manipulação das GPIOs do ESP32 com o SDK-IDF. As configurações dos drives das GPIOs são explicados com detalhes, desde sua configuração de entrada, saída e dreno aberto.

As interrupções externas são apresentadas também nos estudos das GPIOs, e por meio deste recurso, são explorados com mais detalhes as funções para registros dos eventos de interrupção e das funções de callback dos drives das GPIOS.

O início dos estudos do WiFi do ESP32 são feitas a partir da aula 8. Nesta aula é apresentado um projeto funcional que explica com detalhes os eventos de notificação do WiFi e as configurações do drive.

O que torna os laboratórios prático do curso ainda mais completos é o fato de fazer o uso do FreeRTOS.  Quase todas as operações realizadas no SDK-IDF do ESP32 utiliza as APIs do FreeRTOS.  

Temos como exemplo as sincronizações dos eventos de notificação (callback) do SDK-IDF, dos quais são sincronizados por meio dos "EventsGroups" do FreeRTOS. 

Assim, além do conhecimento sobre o funcionamento do SDK-IDF do ESP32, este curso te oferece a oportunidade de aprender na prática a usar o FreeRTOS.


O FreeRTOS é o sistema operacional de tempo real mais usado no mundo na área de sistemas embarcados e recentemente foi comprado pela maior empresa no mundo chamada Amazon.

O WiFi do ESP32 passa a ser configurado como estação e servidor. Essas configurações são muito importantes, pois muitos projetos precisam que o ESP32 opere como um servidor TCP, e em outro momento como um cliente TPC. Ao entrar nos estudos sobre socket TCP, são apresentados projetos de aplicações multisocket TCP/IP (e multithread) com o ESP32, tanto como server e client. Esses projetos são importantíssimos para aplicações IOT (internet of things), pois é possível realizar a conexão TCP/IP simultânea de vários clientes ao ESP32 (ex: conexão de vários smartphones ao ESP32). Essa funcionalidade é possível de ser implementada devido ao FreeRTOS e ao ambiente multicore do ESP32.

Para realizar os acessos a rede via WebSocket, são apresentados projetos (laboratórios práticos e comentados) que ensinam como estabelecer conexões socket HTTP segura (TLS/SSL) por POST e GET com o ESP32 utilizando as bibliotecas LWIP e mbedtls nativas do SDK-IDF. Por meio deste laboratório, o aluno já poderá iniciar o desenvolvimento de suas implentações IOT.

Além dos projetos com WebSocket, são explicados estudos de bibliotecas MQTT para o SDK-IDF. Após os estudos e ensaios, são estabelecidas as conexões por MQTT com o broker Mosquitto (diretamente na Nuvem da Amazon AWS). Esta conexão é feita com e sem o certificado TLS/SSL, pois assim, o aluno poderá escolher a melhor forma de acordo com as necessidades do projeto.

A instância Amazon foi integralmente configurada no Curso Online: Criando Sua Plataforma de IOT na Nuvem c/ Amazon AWS + Mosquitto MQTT + ESP32 da Formação em Internet das Coisas. O mais legal de tudo, é que você vai aprender a como conectar o seu ESP32 em sua própria plataforma IOT que irá criar na Amazon (demais não!). Por meio deste projeto, também é possível estabelecer a conexão com outros broker MQTT.

Muitos dos projetos com IOT são feitos por meio do WiFi. Nos laboratórios seguintes, são explorado o projeto WiFimanager que permite a reconfiguração da rede WiFi (SSI e password) via acesso IP. Essa funcionalidade facilita a reconfiguração do WiFi de forma simples e segura.

Para tornar a aplicação ainda mais completa, foi implemetado o servidço MQTT ao WiFimanager com SDK-IDF, assim é possível alterar as informações de rede e estabelecer a conexão com um broker MQTT.

Os estudos das UARTs do ESP32 são feitas em três aulas, onde são explicado, passo a passo, as configurações básicas da UART, eventos e aplicações multithreads para escrita e leitura de dados.

Após todo os estudos sobre o WiFi, e aplicações sockets TCP/IP, chegou a hora de estudar o Bluetooth Clássico do ESP32. Inicialmente são abordados assuntos teóricos sobre as diferenças entre o Bluetooth Clássico e o Bluetooth Low Energy, se refernciando como base os projetos exemplos desta tecnologia distribuida pela própria Espressif no SDK-IDF.

Por meio de um projeto Bluetooth, são feitos estudos do perfil SPP (Serial Port Profile) e dos estados de cada notificação gerada pelo ESP32. Em seguida, são estabelecidas conexões para troca de mensagens de texto entre o Bluetooth do ESP32 e Aplicativo para Android (terminal bluetooth).

Por último, é elaborado um projeto completo de um conversor Bluetooth-Serial utilizando somente o SDK-IDF do ESP32 e o FreeRTOS. Este projeto apresenta conceitos fundamentais e regras para troca de mensagens entre as Tasks e notificações dos estados das funções de callback.



Porque você precisa deste treinamento?

Dúvidas Frequentes


1) PORQUE EU DEVO APRENDER A PROGRAMAR O ESP32?             

A família ESP32 está revolucionando os projetos e aplicações de internet das coisas. Muitas empresas estão substituindo os tradicionais microcontroladores pelo ESP32 devido ter processador de 32-bit Dual-core, operando 2-240 MHz, além de interface WiFi e Bluetooth. Tudo isso por um custo reduzido.


2) PORQUE EU PRECISO APRENDER A PROGRAMAR O FREERTOS PARA DESENVOLVER PROJETOS COM ESP32?           

Todo o desenvolvimento do SDK do ESP32 está baseado no FreeRTOS. Não dá para tirar o melhor aproveitamento do sistema multiCORE do ESP32 sem conhecer a API e o funcionamento do FreeRTOS. Obrigatoriamente o desenvolvedor tem que conhecer sobre Filas, Semáforos e muitos outros recursos do FreeRTOS para realmente programar o ESP32, pois, sem dúvida, precisará destes conhecimentos para sincronizar os processos.


3) NUNCA UTILIZEI UM SISTEMA OPERACIONAL DE TEMPO REAL EMBARCADO. EU VOU CONSEGUIR FAZER O CURSO?           

Sim, caso você tenha conhecimentos básicos sobre C poderá fazer este curso. A utilização de um sistema operacional de tempo real tende a simplificar o programa.


4) POXA, LEGAL ESSA IDEIA DE MONTAR UM SERVIDOR MQTT. O QUE EU VOU UTILIZAR PARA MONTAR ESTE PROJETO?    

Projetos de Internet das Coisas requerem principalmente a utilização de serviços MQTT e Rest HTTP. Neste curso irei abordar os dois protocolos de comunicação. O serviço MQTT que iremos usar é chamado "Mosquitto" e para as aplicações com Rest HTTP será utilizada a API Rest da plataforma geniot PRO Industrial.


5) VOU CONSEGUIR DESENVOLVER UM SISTEMA DE MONITORAMENTO IOT POR MQTT?

Sim. Neste curso será abordado a instalação e a implantação do serviço MQTT do servidor "Mosquitto". Após a instalação e configuração será realizada a comunicação entre ESP32 e o servidor MQTT. O aluno irá aprender a instalar o seu servidor MQTT em seu computador em no servidor na nuvem - Amazon AWS.


6) QUAIS OS KITS (HARDWARES) QUE EU DEVO COMPRAR?       

Na Formação em Internet das Coisas são utilizados os kits NodeMCU ESP32 e NodeMCU ESP8266. O kit NodeMCU ESP32 são utilizados em grande parte dos cursos da Formação IoT visto que é mais atual e aos poucos vem substituindo o ESP8266 (ESP-12F). Foi adicionado um novo treinamento sobre o Rasberry Pi. Neste caso você pode comprar qualquer versão do Rasberry para este curso.


7) Qual é a melhor opção: Colocar meu broker MQTT no Raspberry ou na Nuvem?     

Grande parte das aplicações de internet das coisas precisam de um servidor local, pois a aplicação não pode parar de funcionar mesmo nos momentos em que não há internet. Por esse motivo, disponibilizamos um curso sobre como criar um servidor MQTT e Web no Rasberry. O legal desta aplicação, é que o Raspberry foi configurado como uma ponte (bridge) entre um outro broker MQTT alocado na nuvem. Assim, os dados recebidos dos dispositivos são armazeados em banco de dados local e na nuvem.

            

Importante!!! 

* No valor de investimento para a realização do curso NÃO está incluso nenhum hardware, placa, componente ou licença de software, estes itens são de responsabilidade do aluno. A Microgenios e sua equipe técnica tentam, sempre que possível, utilizar nos cursos e webseminários softwares open source ou que possuam versões gratuitas para estudo, e placas de baixo custo e de fácil aquisição na internet.

* Esta Especialização é conteúdo exclusivo da Formação em Internet das Coisas.

* Lembramos que os alunos matriculados na Formação em Internet das Coisas ganham como bônus especial e gratuito acesso a todo o conteúdo do Clube de Membros Microgenios durante o período da Formação.

Este curso é destinado a todos os interessados em iniciar o desenvolvimento de projetos eletrônicos utilizando microcontroladores e conectividade, principalmente:

  • Estudantes de cursos superiores relacionados com engenharia e tecnologia (eletrônica, elétrica, automação, computação, mecânica, telecomunicações etc);
  • Estudantes de escolas técnicas de nível médio;
  • Profissionais já formados que precisam iniciar projetos utilizando microcontroladores, sistemas embarcados e internet das coisas (IoT);
  • Professores de faculdades e escolas técnicas, que necessitam reciclar/atualizar seus conhecimentos nas áreas de programação de microcontroladores, sistemas embarcados e internet das coisas (IoT).
FERNANDO SIMPLICIO DE SOUSA
"Professor universitário, desenvolvedor de projetos de sistemas embarcados e IoT, como a plataforma geniot.io e um dos fundadores da Microgenios."

   

* Doutorando pela UFABC;

* Mestre pela UFABC;

* Especialização Universidade Mackenzie; 

* Graduação FATEC-SP; 

* Graduação Universidade UNIP; 

* Curso Técnico ETEC Guaracy Silveira.

Participou da Fundação da Microgenios em 2006, Professor do SENAI Anchieta (Graduação e Pós Graduação), atuação profissional em empresas como Siemens, Ilumatic e Avant Lux; desenvolvedor chefe da plataforma de internet das coisas 100% brasileira geniot.io                                                                  


Certificado emitido pela Microgenios Soluções em Tecnologia Ltda., empresa atuante no mercado desde 2006 especializada em treinamentos, softwares e ferramentas de desenvolvimento para microcontroladores, eletrônica e sistemas embarcados; o certificado emitido neste para os alunos que concluírem este curso possui carga horária, conteúdo programático e código de verificação.

Conteúdo Programático

Tenha seu próprio Servidor Broker MQTT Mosquitto e ESP32
  • 1. [ESP32 SDK-IDF] Instalação do SDK-IDF C/C++ do ESP32 no Windows
  • 2. [ESP32 SDK-IDF] Instalação do SDK-IDF C/C++ do ESP32 no Windows - Parte 2
  • 3. [ESP32 SDK-IDF] Instalação SDK-IDF 4.0 no Windows 8 e 10 (64bits) - Parte 1
  • 4. [ESP32 SDK-IDF] Instalação SDK-IDF 4.0 no Windows 8 e 10 (64bits) - Parte 2
  • 5. [ESP32 SDK-IDF] P1 Programando as GPIO’s do ESP32 com SDK-IDF (Programação Nativa em C/C++)
  • 6. [ESP32 SDK-IDF] P2 Programando as GPIO’s do ESP32 com SDK-IDF (Entrada e Saída)
  • 7. [ESP32 SDK-IDF] Trabalhando com Descritor das GPIOs do ESP32 com SDK-IDF
  • 8. [ESP32 SDK-IDF] Descritor de entrada e saída do ESP32 com SDK-IDF
  • 9. [ESP32 SDK-IDF] Interrupções das GPIO’s do ESP32 com SDK-IDF e FreeRTOS (Programação Nativa em C/C++)
  • 10. [ESP32 SDK-IDF] Tratando os eventos das Interrupções das GPIOs do ESP32 com SDK-IDF
  • 1. [ESP32 SDK-IDF] Introdução ao WiFi do ESP32 com SDK-IDF C/C++ (Callback)
  • 2. [ESP32 SDK-IDF] Configuração do WiFi com IP fixo no ESP32 com SDK-IDF C/C++
  • 3. [ESP32 SDK-IDF] Configurando o WiFi por meio de componentes do ESP32 com SDK-IDF C/C++
  • 4. [ESP32 SDK-IDF] Modo de infraestrutura com WiFi do ESP32 com SDK-IDF C/C++
  • 5. [ESP32 SDK-IDF] Função de Callback – modo Ap – Programando o WiFi do ESP32 com SDK-IDF C/C++
  • 1. [ESP32 SDK-IDF] Socket TCP/IP Server Multithread no ESP32 com SDK-IDF C/C++ e FreeRTOS
  • 2. [ESP32 SDK-IDF] Socket TCP/IP Client no ESP32 com SDK-IDF C/C++ (Conexão Socket Client)
  • 3. [ESP32 SDK-IDF] Conexão Socket HTTP (POST) com ESP32 e SDK-IDF C/C++
  • 4. [ESP32 SDK-IDF] Conexão Socket HTTP (GET) com ESP32 e SDK-IDF C/C++
  • 5. [ESP32 SDK-IDF] Projeto WebSocket HTTP (GET e POST) com ESP32 e SDK-IDF C/C++
  • 6. [ESP32 SDK-IDF] Certificado TLS/SSL no Projeto WebSocket HTTP (GET e POST) com ESP32 e SDK-IDF C/C++
  • 7. [ESP32 SDK-IDF] Projeto Multi-Socket Client HTTP com ESP32 e IDF C/C++ e FreeRTOS
  • 1. [ESP32 SDK-IDF] Conexão Segura MQTT via TLS/SSL aplicado no ESP32 com IDF C/C++ e FreeRTOS
  • 2. [ESP32 SDK-IDF] [P2] Conexão Segura MQTT via TLS/SSL aplicado no ESP32 com IDF C/C++ e FreeRTOS
  • 1. [ESP32 SDK-IDF] Projeto IoT com MQTT aplicado no ESP32 com IDF C/C++ e FreeRTOS
  • 2. [ESP32 SDK-IDF] Projeto IOT com MQTT e ESP32 – Acionamento remoto pela internet
  • 3. [ESP32 SDK-IDF] WiFimanager: Configuração do SSID e PASSWORD do ESP32 via IDF C/C++ e FreeRTOS
  • 4. [ESP32 SDK-IDF] Projeto Completo: MQTT e WiFimanager integrado no ESP32 via IDF C/C++ e FreeRTOS
  • 5. [ESP32 SDK-IDF] Trabalhando com Memória não Volátil interna do ESP32 com SDK-IDF C/C++ e FreeRTOS
  • 6. [ESP32 SDK-IDF] Configuração da UART do ESP32 no SDK-IDF com FreeRTOS
  • 7. [ESP32 SDK-IDF] Manipulando Eventos da UART do ESP32 no SDK-IDF
  • 8. [ESP32 SDK-IDF] Programa Multithread de transmissão e recepção de dados via UART no ESP32
  • 1. [ESP32 SDK-IDF] Introdução a tecnologia Bluetooth no ESP32 com SDK-IDF (perfil SPP)
  • 2. [ESP32 SDK-IDF] Troca de dados via Bluetooth SPP do ESP32 e App Android (Terminal Bluetooth)
  • 3. [ESP32 SDK-IDF] Projeto Conversor Serial<>Bluetooth Completo com ESP32 e App Android (Terminal Bluetooth)
  • 1. [ESP32 SDK-IDF] Projeto-1: Comunicação Entre dois ESP32 via Socket TCP – Modo Server (operando na rede como cliente)
  • 2. [ESP32 SDK-IDF] Projeto-1: Comunicação Entre dois ESP32 via Socket TCP – Modo Client (operando na rede como cliente)
  • 3. [ESP32 SDK-IDF] Projeto-2: Comunicação Entre dois ESP32 via Socket TCP – Modo Server (operando na rede como Access Point)

Cursos Relacionados

Conheça outros cursos que oferecemos para complementar seus estudos.

Voltar ao topo