feat(formacoes): módulo 2 (DHT22 + LCD 16x2 no Wokwi), PDFs e página de entrada
Release / Plano (reaproveitar a imagem?) (push) Successful in 7s
CI / Lint e auditorias (push) Successful in 1m48s
CI / Trivy (dependências e segredos) (push) Successful in 12s
CI / Imagem Docker (linux/arm64) (push) Failing after 2m27s
Release / ci (push) Failing after 4m31s
Release / Publica a imagem (linux/arm64) (push) Skipped
Release / Cria a release no Gitea (push) Skipped
Release / Plano (reaproveitar a imagem?) (push) Successful in 7s
CI / Lint e auditorias (push) Successful in 1m48s
CI / Trivy (dependências e segredos) (push) Successful in 12s
CI / Imagem Docker (linux/arm64) (push) Failing after 2m27s
Release / ci (push) Failing after 4m31s
Release / Publica a imagem (linux/arm64) (push) Skipped
Release / Cria a release no Gitea (push) Skipped
- Formação 2 da LASER: slides visuais, apostila, projeto do Wokwi e scanner I2C, validados no simulador (leitura normal, temperatura negativa e sensor desconectado). Circuito com pull-ups de 10 kΩ e 4,7 kΩ para 3V3 e aviso sobre os pull-ups de 5 V da plaquinha PCF8574. - PDFs prontos dos slides e das apostilas dos módulos 1 e 2; slides-pdf agora também exporta a apostila. - Página de entrada em /formacoes e /formacoes/N, gerada por scripts/formacoes-viewer.mjs a partir do formacao.json de cada pasta. - A apostila passou de index.html para apostila.html. - Corrige o link do Fritzing da apostila 1 (/apostilas/1 não existe). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
71c5708726
commit
1860e34cbb
32 files changed
+6469
-1943
No files matched your search
@@ -0,0 +1,183 @@
|
||||
{
|
||||
"version": 1,
|
||||
"author": "Lucas Rayan Guerra",
|
||||
"editor": "wokwi",
|
||||
"parts": [
|
||||
{
|
||||
"type": "board-esp32-s3-devkitc-1",
|
||||
"id": "esp",
|
||||
"top": 0,
|
||||
"left": 0,
|
||||
"attrs": {}
|
||||
},
|
||||
{
|
||||
"type": "wokwi-dht22",
|
||||
"id": "dht",
|
||||
"top": 15,
|
||||
"left": -250,
|
||||
"attrs": {
|
||||
"temperature": "26.5",
|
||||
"humidity": "62"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "wokwi-lcd1602",
|
||||
"id": "lcd",
|
||||
"top": 320,
|
||||
"left": -60,
|
||||
"attrs": {
|
||||
"pins": "i2c"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "wokwi-resistor",
|
||||
"id": "r_dht",
|
||||
"top": 9,
|
||||
"left": -173,
|
||||
"rotate": 90,
|
||||
"attrs": {
|
||||
"value": "10000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "wokwi-resistor",
|
||||
"id": "r_sda",
|
||||
"top": 9,
|
||||
"left": -83,
|
||||
"rotate": 90,
|
||||
"attrs": {
|
||||
"value": "4700"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "wokwi-resistor",
|
||||
"id": "r_scl",
|
||||
"top": 9,
|
||||
"left": -63,
|
||||
"rotate": 90,
|
||||
"attrs": {
|
||||
"value": "4700"
|
||||
}
|
||||
}
|
||||
],
|
||||
"connections": [
|
||||
[
|
||||
"esp:TX",
|
||||
"$serialMonitor:RX",
|
||||
"",
|
||||
[]
|
||||
],
|
||||
[
|
||||
"esp:RX",
|
||||
"$serialMonitor:TX",
|
||||
"",
|
||||
[]
|
||||
],
|
||||
[
|
||||
"lcd:VCC",
|
||||
"esp:5V",
|
||||
"red",
|
||||
[
|
||||
"h-20",
|
||||
"v-100"
|
||||
]
|
||||
],
|
||||
[
|
||||
"lcd:GND",
|
||||
"esp:GND.1",
|
||||
"black",
|
||||
[
|
||||
"h-30",
|
||||
"v-90"
|
||||
]
|
||||
],
|
||||
[
|
||||
"lcd:SDA",
|
||||
"esp:8",
|
||||
"blue",
|
||||
[
|
||||
"h-40",
|
||||
"v-200"
|
||||
]
|
||||
],
|
||||
[
|
||||
"lcd:SCL",
|
||||
"esp:9",
|
||||
"purple",
|
||||
[
|
||||
"h-50",
|
||||
"v-170"
|
||||
]
|
||||
],
|
||||
[
|
||||
"dht:VCC",
|
||||
"r_dht:1",
|
||||
"red",
|
||||
[
|
||||
"v12",
|
||||
"h-25",
|
||||
"v-159",
|
||||
"h100"
|
||||
]
|
||||
],
|
||||
[
|
||||
"dht:SDA",
|
||||
"esp:12",
|
||||
"gold",
|
||||
[
|
||||
"v77"
|
||||
]
|
||||
],
|
||||
[
|
||||
"dht:GND",
|
||||
"esp:GND.1",
|
||||
"black",
|
||||
[
|
||||
"v118"
|
||||
]
|
||||
],
|
||||
[
|
||||
"r_dht:1",
|
||||
"esp:3V3.1",
|
||||
"red",
|
||||
[]
|
||||
],
|
||||
[
|
||||
"r_dht:2",
|
||||
"esp:12",
|
||||
"gold",
|
||||
[
|
||||
"v181"
|
||||
]
|
||||
],
|
||||
[
|
||||
"r_sda:1",
|
||||
"esp:3V3.1",
|
||||
"red",
|
||||
[]
|
||||
],
|
||||
[
|
||||
"r_sda:2",
|
||||
"esp:8",
|
||||
"blue",
|
||||
[
|
||||
"v124"
|
||||
]
|
||||
],
|
||||
[
|
||||
"r_scl:1",
|
||||
"esp:3V3.1",
|
||||
"red",
|
||||
[]
|
||||
],
|
||||
[
|
||||
"r_scl:2",
|
||||
"esp:9",
|
||||
"purple",
|
||||
[
|
||||
"v152"
|
||||
]
|
||||
]
|
||||
],
|
||||
"dependencies": {}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
DHT sensor library
|
||||
Adafruit Unified Sensor
|
||||
LiquidCrystal I2C
|
||||
@@ -0,0 +1,23 @@
|
||||
// Scanner I2C: lista o endereço de cada dispositivo no barramento.
|
||||
// Use antes do programa principal se o LCD não mostrar nada.
|
||||
|
||||
#include <Wire.h>
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Wire.begin(8, 9); // SDA, SCL
|
||||
delay(500);
|
||||
|
||||
Serial.println("Procurando dispositivos I2C...");
|
||||
int encontrados = 0;
|
||||
for (byte endereco = 1; endereco < 127; endereco++) {
|
||||
Wire.beginTransmission(endereco);
|
||||
if (Wire.endTransmission() == 0) {
|
||||
Serial.printf("Dispositivo em 0x%02X\n", endereco);
|
||||
encontrados++;
|
||||
}
|
||||
}
|
||||
if (encontrados == 0) Serial.println("Nenhum dispositivo. Confira SDA, SCL e alimentacao.");
|
||||
}
|
||||
|
||||
void loop() {}
|
||||
@@ -0,0 +1,59 @@
|
||||
// Formação em ESP32 · LASER · Módulo 2
|
||||
// Estação de temperatura e umidade: DHT22 + LCD 16x2 I2C + ESP32-S3
|
||||
|
||||
#include <Wire.h>
|
||||
#include <DHT.h>
|
||||
#include <LiquidCrystal_I2C.h>
|
||||
|
||||
#define PINO_DHT 12 // fio amarelo
|
||||
#define TIPO_DHT DHT22
|
||||
#define PINO_SDA 8 // I2C padrão do ESP32-S3
|
||||
#define PINO_SCL 9
|
||||
|
||||
DHT dht(PINO_DHT, TIPO_DHT);
|
||||
LiquidCrystal_I2C lcd(0x27, 16, 2); // endereço, colunas, linhas
|
||||
|
||||
// Símbolo de grau: 8 linhas de 5 pixels
|
||||
byte grau[8] = { 0b01100, 0b10010, 0b10010, 0b01100, 0, 0, 0, 0 };
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Wire.begin(PINO_SDA, PINO_SCL);
|
||||
dht.begin();
|
||||
|
||||
lcd.init();
|
||||
lcd.backlight();
|
||||
lcd.createChar(0, grau);
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print("LASER ESP32-S3");
|
||||
lcd.setCursor(0, 1);
|
||||
lcd.print("Iniciando...");
|
||||
delay(2000); // o DHT22 precisa de ~2 s para a primeira leitura
|
||||
lcd.clear();
|
||||
}
|
||||
|
||||
void loop() {
|
||||
float umidade = dht.readHumidity();
|
||||
float temperatura = dht.readTemperature();
|
||||
|
||||
if (isnan(umidade) || isnan(temperatura)) {
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print("Falha no sensor ");
|
||||
Serial.println("Falha na leitura do DHT22");
|
||||
} else {
|
||||
lcd.setCursor(0, 0);
|
||||
lcd.print("Temp: ");
|
||||
lcd.print(temperatura, 1);
|
||||
lcd.write(0); // o caractere de grau criado acima
|
||||
lcd.print("C ");
|
||||
|
||||
lcd.setCursor(0, 1);
|
||||
lcd.print("Umid: ");
|
||||
lcd.print(umidade, 1);
|
||||
lcd.print(" % ");
|
||||
|
||||
Serial.printf("Temperatura: %.1f C | Umidade: %.1f %%\n", temperatura, umidade);
|
||||
}
|
||||
|
||||
delay(2000); // o DHT22 aceita no máximo uma leitura a cada 2 s
|
||||
}
|
||||
Reference in new issue
Block a user