COVID-19 Airflow Sensor Automotive Hack
by hydronics in Circuits > Arduino
2516 Views, 5 Favorites, 0 Comments
COVID-19 Airflow Sensor Automotive Hack
This is a rapidly evolving project... this sensor was abandoned because it doesn't have any mounting holes or easy method to seal against a tube. An ongoing airflow sensor project is here: AFH55M12
Project Description from Helpful Engineering
The intent here is to create a monitoring device, based on a mass airflow meter, that can be used when splitting a ventilator into two or more patients. This will allow staff to monitor individual patients while being controlled by one device in extreme situations where the number of ventilators are not enough to handle the number of patients. The readout should be visible locally on the device and there may need to be parameters input by staff to create a safe operating range and to possibly create alarms when the system is measuring an out of range parameter.
This is a quick study of using an inexpensive off-the-shelf automotive airflow type sensor.
Reading from an automotive mass airflow sensor using a microController 12bit ADC, 20ms interval
Initial Testing Was Not Successful
Initial reading trying to inhale/exhale into the 3” tube was poor. Only medium to large breaths would trigger outputs to the ADC.
- 12 bit ADC => 4096 - Only big breaths trigger…
- read ~200-350 ADC with large breadth
Modified Tube Within a Tube
Modified the tube diameter to 1.75” using a paper towel roll
- Big breaths adc peak 900, 0.725volts
- Medium breaths peak at ~600
- Smallest breath I can take ~400 …..
- Giant forceful breaths.. I get dizzy after a few… gets up to ~3000 (2.4volts)
I calibrated the sensor using an estimated 430mL for a medium breath. Integrating under the curve for each breath gives an estimated volume.
Notes:
- Exhales are noisy because sensor is not made to work in both directions
- The inhales are actually the opposite direction as the arrow on the sensor body. I tried it both ways and at the flow rates we’re trying to measure, there is more sensitivity in the opposite direction of the intended airflow..
- Reducing the tube diameter even farther (from 1.75” to ~1”) will increase sensitivity with likely no downsides.
- There is time omitted between the inhales and the exhales on the above graph (the ADC was only triggering above a threshold)
- 300-400mL is actually very little volume! That’s the same amount of space as a 1” tube x 38” long. So the air passing through the sensor will likely not get to the patient’s lung until the 2nd breath depending on sensor location.
- Using a 1” diameter tube and normal inhale of 500mL gives an average air velocity of 0.328 m/s
- 500 ml / (1.27 cm ^2 * pi) /3 sec/ 100.
Summary of Results
- Using this sensor or something similar and reducing the diameter of the tube to meet the required sensitivity seems promising.
- Need an airflow sensor to calibrate an airflow sensor. Calibration will need to happen over low, medium, and high air volumes and possibly for each individual sensor produced.
- I’m guessing the accuracy will depend on the sensor selection, tube diameter and placement in the tube. Once calibrated, this current test jig (with the large 1.75” diameter body) is probably +/- 40mL.
- If the diameter of the tube remains 1” or greater, the flow rates will remain low, and I’m guessing inlet and exit conditions ( greater than 2”) to the sensor are going to be negligible
- Here is a US manufacturer of a similar sensor in PCB mount package Degree Controls, inc
Sensor Data
- Purchased locally here for $57, Blue Streak #MF21041N
- Sensor type: hot wire anemometer (guessing here) -
- This MAF sensor is also found under these part numbers OK5771321 8ET009142441 AMMA-751 AMMA751 0891067
- Also on aliexpress for ~$22 [https://www.aliexpress.com/i/33021814341.html]
Pinout
Some models have the pin numbers printed on the body
- Pin 1 Ground
- Pin 2 Signal
- Pin 3 Power 7.5-12 volts, 76ma
Final Test Setup
The setup was pretty easy. Pin 1 (Ground) and Pin 2 (sensor) are connected to a micro-controller.
The Arduino sketch just reads and prints the Analog 0 pin over serial.