Jump to content

Banner.jpg.b83b14cd4142fe10848741bb2a14c66b.jpg

DIY Dew Heater Controller On Steroids


kbrown

Recommended Posts

This is actually a project I started back in 2015 but it's been hibernating on the shelf for a number of years (i.e. way too long). Up until now I've been just running my dew heaters full on without any controllers whatsoever. This has not caused me any trouble until recently. I changed the secondary mirror on my Newtonian to a bigger one and also the way it was mounted and heated. It turned out that heating the secondary this way full blast is not a good idea as it would warp the mirror ever so slightly to cause astigmatism.

Anyway, here I am trying to complete a project that is way overdue... My idea is to measure the ambient temperature and relative humidity with a DHT22 sensor and calculate a dew point from that with an Arduino which would then in turn control a number of dew heaters (max 4) while measuring their temperatures. The idea is that with empirical experiments I could come up with reliable offsets to keep the optics a couple of degrees above the dew point to prevent fogging. How successful this is going to be; I have no idea...

 As a bonus the device will also measure the atmospheric pressure.

Some photos of where I am at the moment:

 

Here's a KiCad 3D preview of the board(s) I designed

SpaceStation6083_jlc.thumb.jpg.8043c59951af6cb3cec53a05f6408d1e.jpg

 

Decided to have the PCBs made by JLCPCB for me. The minimum order with them is 5 pieces so if this turns out to be a successful project, I'll have four extra PCB sets available. PM me if you're interested...

IMG_20220215_132601.thumb.jpg.54e69b4c041908ffa2b9bb93d6c4b72b.jpg

 

Here's the real deal soldered. Not too far from the 3D preview :)

IMG_20220215_231659.thumb.jpg.c6ca4582541e9f08596eeae813709299.jpg

 

All wired up ready for testing and further development. I intend to make this into an INDI device as well so I can log the measurement data...

IMG_20220215_233927.thumb.jpg.f5e1bc9658c6b23567950b5251d07bf7.jpg

  • Like 2
Link to comment
Share on other sites

It's finally assembled. Hope I don't ever have to take it apart again. Took me a while to get everything fitted in there and connected. Still need to write the proper firmware for it but I've already verified all the inputs and outputs work and I can read the sensors.

IMG_20220219_172008.thumb.jpg.d9eaf7ccfe4dd8084002232dc65a04cf.jpg

 

At this end from left to right: Ambient temperature and humidity sensor, Reset button, USB connection, Power switch, Power out and in, Fuse.

IMG_20220219_172157.thumb.jpg.0962db31473298a7e67183c23c8c6491.jpg

 

At this end there's the heater outputs, temperature sensor inputs and indicator LEDs for the heaters.

IMG_20220219_172306.thumb.jpg.a9087f2a56644c7586109587b164df97.jpg

  • Like 5
Link to comment
Share on other sites

I managed to get it to calculate an approximate elevation based on the absolute atmospheric pressure reading I get from the BMP280 sensor. However it relies on the knowledge of the current sea-level pressure. It seems to be fairly inaccurate if I just use the average sea-level pressure of 1013.25 mbar as stated on this wikipedia page. Yesterday it was saying I'm at 150m and today it's saying I'm at about 90m. https://whataltitude.com/ says I should be at about 28m (30m resolution) so the whole altitude measurement seems to be pretty inaccurate in principle (correct me if I'm wrong).

Not that it really matters in my application (I won't be using the elevation information for anything other than displaying it) but it would be nice (=geeky) to get this working a bit better. So my current thinking is that I send the current sea-level pressure to the device from the INDI driver which would get this information online. Here lies my question: where can I obtain this information from? I know it is broadcast somewhere as aircraft pilots use it. Has anyone got any insights on this?

Edited by kbrown
Link to comment
Share on other sites

In my limited flying experience, atmospheric pressure for altimeter calibration has always been provided by a voice on the radio. Either an airfield ground controller or air traffice service.

Some large airports operate a continuous radio broadcast of basic airfield information to reduce controller workload. A tape loop in olden days.
Some places nowadays post actual and forecast conditions on the web.

You will appreciate that what is important is that everyone in an area is using the same calibration. Whether it is a mB or two off the actual doesn't matter.
When you first engage with the airfield, whether for departure or arrival, they will advise a 'QFE' which is atmospheric pressure at airfield elevation.
You set your altimeter for this value.

An example of use being most light aircraft fields operate a circuit 1000ft above ground. Whether it is 950ft or 1050ft is usually irrelevant.
What does matter is that aircraft around are easily in your view, not above or below and therefore out of your sight line.

A similar system is in operation away from airfields on 'altimeter setting regions' each covering a large chunk of the UK.

You can web search for a METAR (meteorological actual report) for an airport not too far from you.
This will include a recent airfield pressure and calculated sea level pressure.
These are available from the CAA or sometimes other operators. But it is up to you to extract the relevant bit of text.

In round figures to convert airfield pressure (QFE) to seal level pressure (QNH). You see a reduction on 1mB for every 30ft of altitude.

Actual pressure near sea level in the UK can vary from about 980mB to 1040mB. I have encountered conditions a little beyond these.

Have you checked the specification for your pressure measurement device?
Have you checked the specification of the analogue input to the micro?
Then waht about rounding errors in presenting raw data to screen?
I have seen a few people get caught out when they realise that real world performance is not what they thought it might be.

HTH, David.

 

  • Thanks 1
Link to comment
Share on other sites

18 hours ago, kbrown said:

Not that it really matters in my application (I won't be using the elevation information for anything other than displaying it) but it would be nice (=geeky) to get this working a bit better. So my current thinking is that I send the current sea-level pressure to the device from the INDI driver which would get this information online. Here lies my question: where can I obtain this information from? I know it is broadcast somewhere as aircraft pilots use it. Has anyone got any insights on this?

Why not just read the elevation data in the site management for the mount and pass it that way?

  • Like 1
Link to comment
Share on other sites

Thanks for the information and ideas guys. Think I'll drop the whole elevation calculation down in my priority list as it really isn't needed here.  I was just curious what I could get with the BMP280 sensor. TBH I don't even need the atmospheric pressure reading for anything else other than logging.

I have a new problem though that is relevant to this project. The DHT22 sensor I'm using seems to be another source of problems. Looks like it's self heating when powered on continuously. I get fairly accurate readings when I power the device on but after about 15 minutes it's already off quite a bit. Shame I didn't notice this before I had the PCBs done. Suppose the solution would be to only power the sensor on when reading it. I don't know what the power requirements for it are. I'm hoping I could power it directly from one of the Arduino digital output pins. That way I could just hot wire it without changing the PCB.

Link to comment
Share on other sites

11 minutes ago, BCN_Sean said:

Here's the datasheet for it https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf, according to that, it should have it's own low power state modes.

Yes I have seen that. But I have also read others observing the same sort of self heating problem. Maybe my DHT22 is bad/old/whatever, but it's definitely not reliable if powered on constantly. Here's a test I just ran:

image.png.5fc77ce202346f78c6986c272c4bbdba.png

I started taking readings just after powering on the device. I took subsequent readings about 15 min intervals. About half way through I turned off the device and only turned back on again momentarily to take another reading. The room temperature was stable throughout the test and I'm pretty sure the relative humidity didn't change this much either. From the graphs you can see a clear (sorf of logarithmic) rise and fall of the temperature readings and the relative humidity seems to follow this inversely.

I've just changed the electronics and the code so that I can just turn the sensor on for taking a reading then turn it off again. Seems to be running just fine powered from a digital output of the Arduino. I'll repeat the above test...

Link to comment
Share on other sites

I've seen similar behaviour with other temperature sensors before, one of them on the AF units I've built (can't remember the model number off the top of the head) and this may muddy the water a bit for you, but what I traced some of it down to was the 5v line being unstable; so whilst the motor was racking in and out, there was a voltage drop on the 5v which in turn messed around with the calibrated (startup) reference value so the sensor was thinking that the air temperature had changed because of that.

In the end I moved that one off an Arduino on to a Wemos D1 Mini as that's the only dev-board I could find that didn't jack around with regulators and current diodes between the USB Vin and the 5v rails.

Link to comment
Share on other sites

8 hours ago, BCN_Sean said:

I've seen similar behaviour with other temperature sensors before, one of them on the AF units I've built (can't remember the model number off the top of the head) and this may muddy the water a bit for you, but what I traced some of it down to was the 5v line being unstable; so whilst the motor was racking in and out, there was a voltage drop on the 5v which in turn messed around with the calibrated (startup) reference value so the sensor was thinking that the air temperature had changed because of that.

In the end I moved that one off an Arduino on to a Wemos D1 Mini as that's the only dev-board I could find that didn't jack around with regulators and current diodes between the USB Vin and the 5v rails.

Good to know. I intend to run this off 12V mainly. Of course the Arduino will turn on with just the USB connected but I monitor the 12V with one of the analog inputs and won't be doing anything crucial if the 12V is missing. With the 12V going into the Vin I should get pretty stable 5V off the regulator onboard the Arduino.

I repeated the above test with the changed electronics and code so that I only turn on the DHT22 for two seconds once every minute to take a reading. The results are much better. I ran it this way for two hours and got only about 0.2 degree variance on the temperature reading.

 

  • Like 1
Link to comment
Share on other sites

2 hours ago, kbrown said:

I repeated the above test with the changed electronics and code so that I only turn on the DHT22 for two seconds once every minute to take a reading. The results are much better. I ran it this way for two hours and got only about 0.2 degree variance on the temperature reading.

 

That's a big improvement; that reduction in shift is quite considerable.  It's just got me thinking about one of the things that the niece is doing on a school project and she was grumping at me about it not returning the expected readings when she last visited; looks like I'll have to put my crazy uncle hat on this weekend and have a look!

Link to comment
Share on other sites

  • 2 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. By using this site, you agree to our Terms of Use.