Hand Tool Anemometer Without Moving Parts

by MCORTS in Circuits > Gadgets

81 Views, 0 Favorites, 0 Comments

Hand Tool Anemometer Without Moving Parts

WindQX_ HandToolAnemometer1_mini.png
HTA_end.jpg

A portable handheld solid-state anemometer built with a M5Stack DIAL, a WindQX solid-state anemometer sensor, a 3D-printed case, and a rechargeable battery

Supplies

Bill of Materials


M5Stack DIAL

ESP32-S3, 1.28″ round display


WindQX SA.01P Solid-State Anemometer

5 V, I2C output, UART optional

3D-printed case


Li-Po rechargeable battery

3.7v 3400mAh 18650 Li-ion with PH1.25mm 2P

5

Grove cable 4-pin, 10 cm

1

HY2.0-4Pin for M5Stack Development Board


USB-C cable

Programming and charging

Tools required: soldering iron, resing 3D printer (or printing service).

3D-Printed Case

The case is designed to hold the M5Stack DIAL in one hand with the WindQX sensor pointing forward. All design files are in this repository.

Print settings: recommended 0.2 mm layer height, 20 % infill, PLA or PETG.

Prepare the M5Stack DIAL

Hardware Assembly

Step 1 — Prepare the M5Stack DIAL

  1. Charge the Li-Po rechargeable battery before starting. You can use the M5Stack DIAL via USB-C as a charger.
  2. Confirm the firmware version is UIFlow 2.x (hold the encoder button while powering on; the screen shows the current mode and firmware).
  3. If needed, flash UIFlow 2.x firmware using the M5Burner tool.

Download the UIFlow firmwareSetup the firmwareFlash the firmaware

Connect the WindQX Sensor

The WindQX sensor communicates over I2C at address id 54. Using the i2c0 login interface at 100 KHz. Connect it to the M5Stack DIAL Grove Port A (bottom right connector) using a standard Grove cable:

⚠️ The WindQX sensor requires 5 V. The M5Stack DIAL Grove port provides 5 V on pin 3. Do not exceed this voltage.

The WindQX sensors come with a connector that is not a Grove connector, so it will need to be replaced. The simplest way is to cut it off and solder the wires so that it looks like this:

Install the Battery


The M5Stack DIAL has an internal JST PH 1.25mm connector for a Li-Po battery and includes a charge regulator. Insert the 3.7 V 500 mAh battery and secure it with the provided adhesive pad if your enclosure requires it.

Programming With UIFlow 2.0

The firmware is a UIFlow 2.0 block program located in https://github.com/McOrts/hand_tool_anemometer/tree/main/src

Loading the Program

  1. Open UIFlow 2.0 in your browser (or the desktop app).
  2. Connect the M5Stack DIAL via USB-C or Wi-Fi.

3. Create a new project4. Click Import project from local file and select src/WindQX_Anemometer.m5f2

5. Select run or download6. Setup the connection to burn the program

7. Click Project files (+) and select src/iconAlarm.pngIcon

Program Logic (Block Overview)


Usage

  1. Power on — Short-press the encoder button. The DIAL logo appears and the device boots (~3 s).
  2. Read wind speed — The gauge needle and numeric value update every 250 ms. If the wind speed > 0, the LED color of sensor turns into red.
  3. Set alarm threshold a. Rotating the encoder clockwise to increase the value or anti-clockwise to reduce the value. b. By dragging the dot on the slider with your finger to the desired alarm value.
  4. Alarm — If the current wind speed is greater than the selected alert threshold, the device will emit beeps and the speed icon will display a red dot.
  5. Power off — Long-press the encoder button.

Display Layout

Calibration

The WindQX sensor is factory-calibrated. For best results:

  1. Point the sensor directly into the wind (0° incidence).
  2. Hold the device at arm's length, away from body turbulence.
  3. For field calibration against a reference anemometer, use the CALIBRATION_OFFSET constant at the top of the program (block: Set CALIBRATION_OFFSET to 0.0). A positive value adds to every reading; a negative value subtracts.