On a recent project, one of our engineers needed to measure structural strain at several locations on mobile lifting equipment while in operation. Since the strain measurements were distributed and mobile, a wireless internet of things (IOT) solution was required. This blog describes the steps and tools we used to integrate our solution into iTestSystem and LabVIEW™.
One of the wireless devices that we evaluated to monitor strain was a SparkFun Thing Plus (ESP32 WROOM) with a Load Cell Amplifier (HX711). The SparkFun Thing Plus uses the Espressif ESP32 Wi-Fi and Bluetooth MCU. It accepts a variety of digital interfaces including high-speed SPI, UART, I2S, and I2C. The HX711 load cell amplifier accepts four-wire Wheatstone bridges and outputs 24-bit data at either 10 Hz or 80 Hz. The digital signal from the HX711 was connected to a GPIO pin and clock pin on the SparkFun Thing Plus. We used a Lithium Ion 2Ah battery to power both devices.
Figure 1: Wireless Strain Prototype Connected to a 4-Wire Bending Bridge
After making the connections and installing the device in a 3D printed case for mobility testing, our development engineer programmed this device using the Arduino IDE. Our wireless strain prototype was programmed to auto connect to a Wi-Fi network and output device ID, tag names, and data values via UDP or Webservice. We chose UDP because we only needed the latest strain/load values. Bundling the device ID with the strain data would allow iTestSystem to collect data from multiple devices. To test the wireless strain prototype and develop the UDP interface for iTestSystem, we modified the Simple UDP LabVIEW example vi.
Figure 2: Arduino IDE with Example Program
Next, we integrated the wireless strain prototype into iTestSystem by adding a new communication class into the existing iTestSystem IOT Communication utility. This new class allowed the utility to read the specific UDP data type associated with our prototype and output data to a shared variable. Shared variables can be logged to disk and analyzed with iTestSystem alongside other machine data.
Figure 3: Simple UDP LabVIEW™ Code to Receive Wireless Strain Data from the Arduino Device