
http://arduino.esp8266.com/stable/package_esp8266com_index.json
/* Internet das Coisas (IoT) com ESP8266 e Adafruit IO
* Autor: Eduardo de Castro Quintino
* Biblioteca da Placa: "esp8266 by ESP8266 Community versão 3.1.2"
* Placa: "NodeMCU 1.0 (ESP-12E Module)"
*
* ENTRADA DIGITAL
*/
// ======================================================================
// --- Dados de Acesso da Plataforma Adafruit IO ---
// visite io.adafruit.com para para criar a sua conta.
// Você necessitará dos dados Adafruit IO key.
#define IO_USERNAME "educastroeng" //sua informação
#define IO_KEY "33bc3654d2c84e8ab85bd130b99f4001" // sua informação
// ======================================================================
// --- Dados de Acesso do seu roteador ---
#define WIFI_SSID "internetdascoisas" // Informação da SSID do seu roteador
#define WIFI_PASS "12345678" // senha de acesso do seu roteador
#include "AdafruitIO_WiFi.h" // inclui biblioteca
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
// ======================================================================
// --- Mapeamento de Hardware ---
#define entradaPin 5 //D1 - Entrada Digital
// ======================================================================
// --- Feeds ---
//IMPORTANTE devem ser criados os feeds com o mesmo nome na AdafruitIO
AdafruitIO_Feed *estadoentrada = io.feed("estadoentrada"); //pub
// ======================================================================
// --- Variáveis Globais ---
bool estadoatualentrada = false;
bool ultimoestadoentrada = false;
// ======================================================================
// --- Void Setup ---
void setup() {
// --- Configuração IO ---
pinMode(entradaPin, INPUT);
Serial.begin(115200); // inicializa serial
// aguarda serial ser aberta
while(! Serial);
// conecta a io.adafruit.com
Serial.print("conectando com Adafruit IO");
io.connect();
// aguarda conexão
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
// nós estamos conectados
Serial.println();
Serial.println(io.statusText());
}
// ======================================================================
// --- void loop ---
void loop() {
//io.run(); é necessário para todos os esboços.
// deve estar sempre presente no topo do seu loop
//função. mantém o cliente conectado a
// io.adafruit.com e processa todos os dados recebidos.
io.run();
// condições para tratamento da leitura do status da máquina
if(digitalRead(entradaPin) == HIGH)
estadoatualentrada = true;
else
estadoatualentrada = false;
// retorna se o valor não mudou
if(estadoatualentrada == ultimoestadoentrada)
return;
//publica o estado atual da leitura digital onde é lido
// se a entrada está ligada ou desligada
estadoentrada->save(estadoatualentrada);
// armazena o último estado lido
ultimoestadoentrada = estadoatualentrada;
}
// ======================================================================
// --- Fim do código da programação =) ---
/* Internet das Coisas (IoT) com ESP8266 e Adafruit IO
* Autor: Eduardo de Castro Quintino
* Biblioteca da Placa: "esp8266 by ESP8266 Community versão 3.1.2"
* Placa: "NodeMCU 1.0 (ESP-12E Module)"
*
* SAÍDA DIGITAL
*/
// ======================================================================
// --- Dados de Acesso da Plataforma Adafruit IO ---
// visite io.adafruit.com para para criar a sua conta.
// Você necessitará dos dados Adafruit IO key.
#define IO_USERNAME "educastroeng" //sua informação
#define IO_KEY "33bc3654d2c84e8ab85bd130b99f4001" // sua informação
// ======================================================================
// --- Dados de Acesso do seu roteador ---
#define WIFI_SSID "internetdascoisas" // Informação da SSID do seu roteador
#define WIFI_PASS "12345678" // senha de acesso do seu roteador
#include "AdafruitIO_WiFi.h" // inclui biblioteca
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
// ======================================================================
// --- Mapeamento de Hardware ---
#define saidaPin 4 //D2 - Saida Digital
// ======================================================================
// --- Feeds ---
//IMPORTANTE devem ser criados os feeds com o mesmo nome na AdafruitIO
AdafruitIO_Feed *estadosaida = io.feed("estadosaida"); //sub
// ======================================================================
// --- Variáveis Globais ---
// ======================================================================
// --- Void Setup ---
void setup() {
// --- Configuração IO ---
pinMode(saidaPin, OUTPUT);
Serial.begin(115200); // inicializa serial
// configura um manipulador de mensagens para o feed 'estadosaida'.
// a função handleMessage (definida abaixo)
// será chamado sempre que uma mensagem for
// recebido de adafruit io.
estadosaida->onMessage(handleMessage);
// aguarda serial ser aberta
while(! Serial);
// conecta a io.adafruit.com
Serial.print("conectando com Adafruit IO");
io.connect();
// aguarda conexão
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
// nós estamos conectados
Serial.println();
Serial.println(io.statusText());
estadosaida->get(); // lê feed estadosaida
}
// ======================================================================
// --- void loop ---
void loop() {
//io.run(); é necessário para todos os esboços.
// deve estar sempre presente no topo do seu loop
//função. mantém o cliente conectado a
// io.adafruit.com e processa todos os dados recebidos.
io.run();
}
// ======================================================================
// --- void handleMessage ---
// esta função é chamada sempre que uma mensagem de feed 'estadosaida'
// é recebido da Adafruit IO. estava anexado ao
// feed 'estadosaida' na função setup() acima.
void handleMessage(AdafruitIO_Data *data) {
Serial.print("recebido <- ");
if(data->toPinLevel() == HIGH)
Serial.println("HIGH");
else
Serial.println("LOW");
// escreve na saída digital o valor lido
digitalWrite(saidaPin, data->toPinLevel());
}
// ======================================================================
// --- Fim do código da programação =) ---
/* Internet das Coisas (IoT) com ESP8266 e Adafruit IO
* Autor: Eduardo de Castro Quintino
* Biblioteca da Placa: "esp8266 by ESP8266 Community versão 3.1.2"
* Placa: "NodeMCU 1.0 (ESP-12E Module)"
*
* ENTRADA ANALÓGICA
*/
// ======================================================================
// --- Dados de Acesso da Plataforma Adafruit IO ---
// visite io.adafruit.com para para criar a sua conta.
// Você necessitará dos dados Adafruit IO key.
#define IO_USERNAME "educastroeng" //sua informação
#define IO_KEY "33bc3654d2c84e8ab85bd130b99f4001" // sua informação
// ======================================================================
// --- Dados de Acesso do seu roteador ---
#define WIFI_SSID "internetdascoisas" // Informação da SSID do seu roteador
#define WIFI_PASS "12345678" // senha de acesso do seu roteador
#include "AdafruitIO_WiFi.h" // inclui biblioteca
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
// ======================================================================
// --- Mapeamento de Hardware ---
#define analogicoPin A0 //A0 - Entrada Analógica
// ======================================================================
// --- Feeds ---
//IMPORTANTE devem ser criados os feeds com o mesmo nome na AdafruitIO
AdafruitIO_Feed *entradaanalogica = io.feed("entradaanalogica"); //pub
// ======================================================================
// --- Variáveis Globais ---
int leituraanalogica = 0; // variável para armazenar o valor lido em A0
// ======================================================================
// --- Void Setup ---
void setup() {
Serial.begin(115200); // inicializa serial
// aguarda serial ser aberta
while(! Serial);
// conecta a io.adafruit.com
Serial.print("conectando com Adafruit IO");
io.connect();
// aguarda conexão
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
// nós estamos conectados
Serial.println();
Serial.println(io.statusText());
}
// ======================================================================
// --- void loop ---
void loop() {
//io.run(); é necessário para todos os esboços.
// deve estar sempre presente no topo do seu loop
//função. mantém o cliente conectado a
// io.adafruit.com e processa todos os dados recebidos.
io.run();
// armazena a leitura analógica na variável
leituraanalogica = analogRead(analogicoPin);
//publica o estado atual da leitura analógica onde é lida
entradaanalogica->save(leituraanalogica);
// aguarda
delay(2500);
}
// ======================================================================
// --- Fim do código da programação =) ---
/* Internet das Coisas (IoT) com ESP8266 e Adafruit IO
* Autor: Eduardo de Castro Quintino
* Biblioteca da Placa: "esp8266 by ESP8266 Community versão 3.1.2"
* Placa: "NodeMCU 1.0 (ESP-12E Module)"
*
* SAÍDA ANALÓGICA
*/
// ======================================================================
// --- Dados de Acesso da Plataforma Adafruit IO ---
// visite io.adafruit.com para para criar a sua conta.
// Você necessitará dos dados Adafruit IO key.
#define IO_USERNAME "educastroeng" //sua informação
#define IO_KEY "33bc3654d2c84e8ab85bd130b99f4001" // sua informação
// ======================================================================
// --- Dados de Acesso do seu roteador ---
#define WIFI_SSID "internetdascoisas" // Informação da SSID do seu roteador
#define WIFI_PASS "12345678" // senha de acesso do seu roteador
#include "AdafruitIO_WiFi.h" // inclui biblioteca
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
// ======================================================================
// --- Mapeamento de Hardware ---
#define pwmPin 13 //D7 - Saida PWM
// ======================================================================
// --- Feeds ---
//IMPORTANTE devem ser criados os feeds com o mesmo nome na AdafruitIO
AdafruitIO_Feed *saidaanalogica = io.feed("saidaanalogica"); //sub
// ======================================================================
// --- Variáveis Globais ---
// ======================================================================
// --- Void Setup ---
void setup() {
// --- Configuração IO ---
pinMode(pwmPin, OUTPUT);
Serial.begin(115200); // inicializa serial
// configura um manipulador de mensagens para o feed 'saidaanalogica'.
// a função handleMessage (definida abaixo)
// será chamado sempre que uma mensagem for
// recebido de adafruit io.
saidaanalogica->onMessage(handleMessage);
// aguarda serial ser aberta
while(! Serial);
// conecta a io.adafruit.com
Serial.print("conectando com Adafruit IO");
io.connect();
// aguarda conexão
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
// nós estamos conectados
Serial.println();
Serial.println(io.statusText());
saidaanalogica->get(); // lê feed saidaanalogica
}
// ======================================================================
// --- void loop ---
void loop() {
//io.run(); é necessário para todos os esboços.
// deve estar sempre presente no topo do seu loop
//função. mantém o cliente conectado a
// io.adafruit.com e processa todos os dados recebidos.
io.run();
}
// ======================================================================
// --- void handleMessage ---
// esta função é chamada sempre que uma mensagem de feed 'saidaanalogica'
// é recebido da Adafruit IO. estava anexado ao
// feed 'saidaanalogica' na função setup() acima.
void handleMessage(AdafruitIO_Data *data) {
// converte o dado recebido para inteiro
int lendo = data->toInt();
// imprime na serial
Serial.print("recebido <- ");
Serial.println(lendo);
// mapeia o valor recebido de 0 a 100 para 0 a 255
lendo = map(lendo,0,100,0,255);
// escreve no pino PWM o valor recebido
analogWrite(pwmPin, lendo);
}
// ======================================================================
// --- Fim do código da programação =) ---
/* Internet das Coisas (IoT) com ESP8266 e Adafruit IO
* Autor: Eduardo de Castro Quintino
* Biblioteca da Placa: "esp8266 by ESP8266 Community versão 3.1.2"
* Placa: "NodeMCU 1.0 (ESP-12E Module)"
*
* DHT 22 (TEMPERATURA E UMIDADE)
*/
// ======================================================================
// --- Dados de Acesso da Plataforma Adafruit IO ---
// visite io.adafruit.com para para criar a sua conta.
// Você necessitará dos dados Adafruit IO key.
#define IO_USERNAME "educastroeng" //sua informação
#define IO_KEY "33bc3654d2c84e8ab85bd130b99f4001" // sua informação
// ======================================================================
// --- Dados de Acesso do seu roteador ---
#define WIFI_SSID "internetdascoisas" // Informação da SSID do seu roteador
#define WIFI_PASS "12345678" // senha de acesso do seu roteador
#include "AdafruitIO_WiFi.h" // inclui biblioteca
AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
// ======================================================================
// --- Mapeamento de Hardware ---
#define DHTPIN 12 //D6 - Pino utilizado pelo DHT22
// ======================================================================
// --- Inclusão biblioteca e parâmetros do sensor DHT22 ---
#include <DHT.h>
#define DHTTYPE DHT22 // Define que o sensor é o DHT22
DHT dht(DHTPIN, DHTTYPE);
// ======================================================================
// --- Feeds ---
//IMPORTANTE devem ser criados os feeds com o mesmo nome na AdafruitIO
AdafruitIO_Feed *temperatura = io.feed("temperatura"); //pub
AdafruitIO_Feed *umidade = io.feed("umidade"); //pub
// ======================================================================
// --- Variáveis Globais ---
float temperaturaatual = 0;
float umidadeatual = 0;
unsigned int previousMillis = 0;
unsigned int interval = 5000;
// intervalo de tempo para publicação das variáveis temperatura e umidade
// SUGESTÃO: alterar para 30000, visto que são variáveis lentas
// Mas o importante é verificar a realidade da sua necessidade de projeto
// ======================================================================
// --- Void Setup ---
void setup() {
// --- Configuração IO ---
Serial.begin(115200); // inicializa serial
dht.begin(); // Inicializa a função DHT
// aguarda serial ser aberta
while(! Serial);
// conecta a io.adafruit.com
Serial.print("conectando com Adafruit IO");
io.connect();
// aguarda conexão
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
// nós estamos conectados
Serial.println();
Serial.println(io.statusText());
}
// ======================================================================
// --- void loop ---
void loop() {
//io.run(); é necessário para todos os esboços.
// deve estar sempre presente no topo do seu loop
//função. mantém o cliente conectado a
// io.adafruit.com e processa todos os dados recebidos.
io.run();
tempopublicacao(); // chama a função
}
// função para publicar "temperatura" e "umidade" a cada intervalo de tempo
// são variáveis lentas, ou seja, dependendo do processo, demoram a ter variações significativas
// sugestão: entender o processo, mas para a minha aplicação 60 segundos estava perfeita
// para a aula, deixei 5 segundos
void tempopublicacao() {
if (millis() - previousMillis >= interval){
previousMillis = millis();
umidadeatual = dht.readHumidity(); // armazena valor da umidade
temperaturaatual = dht.readTemperature(); // armazena valor da temperatura
temperatura->save(temperaturaatual); // publica o valor da temperatura
umidade->save(umidadeatual); //publica o valor da umidade
//imprimir na serial os valores atuais de temperatura e umidade
Serial.print("Temperatura = ");
Serial.println(temperaturaatual);
Serial.print("Umidade = ");
Serial.println(umidadeatual);
}
}
// ======================================================================
// --- Fim do código da programação =) ---
IoT não é tendência. É a realidade que já está transformando a indústria — e quem não domina essa tecnologia fica para trás.
Se você trabalha com automação, manutenção industrial, desenvolvimento de projetos ou simplesmente quer conectar suas ideias ao mundo real, esse curso foi feito para você.
Desenvolvido por um engenheiro que aplica IoT na prática — em plantas industriais, em máquinas reais, com resultados mensuráveis — este curso vai além da teoria e te coloca para fazer de verdade.
O QUE VOCÊ VAI APRENDER:
→ Configurar e programar o ESP8266 do zero → Conectar sensores e coletar dados em tempo real → Criar dashboards personalizados na plataforma Adafruit IO → Realizar acionamentos e monitoramentos remotos via internet → Estruturar projetos IoT com aplicação real, não só bancada
PARA QUEM É ESSE CURSO:
→ Técnicos e engenheiros que querem dominar IoT na prática → Profissionais da indústria que querem agregar valor ao seu trabalho → Desenvolvedores que querem sair do ambiente local e ir para a nuvem → Quem quer aprender com exemplos reais, não com slides genéricos
O QUE VOCÊ NÃO VAI ENCONTRAR AQUI:
→ Teoria sem aplicação → Projetos que só funcionam no vídeo → Conteúdo copiado de documentação
Esse curso é resultado de anos de experiência em campo, de projetos instalados em indústrias reais e de problemas que custam dinheiro quando não são resolvidos.
Se você quer aprender IoT com quem faz IoT — esse é o seu curso.