Skip to content

Instantly share code, notes, and snippets.

void MainWindow::manejarPuertosSeriales(QComboBox *comboBox, int baud)
{
if (!comboBox) {
qWarning() << "Debes pasar un QComboBox válido.";
return;
}
// --- Poblar puertos ---
auto poblarPuertos = [comboBox]() {
@esmarr58
esmarr58 / 4.c
Created September 18, 2025 17:21
manejarPuertosSeriales(ui->comboBox,115200);
@esmarr58
esmarr58 / 3.cpp
Created September 18, 2025 04:09
ui->displayHumedad->setDigitCount(5); // p.ej. "65.8"
ui->displayHumedad->setSegmentStyle(QLCDNumber::Flat);
@esmarr58
esmarr58 / 2.cpp
Created September 18, 2025 04:07
// --- Configuración de los displays ---
ui->displayTemperatura->setDigitCount(5); // p.ej. "25.5"
ui->displayTemperatura->setSegmentStyle(QLCDNumber::Flat);
@esmarr58
esmarr58 / 1.cpp
Created September 18, 2025 04:05
ui->lineEdit->setPlaceholderText(
R"({"sensor":"dht22","pin":4})"
);
void MainWindow::on_pushButton_clicked()
{
if (!serialActual || !serialActual->isOpen()) {
QMessageBox::warning(this, "Error", "No hay ningún puerto abierto.");
return;
}
// Tomar el texto escrito por el usuario (ej: {"sensor":"dht22","pin":4})
QString jsonStr = ui->lineEdit->text().trimmed();
if (jsonStr.isEmpty()) {
void MainWindow::onSerialLineaRecibida(const QString &linea)
{
// Ejemplo de respuesta: {"ok":true,"temp":25.5,"humedad":65.8}
const QByteArray bytes = linea.toUtf8();
QJsonParseError perr;
const QJsonDocument doc = QJsonDocument::fromJson(bytes, &perr);
if (perr.error != QJsonParseError::NoError || !doc.isObject()) {
qWarning() << "JSON inválido:" << perr.errorString() << "en" << linea;
return;
}
void MainWindow::sendHeartbeat() {
QJsonObject heartbeatMessage;
heartbeatMessage["type"] = "heartbeat";
heartbeatMessage["timestamp"] = QDateTime::currentSecsSinceEpoch(); // Unix timestamp
QJsonDocument doc(heartbeatMessage);
QString jsonString = doc.toJson(QJsonDocument::Compact);
if (m_connected) {
m_webSocket->sendTextMessage(jsonString);
void MainWindow::loop(){
//Verificar si el websocket esta abierto
if(m_connected == false){
m_webSocket->open(QUrl("ws://192.168.0.105/ws")); // Reemplaza <ESP32_IP> con la IP de tu ESP32
m_connected = true;
}
}
QTimer *cronos = new QTimer(this);
cronos->start(1000);
connect(cronos, SIGNAL(timeout()),this, SLOT(loop()));