bclose

Báscula WIFI con carcasa 3D printed

Conectando a la bascula median Acces Point

Báscula WIFI con carcasa 3D printed

 

 

    • Vamos a montar una bascula con ESP32 y HX711.
    • Montaremos un servidor web.
    • Usaremos el servidor para publicar el peso.
    • Haremos algunas pruebas
 

 

Material requerido.

 

 Tienda EspañaTienda Mexico
 Vision panoramicaUna plataforma de balanza
 vista lateral del esp32Un ESP32 Un ESP32
 cables M-FCables macho-hembra

 

Este tutorial es parte de una serie sobre galgas y células de carga para hacer una balanza. Tal vez te interese revisarlas:

 

¿Otra vez la báscula?

 

Si. Reconozco que el tema puede ser cansino, pero un amigo me llamó la atención sobre el hecho de el programa de báscula que pusimos en la sesión previa, solo funcionaba en una determinada subred IP, la 192.168.1.xx, y que él necesitaba la báscula, pero la subred de su router era diferente.

Vale, pues reprograma el ESP32 con tu subred y listo, dije yo. “Ni sé, ni quiero aprender a hacer eso, que ya tengo bastantes líos”, respondió el. Y me pregunto “¿No puedes hacer algo para que me conecte desde cualquier sitio por la WIFI?”

Y como tenía toda la razón, he modificado el programa de la báscula para que haga exactamente eso. Es decir, nuestro ESP32 interno lee la báscula y lo publica en un servidor web, pero además le hemos puesto en modo Access Point, para que desde fuera te puedas conectar a su red WIFI como si fuera tu router y listo.

El, muy agradecido, había diseñado una carcasa 3D para contener la báscula y me ha autorizado a publicar su diseño, así que todos contentos. Esta sesión va de modificar el programa en la dirección de permitir la conexión WIFI a la báscula y veremos el diseño de Carlos para contener la electrónica

 

Modificando el programa de bascula

 

En la sesión correspondiente ya vimos el programa de la báscula, así que vamos a ir un poco rápido hoy por aquí.  Si queréis comprobar las conexiones y detalles más específicos del programa, revisar la sesión de la báscula WIFI, aquí nos vamos a centrar en las variaciones

Vamos a repasar rápidamente el programa:

#include "HX711.h"
#include <WiFi.h>
#include <WebServer.h>

const int LOADCELL_DOUT_PIN = 19;
const int LOADCELL_SCK_PIN = 18;

Las librerías necesarias y la definición de los pines al convertidor ADC. Como queremos que nuestro ESP32 sea un punto de acceso WIFI, vamos a definir las características necesarias.

const char* ssid = "Balanza";     // Este es el SSID
const char* password = "12345678"; // Esta es la contraseña

IPAddress local_ip(mralejandroquiros@gmail.com);    // Asignara direcciones en 192.168.5.xx
IPAddress gateway(192,168,5,1);
IPAddress subnet(255,255,255,0);

WebServer server(80);
HX711 balanza;

Definimos Balanza como el nombre que publicaremos en la WIFI y marcamos la contraseña que tendremos que dar para ser aceptados en las dos primeras líneas. Luego definimos nuestra dirección IP y el Gateway por defecto (Nuestra báscula también, mientras estemos conectados) y por último la subred a la que nos asociamos. Las dos últimas líneas arrancan el servidor web en el puerto 80 pero recordad que podéis cambiarlo a vuestro gusto, y creamos la instancia de la balanza. En el setup definimos el modo SoftAP (Acces Point) con los valores que hemos definido antes:

void setup()
{ Serial.begin(115200);
  WiFi.softAP(ssid, password);  //Start Acces point mode
  WiFi.softAPConfig(local_ip, gateway, subnet);

Ahora arrancamos la balanza y pasamos los datos de calibración. Recordad que necesitáis calibrar la balanza por el procedimiento que definimos aquí, si queréis una cierta precisión. Si utilizas el valor de 396 que uso aquí para la escala, funcionara, pero deberías calibrar tu propia balanza.

  balanza.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
  delay(250);
  balanza.set_scale(396    );
  balanza.tare(20);  // Hacer 20 lecturas, el promedio es la tara

Y por último enganchamos las funciones CallBack que atenderán las conexiones al servidor, como siempre:

  server.on("/", handle_OnConnect);
  server.onNotFound(handle_NotFound);
  server.begin();
  Serial.println("HTTP server started: 192.168.5.1");
}

Las funciones restantes son casi iguales que la última vez:

void loop()
{ server.handleClient(); }

void handle_OnConnect()
{  if (balanza.is_ready())
    {   float reading = balanza.get_units(10);              // Peso sin tara y corregido    
        Serial.println(reading  );
        server.send(200, "text/html", SendHTML(reading));
     }
   else
      Serial.println("HX711 no encontrado.");
}

void handle_NotFound()
{  server.send(404, "text/plain", "No hay respuesta");}

Aquí os dejo el programa completo: Bascula

 

Imprimiendo las piezas

 

Nuestro buen amigo y colaborador, Carlos, que tiene mucho tiempo libre, ha diseñado con sorprendente velocidad una carcasa para contener toda la electrónica de la báscula, que es a la vez funcional y discreta, lo que no es poco.

Os dejo aquí los diseños de las piezas necesarias en formato STL, para que los que tengáis impresora 3D podáis imprimirlas y montar el proyecto completo:  Bascula WIFI HX711

Una vez impresas las piezas podéis ver la guía de montaje en video aquí:

Insertar video

 

Y aquí tenéis una foto del resultado final, una vez montado todo:

bascula impresa en 3d

 

Conectando a la báscula

 

Bueno, como esta vez hemos definido nuestro ESP32 como punto de acceso WIFI, para acceder a la báscula tenemos que empezar conectándonos a la WIFI “Báscula” con la contraseña “12345678”.

Una vez conectados, podemos ir con el navegador del móvil a la dirección IP 192.168.5.1 y veremos la página web con los datos. Aquí os dejo un pequeño video de mi móvil mientras hago la conexión:

 

 

IMAGEN DE MARCA