segunda-feira, 4 de março de 2024

ESP32 – Interrupção

 

·        Compreender o funcionamento Interrupções

·        Utilizar uma interrupção externa

·        Exemplos

 

Fonte de consulta sobre a EEPROM do ESP32:

·        Arduino.cc - attachInterrupt()

·        Gammon Forum - Interrupts

·        Fernando K - Os profissionais sabem disso: Interrupt ISR   



  



 

 g



  




ESP32 – Explorando o GPIO

 




·        Integrando a plataforma ESP32 na IDE Arduino

·        Visão geral sobre as opções disponíveis de placas

·        Explorando a “pinagem”

·        GPIO – Entradas e saídas digitais

 

Material de consulta (roteiro de estudo):

·        Instalando ESP32 no Arduino IDE: Método fácil

·        Getting Started with the ESP32 Development Board

·        ESP32 Pinout Reference: Which GPIO pins should you use?

·        ESP32: Detalhes internos e pinagem

·        ESP32 Digital Inputs and Digital Outputs (Arduino IDE)





domingo, 19 de janeiro de 2020

ESP32 - MQTT




Arduino e Cia - Enviando mensagens MQTT com módulo ESP32






Instituto NCB - Enviando e recebendo dados via MQTT com o ESP32 (MIC373)








  


Youtube


Internet das Coisas - Curso de MQTT - Parte 1 - Internet e Coisas #51

Fernando K - Introdução ao protocolo MQTT com Ubidots – ESP32

Microgenios - HTTP ou MQTT? Descubra as diferenças para Projetos IOT

Microgenius - Aula19 - Trabalhando com Mqtt para IoT com ESP32 no geniot PRO Industrial (P2)




  

11ª Mostra Eletrônica - 2019 - II


       


  

Os participantes














11ª Mostra Eletrônica - 2019 - II - Galeria de fotos

segunda-feira, 1 de julho de 2019

ESP32 - Entradas Analógicas



A leitura e conversão de sinais analógicos é semelhante a arquitetura Arduino.

A base é a função analogRead() - Arduino.cc - analogRead()

Resolução - Arduino.cc - analogReadResolution()


Tutoriais para leitura de sinais analógicos


Random Nerd Tutorials - ESP32 ADC – Read Analog Values with Arduino IDE

Espressif - Analog to Digital Converter

GitHub- ESP32-ADC-Accuracy-Improvement-function/ESP32_Read_Voltage_Simple.ino

Embarcados - ESP32 – Analisando e corrigindo o ADC interno

Fernando K - Você não sabia? Ajuste de ADC do ESP32

Portal Vida de Silicio - LENDO SENSORES ANALÓGICOS EM DEEP SLEEP COM ULP - ESP32

YouTube - Crescer Indústria de Automação - Entrada Analógica do ESP32 |Como filtrar e linearizar

Fóruns com informações sobre erros em leituras analógicas


GitHub - espressif / arduino-esp32 - Inconsistent values when using "analogRead()" #92

GitHub - espressif / arduino-esp32 - the analogRead seems doesn't work #683

Expressif - ESP32 ADC Non-linear Issues - How do I fix / change Attenuation or width?



Exemplo com LM35 

  









/* arquivo: esp32AnalogReadLm35
   Plataforma: ESP 32
   Leitura de entradas analógicas

   GPIO 34 (Analog ADC1_CH6)

   LM35DZ - 10mV/ºC

   Média com leituras

   Luiz Oscar Ruschel Pilger - Atualição: 25/06/2020
*/
// Constantes
const int sensorPino = 34;
const int leituras = 50;
// Variáveis
long sensorValor;
float temperatura;

void setup() {
  Serial.begin(115200);
  // configurações do A/D
  analogReadResolution ( 12 ); // resolução de 12 bits
  //analogSetAttenuation (ADC_0db);  // Para todos os pinos
  // Atenuação: ADC_0db, ADC_2_5db, ADC_6db, ADC_11db
  // 0dB: 100 - 950mV # 2.5dB: 100 - 1250mV # 6dB: 150 - 1750mV # 11dB: 150 - 2450mV
  analogSetPinAttenuation (sensorPino, ADC_6db); // Atenuação de 6db no pino sensorPino
  //analogSetCycles(16); // define o número de ciclos por amostra. O padrão é 8. Intervalo: 1 a 255.
  //analogSetSamples(1); // define o número de amostras no intervalo. O padrão é 1 amostra. Tem um efeito de aumentar a sensibilidade
}

void loop() {
  // Leitura do sensor
  sensorValor = 0;  // zera as leituras
  for (int i = 0; i < leituras; i++) {
    sensorValor = sensorValor + analogRead(sensorPino); // acumula as leituras
    delay(1); // tempo para o conversor
  }
  sensorValor = sensorValor / leituras; // calcula a média
  Serial.print(sensorValor);  // imprime a media da conversão
  float millivolts = ((float)sensorValor / 4095) * 3300; // Calcula o valor obtido do conversor para mV
  Serial.print(" -> ");
  Serial.print(millivolts); // imprime o valor em mV
  float temperatura = millivolts / 10;  // calucla a temperatura
  Serial.print("mV -> Temperatura = ");
  Serial.print(temperatura);  // imprime a temperatura
  Serial.println("ºC");
  delay(1000);  // tempo entre cada medida
}