Mostrando entradas con la etiqueta XFW-HX711. Mostrar todas las entradas
Mostrando entradas con la etiqueta XFW-HX711. Mostrar todas las entradas

jueves, 3 de junio de 2021

Balanza con XFW-HX711 - ESP32 - Bluetooth - Interface Android


Balanza con XFW-HX711
ESP32 - Bluetooth
Interface Android


Hace unos años (6) , había trabajado con dispositivos  Bluetooth, utilizaba arduino y el módulo HC05.
Marcador controlado por bluetooth.
El módulo HC05 transmite señales con protocolo serie mediante el bluetooth.
Al disponer el ESP32 de interface interna  bluetooth, se puede utilizar para transmitir datos.
Había realizado una balanza con arduino, y posteriormente con el ESP32, en los dos casos la representación se hacía en un OLED.
Se me vino a la cabeza la idea de transmitir el peso mediante bluetooth, para luego representar los datos en un móvil tipo android. Además me servía de practicas con el ESP32 y el bluetooth.
En cuanto a la programación en la parte del ESP32 fue bastante fácil, existen muchos ejemplos.
Para no complicar mucho la programación, no he colocado contraseña en la báscula.


Circuito montado.

//_____HX711______________
#include "HX711.h"
const int DOUT=16;
const int CLK=17;
HX711 balanza;

float peso;
#define AJUSTE 1977700
char L4_peso[25];

//_____Bluetooth____________
#include "BluetoothSerial.h"
BluetoothSerial SerialBT;


#define PIN_LED 2

char VARI[100];
char mibuffer[20];
char TITULO[]="PESO_BT_seta";
int timePeso=TPESO;
......
 SerialBT.begin(TITULO); //Bluetooth device name
......
Le damos el nombre de  "PESO_BT_seta"   como nombre de la red Buetooth


Las pruebas se hicieron con el programa Serial Bluetooth

Antes de conectarse con el programa debemos sincronizar el Dispositivo Bluetooth en ajustes de android.
Como podemos observar se retransmiten los datos del peso cada 0.5 segundos.

La explicación de la calibración del módulo de peso se encuentra en bmp180.html .
Viendo que todo funcionaba correctamente, la segunda parte era la programación en el android.
Esta parte me ha costado bastante, hacía 5 años que no programaba nada en android, y para colmo había formateado el Debian 9 donde lo había programado.
Me tocó dos cosas, instalar en una partición Debian 9, luego instalar adt-bundle-linux-x86-20140702.zip , y actualizarlo con el ADT-23.0.6.zip .
Y lo peor de todo, acordarme de como se programaba, aunque tenía mis ejemplos anteriores de hace 5 años.
Después de arduo trabajo me salió este pequeño programa.


En la aplicación balanza seleccionamos el adaptador.


El programa balanza funcionando.



Circuito y programa balanza funcionando
.

Espero que les guste este programa y que les sirva para los suyos.

Programa Arduino ESP32
Programa Android APK  y fuentes ( Eclipse - Linux Debian9 32bits)


Saludos.
Juan Galaz

Bibliografía:
https://www.industrialshields.com/es_ES/blog/blog-industrial-open-source-1/post/esp32-wifi-bluetooth-133
https://www.juanjobeunza.com/esp32-ble/
https://www.prometec.net/esp32-serial-bluetooth/
http://kio4.com/arduino/180_Wemos_Bluetooth_LED_Pulsadores.htm
http://kio4.com/arduino/150_Wemos_BluetoothClasico.htm
espgrs.html
android.html
androg.html
http://cursoandroidstudio.blogspot.com/2015/10/conexion-bluetooth-android-con-arduino.html
http://solderer.tv/data-transfer-between-android-and-arduino-via-bluetooth/


miércoles, 26 de mayo de 2021

ESP32 - SENSORES II , BMP180, XFW-HX711.

ESP32-  SENSORES II

BMP180
XFW-HX711


En el anterior artículo ESP32 - SENSORES había realizado con el ESP32 un visualizador de sensores, en este proyecto añado otros dos, BMP180, XFW-HX711.
El BMP180 es un detector de presión, y el XFW-HX711 es un detector de peso.
Este montaje también lo he realizado con un arduino nano, bmp180.html , por lo cual no explicare mucho el montaje.
La explicación de la calibración del módulo de peso se encuentra en
bmp180.html .
Para la lectura del BMP180 he utilizado una rutina propia, que al proceder de un arduino, he tenido que modificar el tipo de datos, de int a int16_t, y de long a int32_t .
Por lo demás no he modificado nada al traspasar el programa, salvo los pins de conexión.


Esquema realizado con https://easyeda.com.


Circuito montado.

Peso de 5 monedas de 50 Céntimos.


Visualización de los datos en un navegador.


Diagrama de señales en el
XFW-HX711, convertidor A/D de 24bits.

Este proyecto me ha servido para ponerme en contacto con el ESP32, y ver todas sus posibilidades.
Espero que les haya gustado.


PROGRAMAS Y LIBRERÍAS

Saludos.
Juan Galaz


Bibliografía:

https://naylampmechatronics.com/blog/25_tutorial-trasmisor-de-celda-de-carga-hx711-balanza-digital.html
28/02/2016 - Arduino - Predicción del tiempo. GY-68 - BMP-180.  Predicción
21/02/2016 - Arduino power low - Termómetro máximos y mínimos con gráfica - DS18B20 LCD Nokia PCD8544. Tempe
09/02/2016 - Arduino -Barómetro - Termómetro. GY-68 -  BMP-180. Parte 2 (librería propia). ArduBer
03/02/2016 - Arduino -Barómetro - Termómetro. GY-68 -  BMP-180. Parte 1.  ArduBar
https://randomnerdtutorials.com/esp32-dht11-dht22-temperature-humidity-sensor-arduino-ide/
https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
https://www.profetolocka.com.ar/2020/07/09/programando-el-esp-32-con-el-arduino-ide/
https://www.prometec.net/presentando-el-esp32/


lunes, 24 de mayo de 2021

ARDUINO - SENSORES - BMP180- XFW-HX711.

ARDUINO - SENSORES

BMP180
XFW-HX711


El otro día me llego dos módulos que había pedido, el BMP180 (un viejo conocido con el cual había realizado 3 proyectos, y el XFW-HX711, un sensor  de peso.
Quería añadir los dos módulos al ESP32, pero quería antes probarlos en un arduino nano.

En primer lugar he realizado el montaje del sensor de presión, que muestra los datos en un OLED y en el terminal serie.
Para este montaje he utilizado el antiguo montaje :
Barómetro - Termómetro. GY-68 -  BMP-180. Parte 2 (librería propia). ArduBer , pero adaptándolo al OLED.
Como se puede observar lo he alimentado con 3V3 , para probar si funcionaría con el ESP32, aunque funciona también a 5V.
Lo bueno de este proyecto es que utilizan los dos módulos el protocolo I2C, lo que facilita mucho el diseño.




PROGRAMA


Como ya tenía montado el circuito de sensor de presión, he añadido el sensor de peso.
Como tutorial he seguido los pasos de:https://naylampmechatronics.com/blog/25_tutorial-trasmisor-de-celda-de-carga-hx711-balanza-digital.html
He añadido una línea donde figura el peso en gramos.
Empezamos explicando un poco el funcionamiento del módulo de pesaje.

Cuando un conductor se estira, su resistencia aumenta. Cuando está comprimido, su resistencia disminuye.
A estas piezas de metal la llamaremos Celdas De Carga.
Esta resistencia se mide con un convertidor A/D de 24bits , HX711, que transmite los dados mediante protocolo serie propio al arduino.

 



Una vez que tenemos montado el circuito, debemos calibrarlo.
El método es utilizar un objeto que sepamos su peso, yo he utilizado uno que antes había pesado en una báscula.
En mi caso había utilizado dos POWER_BANK que en total pesaban 133 grs.
Lo ideal es utilizar un peso que se ajuste al máximo de peso de la celda de carga, no es mi caso.
Ahora con el siguiente programa mido el valor que nos devuelve el módulo.

#include "HX711.h"
const int DOUT=2;
const int CLK=3;

HX711 balanza;
void setup() {
  Serial.begin(9600);
  balanza.begin(DOUT, CLK);
  Serial.print("Lectura del valor del ADC:t");
  Serial.println(balanza.read());
  Serial.println("No ponga ningún objeto sobre la balanza");
  Serial.println("Destarando...");
  balanza.set_scale(); //La escala por defecto es 1
  balanza.tare(20);  //El peso actual es considerado Tara.
  Serial.println("Coloque un peso conocido:");
}

void loop() {

  Serial.print("Valor de lectura: t");
  Serial.println(balanza.get_value(10),0);
  delay(100);
}


Con un peso de 133 grs nos proporciona una medida de 261425 .
Con el dato obtenido  hacemos un cálculo:
    261425:0.133 grs =1965601
El valor obtenido de la operación lo colocamos en:

    #define AJUSTE 1965601
    balanza.set_scale(AJUSTE);

Con esto ya podemos medir el peso de un objeto.
Debemos saber que cuando se reinicia el programa toma un primer peso que coloca como tara, para luego restarlo del peso total.



Peso de una POWER-BANK de 65grs, que corresponde al peso real.




Detalle de la celda de carga.



Peso de dos monedas de 50 CENT, que corresponde al valor real.
El circuito funciona muy bien, con una precisión alta.

Espero que les guste este proyecto.

PROGRAMA Y LIBRERÍA

Saludos.
Juan Galaz

Bibliografía:
https://naylampmechatronics.com/blog/25_tutorial-trasmisor-de-celda-de-carga-hx711-balanza-digital.html
28/02/2016 - Arduino - Predicción del tiempo. GY-68 - BMP-180.  Predicción
21/02/2016 - Arduino power low - Termómetro máximos y mínimos con gráfica - DS18B20 LCD Nokia PCD8544. Tempe
09/02/2016 - Arduino -Barómetro - Termómetro. GY-68 -  BMP-180. Parte 2 (librería propia). ArduBer
03/02/2016 - Arduino -Barómetro - Termómetro. GY-68 -  BMP-180. Parte 1.  ArduBar