#include "HX711.h"
#include <WiFi.h>
#include <PubSubClient.h>
#include <HTTPClient.h>
#define DOUT_PIN_1 25
#define SCK_PIN_1 26
#define DOUT_PIN_2 27
#define SCK_PIN_2 14
#define DOUT_PIN_3 12
#define SCK_PIN_3 13
#define DOUT_PIN_4 33
#define SCK_PIN_4 32
HX711 scale1;
HX711 scale2;
HX711 scale3;
HX711 scale4;
const char* ssid = "MEGACABLE-2.4G-B7A3";
const char* password = "wvGM4X6B4H";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando a WiFi...");
}
Serial.println("Conectado a WiFi");
Serial.println("");
Serial.println("Conexión WiFi establecida");
Serial.print("Dirección IP: ");
Serial.println(WiFi.localIP());
scale1.begin(DOUT_PIN_1, SCK_PIN_1);
scale2.begin(DOUT_PIN_2, SCK_PIN_2);
scale3.begin(DOUT_PIN_3, SCK_PIN_3);
scale4.begin(DOUT_PIN_4, SCK_PIN_4);
scale1.set_gain(128);
scale2.set_gain(128);
scale3.set_gain(128);
scale4.set_gain(128);
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
long celda1 = send_reading(scale1);
long celda2 = send_reading(scale2);
long celda3 = send_reading(scale3);
long celda4 = send_reading(scale4);
sendDataServer(celda1,celda2,celda3,celda4);
reading_sensor(scale1,"Celda 1");
reading_sensor(scale2,"Celda 2");
reading_sensor(scale3,"Celda 3");
reading_sensor(scale4,"Celda 4");
delay(1000); // 1 segundo antes de la próxima lectura
}
}
void reading_sensor(HX711 scale, const char* sensorName){
if (scale.is_ready()) {
long reading = scale.read();
Serial.print(sensorName);
Serial.print(" - Weight: ");
Serial.print(reading*(5.0/2100.0));
Serial.println(" Kg");
} else {
Serial.print(sensorName);
Serial.println(" - Load cell reading error");
}
}
long send_reading(HX711 scale) {
long reading = 0;
if (scale.is_ready()) {
reading = scale.read();
reading = reading * (5.0 / 2100.0);
} else {
reading = -1;
}
return reading;
}
void sendDataServer(long celda1, long celda2, long celda3, long celda4) {
HTTPClient http;
String url = "http://tuapkmovil.125mb.com/insert_read_sensors.php?celda1=" + String(celda1)+"&celda2="+ String(celda2)+"&celda3="+ String(celda3)+"&celda4="+ String(celda4);
http.begin(url);
int httpCode = http.GET();
if (httpCode > 0) {
if (httpCode == HTTP_CODE_OK) {
Serial.println("Datos enviados correctamente al servidor");
} else {
Serial.println("Error en la solicitud HTTP");
}
} else {
Serial.println("Error en la conexión al servidor");
}
http.end();
}