#include <ArduinoJson.h> // Librería para JSON
#include <WiFi.h>
#include <PubSubClient.h>
#include "HX711.h"
// Credenciales WiFi
const char* ssid = "Marared";
const char* password = "mararedproyecto";
// Configuración MQTT
const char* mqtt_server = "test.mosquitto.org";
WiFiClient wifiClient;
PubSubClient client(wifiClient);
// Configuración de la celda de carga
#define LOADCELL_DOUT_PIN 16
#define LOADCELL_SCK_PIN 4
HX711 scale;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConectado a WiFi");
client.setServer(mqtt_server, 1883);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale();
Serial.println("Tare... remove any weights from the scale.");
delay(5000);
scale.tare();
Serial.println("Tare done...");
}
void loop() {
client.loop();
if (scale.is_ready()) {
long reading = scale.get_units(10);
Serial.print("Result: ");
Serial.println(reading);
// Crear documento JSON
StaticJsonDocument<200> doc;
doc["weight"] = reading;
doc["unit"] = "grams";
char jsonBuffer[200];
serializeJson(doc, jsonBuffer);
// Publicar vía MQTT
if (client.connect("arduinoClient")) {
client.publish("outTopic", jsonBuffer);
client.subscribe("datosHX");
}
} else {
Serial.println("HX711 not found.");
}
delay(1000);
}