Ok, you can google around and find the basics of the concepts here.

Basically you pass enough current through a thermistor to heat it with about 70 milliwatts, less for a smaller one, just to raise it's temperature by 30 to 60 degrees above ambient.  No need to overdo things.


Then, you measure the ambient temperature.  Might as well use another thermistor although an AHT10 did cross my mind.  


Then, the faster the air flows past the heated (powered, I will call it) thermistor, the smaller the temperature differential between the unheated and the heated thermistor.


However it gets slightly complicated because the resistance of the thermistor changes with the temperature, and thus so does the current that flows through it, the voltage drop across it and thus the amount of heating power.


There are a number of other complications, like radiant heat from the heated thermistor raising the temperature of the unheated one.


Heating of the unheated one because you have to pass a bit of current through it can be mostly eliminated.


One more complicated issue is that the heated thermistor drops a *lot* in resistance when you heat it up, and so if you aren't careful you can overheat it.  But it also has to "fire up" from cold, that is warm up enough to reach a low enough resistance you can put enough power through it.


It took a bit of experimenting with various voltages and current limiting and sensing resistor values, but I think I got something stable, with reasonable safety margins against overheating or other failure modes (it's also possible it could "go out"  if it was quite cold in the area or with very high airflow velocity i.e. enter into a region of higher resistance and lower power from which it cannot escape until the ambient temperature goes up or the airflow rate goes down).

There are many ways you could further improve the device.  For instance, you could reduce the current limiting resistor value and then PWM the powered thermistor so you could "jump start" it if it goes out, or to start it quickly, or whatever, but at the same time pwm it down during normal operation to prevent overheating.  Maybe with a PID controller.


However I tried to keep it simple while meeting my modest needs.  I only need low airflow velocities and so on.  Someone who needs more will have to carry the torch further.  I would like to be able to get funded to do a thorough job to make a really good but cheap sensor but....  There is one published at https://moderndevice.com/en-ca/products/wind-sensor?pr_prod_strat=copurchase&pr_rec_id=8aedf869f&pr_rec_pid=7570784944370&pr_ref_pid=7570785042674&pr_seq=uniform  but you need that amplifier and they don't explain how it works at all so I don't have a lot of confidence in it anyway, and it seems like it's super expensive for some reason.

Seriously, I don't know why Adafruit can't make something in this line, they usually good stuff (although I don't like that they split the community with circuitpython when they could have just contributed to micropython and gotten the same result without splitting the community).  I mean no airflow sensor? seriously?  Who doesn't need to sense aiflow?

I tried to make sense of the physics to make a mathematical model of heat dissipation for a small object and then go backwards from that to determine the airflow.  I got the temperatures  of the thermistors and their power dissipation, that was easy.


However there are many complications like different regions of more or less turbulence, linearity of the ADC, accuracy of the resistors and the effect of heat on them., etc. 


 I was not able to sort things out in the end, and realized I would probably have to calibrate things anyway because it would probably end up pretty crude. 

 So I was planning to just use my little cheap vane anemometer right behind it, write a program and some manual recording of anemometer readings to collect data at a bunch of points and just use a least squares fitting calculator to give me a polynomial I could use to fit the data, to go backwards from thermistor delta T, and the heating power to the air velocity.  A function of A and B to Y.


Then I realized I don't really need to do that either and don't really have time, also the most important region for me can't be measured by my crummy vane anemometer anyway, and it's accuracy is kind of suspect. 


 All I actually need anyway is a device which is repeatable and gives output which is the same for velocity at both directions i.e. symmetrical.  I don't even need to know the actual velocity of the air quantitatively.  I just need to make sure it stays the same and is the same in both directions, and is the same between devices, or close enough.

So I will publish this and someone else can take it further some day, or maybe I will have a need to do so and will do that.

In the meantime I am planning to just take the ratio of the  power dissipated to delta T as an upward sloping function which goes up when air velocity (magnitude) increases.  I can just use that as a precise but wildly inaccurate flow sensor.

EDIT:

I have modified the device, I added 2 more 100 ohm resistors, so 5 total, on the powered thermistor, again with the lowest 100 being the sense resistance.  I also added 2 10 uf ceramic caps, one to the powered thermistor output and one to the unpowered, this reduces noise.  There still seems to be a lot of noise though which seems to be due to the noisy ADC in the pico.  It's also as clear as I thought that there should be more ADC pins on the pico, the arduino nano etc. clearly understands this.

I have searched digikey for a thermistor that is suitable for operation on 3.3 volts and found nothing with leads, however there are some surface mount ones that look promising.  However they are very small and practically impossible to experiment with.  There might be something that works on 5 volts and I might have a look for that another time.

What I do is fire up the desmos calculator:

then paste this equation in : \left(100*e^{(1/x-(1/298.15))/(1/2800)}/\left(20+100*e^{(1/x-(1/298.15))/(1/2800)}\right)*3.3*3.3/(20+100*e^{(1/x-(1/298.15))/(1/2800)})\right)=y
and also graph this one: \left(x-293.15\right)*0.0015=y

The first graphs the power dissipation of a thermistor with a voltage of 3.3 volts, an R0 of 100 and a beta of 2800, and a current limiting resistor (which also serves as a sense resistor) of 20 ohms.  So you can see the numbers in there and change things.  The 293.15 is 20 degrees celcius, the assumed ambient temperature.

simply look at where those two curves cross.  That's the point where the thermistor should operate.  It will heat up till it reaches that point and then stay around there. 70 degrees C is about right (368 kelvin).  The graph will be in kelvin and in watts so you have to zoom in etc.