16 horas · RA3 · Arduino IDE, buses y librerías del aula
32 bits, Wi-Fi y BLE integrados, ADC, I2C, SPI, UART y precio de aula. Arduino y Raspberry Pi se presentan como alternativas: Arduino UNO no trae red; la Pi es microprocesador con Linux, no un MCU de tiempo real barato.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
#include <DHTesp.h>
DHTesp sensorDht;
void setup() {
Serial.begin(115200);
sensorDht.setup(4, DHTesp::DHT22);
}
void loop() {
TempAndHumidity datos = sensorDht.getTempAndHumidity();
Serial.print("Temperatura: ");
Serial.println(datos.temperature);
Serial.print("Humedad: ");
Serial.println(datos.humidity);
delay(2000);
}
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C pantalla(U8G2_R0, U8X8_PIN_NONE);
void setup() {
Wire.begin(21, 22);
pantalla.begin();
}
void loop() {
pantalla.clearBuffer();
pantalla.setFont(u8g2_font_ncenB08_tr);
pantalla.drawStr(8, 24, "DPIOT - Aula IoT");
pantalla.sendBuffer();
delay(1000);
}
| Bus | Hilos de datos | Uso en el kit |
|---|---|---|
| UART | TX/RX | Monitor serie y GPS |
| I2C | SDA/SCL | OLED, RTC, BMP280 |
| SPI | MOSI/MISO/SCK/CS | Pantallas rápidas, SD |
En I2C todos los esclavos comparten el bus: cada uno necesita dirección distinta (el OLED suele ser 0x3C).
#include <ArduinoJson.h>
void serializarLectura(float temperatura, float humedad, int rssi) {
JsonDocument documento;
documento["dispositivo"] = "esp32-aula-01";
documento["temperatura"] = temperatura;
documento["humedad"] = humedad;
documento["rssi"] = rssi;
serializeJson(documento, Serial);
}