Hello.
You might be familiar with this issue for astronomers and astro-imagers that has to do with preventing dew settling on the scope lens. Many use eating straps that are designed to increase the temperature in the vicinity of the lens to prevent dew from forming. These straps can be power hungry, so a good way to deal with it is to turn them on only when necessary and power them to the amount needed.
Without an intelligent system one might start the heaters before they are needed, and may even turn them too high, wasting a lot of portable power. Devices are already in existence where DHT22 or similar devices are used along with boards like Arduino or ESP-32 to keep an eye on humidity and temperature, and power up the heaters only when needed and to the power level that is needed as well.
I am working on something like that myself. I think DroneBot had a video on the ESP32 and DHT22 for the purpose of measuring the humidity and temperature, and of course the rest of the design needs to be added on. I can't find that video anywhere although other videos are available on YouTube. Has anyone here run across a DroneBot video on the ESP-32 + DHT22? Or maybe it was Arduino + DHT22!
Thanks
Hi @fazad_k,
Bill's video at
starting at about 32 minutes in, uses an Arduino and DHT22 to drive an OLED display of temperature and humidity.
And
uses Arduino and DHT22 to display temperature.
NB, this forum has search box on top right. I found the second reference just by putting 'DHT22' in the box.
Hopefully adding a little code to control the heater, depending on the readings, should be straightforward.
@davee Thanks. I had actually tried the search box in the tutorials looking for the video and DHT22 did not return much.
So, there isn't a video with the ESP-32 and DHT-22. I thought I had seen one; maybe it was another group.
Farzad
Anything seems possible when you don't know what you're talking about.
Have you seen this ?
https://skyandtelescope.org/astronomy-equipment/diy-dew-heater/
No I hadn't. I am not looking to build a heater; I am looking to automate heater controllers. The heaters I currently use are manufactured by Thousand Oaks, and I use their controller as well. The only thing is that I power it on and adjust the temperature manually - I want to automate that process.
Something like this: https://sourceforge.net/projects/myesp-boards/
Can you give us more information about the heater you want to automate and how, exactly, you want to set it. Having more details will eliminate a lot of guesswork on our part 🙂
Anything seems possible when you don't know what you're talking about.
Can you give us more information about the heater you want to automate and how, exactly, you want to set it. Having more details will eliminate a lot of guesswork on our part 🙂
The heater is nothing but a resistor. The idea is to have an Arduino or an ESP-32 to sense humidity and temperature and at the point just before dew drops from the air, Arduino will power the heater and provide a voltage to it just enough to raise the temperature to just above dew point.
I am at the initial steps. I want to setup the DHT22 with either an Arduino or an ESP-32 and have these boards read and report temperature and humidity. The next thing would be for me to program the board(s) such that at a pre-designated condition (value of humidity and temperature) the board does "something". That "something" could be blinking an LED or increasing voltage from an external 12-v supply to the hearer (resistor); basically acting like a potentiometer.
I have some ideas on how to do it, I was hoping to do it with the ESP-32 because it has WiFi, and I have another project around WiFi, but I might wind up using Arduino because it is more common.
I will have to draw up the schematics.
You should probably use a MOSFET to drive the heater so that you can vary the amount of power delivered.
Anything seems possible when you don't know what you're talking about.
You should probably use a MOSFET to drive the heater so that you can vary the amount of power delivered.
I believe you are correct; all the circuits that I have seen use MOSFET. Thanks.
You should probably use a MOSFET to drive the heater so that you can vary the amount of power delivered.
I actually looked at one of the videos which is about use of transistors and MOSFETs to control voltage. It was very interesting. The device o am building has a PWM dimmer that is directly connected to the 12v power on one end and to the load on the other end. Nothing fancy, and I turn the knob and the light that represents the load responds by getting brighter or dimmer.
What is the advantage of involving the Arduino and complicated wiring in a case like mine which is very similar in the objectives of what I saw in that video. I know there is an important reason for it, but can’t think of one.
why did he need all those electronics between the source and the load rather than just the simple analog potentiometer that was connected to the system any way? Could it be because they were LEDs? What if we had three separate analog loads to control, would all the electronics be needed?
Thanks for any input.
The advantage using a MOSFET with a PWM signal is that the MOSFET can be driven by a series of pulses instead of a fixed voltage. Suppose that you're using the MOSFET to drive your heater with 12V. With a simple switch or relay, you'd be turning on all 12V to the heater for the whole time the play was triggered.
A PWM (pulse width modulation) allows you to break that constant voltage up into a series of 12V pulses for varying lengths of time (depending on the PWM frequency and duty cycle). That allows you to still drive the MOSFET at 5V pulses from the Arduino (and you need to use the full voltage to minimize the MOSFET losses) but with almost total control of the actual amount of power delivered to the heater.
The reason is that the on/off pulse to the MOSFET results in the MOSFET turning on and off quickly and delivering power that is proportional to the average voltage (that is, the ratio of time the MOSFET is on and off).
For instance, if the duty cycle is 10% high and 90% low, then the MOSFET effectively delivers 12V for 10 % of the time and 0V for 90% of the time. The result is that the heater receives 12V only 10% of the time but nothing for the other 90%. So the battery is only delivering the same amount of power as if the load was drawing only 1.2V over the same time.
By adjusting the duty cycle, you can continuously vary the effective power delivered to the heater while using constant voltage source and still be operating the MOSFET in its most efficient state.
Using a potentiometer would result in the full 12V being applied and the power that was not used in the heater would be burned up in the resistance of the pot. Because the PWM signal drives the MOSFET in its most efficient state, it only uses power when it's on (mostly :), so it can greatly lengthen the life of the battery.
Anything seems possible when you don't know what you're talking about.
The advantage using a MOSFET with a PWM signal is that the MOSFET can be driven by a series of pulses instead of a fixed voltage. Suppose that you're using the MOSFET to drive your heater with 12V. With a simple switch or relay, you'd be turning on all 12V to the heater for the whole time the play was triggered.
A PWM (pulse width modulation) allows you to break that constant voltage up into a series of 12V pulses for varying lengths of time (depending on the PWM frequency and duty cycle). That allows you to still drive the MOSFET at 5V pulses from the Arduino (and you need to use the full voltage to minimize the MOSFET losses) but with almost total control of the actual amount of power delivered to the heater.
The reason is that the on/off pulse to the MOSFET results in the MOSFET turning on and off quickly and delivering power that is proportional to the average voltage (that is, the ratio of time the MOSFET is on and off).
For instance, if the duty cycle is 10% high and 90% low, then the MOSFET effectively delivers 12V for 10 % of the time and 0V for 90% of the time. The result is that the heater receives 12V only 10% of the time but nothing for the other 90%. So the battery is only delivering the same amount of power as if the load was drawing only 1.2V over the same time.
By adjusting the duty cycle, you can continuously vary the effective power delivered to the heater while using constant voltage source and still be operating the MOSFET in its most efficient state.
Using a potentiometer would result in the full 12V being applied and the power that was not used in the heater would be burned up in the resistance of the pot. Because the PWM signal drives the MOSFET in its most efficient state, it only uses power when it's on (mostly :), so it can greatly lengthen the life of the battery.
Thanks for the information.
I did not know that a potentiometer would spend all the balance of what it sends to the load minus what it receives and wastes it; more of a good reason to use PWM. So the combination of the Arduino and the MOSFET is to convert analog signal from a potentiometer into a PWM signal?
In the attached image you see that I am representing the two loads using two LEDs that are each controlled by their own PWM dimmer switch. The system is connected to a single power source. I turn the dimmer to the right and the light gets brighter, turn it to the left and light gets dimmer.
A MOSFET (and an Arduino) would not be needed in case of the circuit that I am working on, would it?
Farzad
For lighting and dimming the LEDs in the circuit shown, then neither an Arduino nor a MOSFET is required.
Potentiometers are sometimes used to set thresholds at which MOSFETs start or stop.
In your desired situation, you might, for example assign values at which you want to start applying power to the heater.
So, for instance, if the temperature drops below 3 degrees Celsius and humidity is at or above 80%, you might send 20% power to the MOSFET to start warming up the heater.
If the temp decreases or if the humidity stays the same or decreases, you'd leave the power at 20%, wait 20 seconds and then test again.
If the temperature continued to drop and/or humidity rises, then you might increase power by 105 every 10 seconds until the values retreat back towards the safe zone and you can reduce power.
So the other advantage of the PWM and MOSFET is that it doesn't require fingers to adjust the power. It just takes some programming to define what conditions will trigger what adjustments to the power sent to the heater.
You'll need to decide what power requirements are applicable for the current temp and humidity readings as well as how they're changing. Normally, you'd start off with a low power and add more until it achieves the desired result. Then, after the process reverts to a safe area, you can cut power and save the battery.
Or, if you're very clever, you can keep adjusting the power to keep temp and/or humidity in a certain (safe) zone by dropping power or increasing power to "shuffle" the readings into a comfortable zone. In other words, managing the changing conditions instead of just reacting to them.
Anything seems possible when you don't know what you're talking about.
For lighting and dimming the LEDs in the circuit shown, then neither an Arduino nor a MOSFET is required.
Potentiometers are sometimes used to set thresholds at which MOSFETs start or stop.
In your desired situation, you might, for example assign values at which you want to start applying power to the heater.
So, for instance, if the temperature drops below 3 degrees Celsius and humidity is at or above 80%, you might send 20% power to the MOSFET to start warming up the heater.
If the temp decreases or if the humidity stays the same or decreases, you'd leave the power at 20%, wait 20 seconds and then test again.
If the temperature continued to drop and/or humidity rises, then you might increase power by 105 every 10 seconds until the values retreat back towards the safe zone and you can reduce power.
So the other advantage of the PWM and MOSFET is that it doesn't require fingers to adjust the power. It just takes some programming to define what conditions will trigger what adjustments to the power sent to the heater.
You'll need to decide what power requirements are applicable for the current temp and humidity readings as well as how they're changing. Normally, you'd start off with a low power and add more until it achieves the desired result. Then, after the process reverts to a safe area, you can cut power and save the battery.
Or, if you're very clever, you can keep adjusting the power to keep temp and/or humidity in a certain (safe) zone by dropping power or increasing power to "shuffle" the readings into a comfortable zone. In other words, managing the changing conditions instead of just reacting to them.
Of course, my problem is that I am not very clever 🙂
You have good ideas here. I know one thing is for sure: I need a controller to communicate with the sensor and then take some action. With a controller that can convert analog to PWM I can just use inexpensive potentiometers and have the controller not only analyze the data it gets from the sensor, but also convert the analog input from the potentiometer into digital. In addition, the least the the controller can do is to blink an LED, warning me that dew point is approaching.
This "So, for instance, if the temperature drops below 3 degrees Celsius and humidity is at or above 80%, you might send 20% power to the MOSFET to start warming up the heater." is exactly the approach that I want to use to get the potentiometer out of the picture and let the controller control things. We start with zero volts (MOSFET open) going to the load and continue listening to the sensor. Once the conditions get close to dew point then we close the MOSFET and let the power flow to the load. But then how do we control the passing voltage through the MOSFET, is what I need to find out. I learned last night that MOSFETs are actually switches that can be turned on and off. I think the AD5171 (or X9C103) can be used as a digital potentiometer between the control board and the MOSFET. Here is a sample project.
I need more research.
Thanks for the pointers.
Farzad
I'm not sure why you think you still need potentiometer ?
I'm not familiar with the ESP32 since my projects have never needed WIFI so far. But the Arduino is capable of sending PWM directly from several pins. I'll assume that the ESP does as well.
So, you'd need the microcontroller of your choice, the DHT22, a suitable MOSFET, a couple of resistors (one about 10-47 ohms as an inrush limiting protection for the MOSFET and one (10K) to ground the gate to ensure that it shuts off cleanly).
You'll probably also want a 1602LCD or some similar display for development so you can monitor the temp/hum and maybe a coupe of red LEDs on the final version to tell you when the temp and/or humidity enter the "danger zone". Red so they won't interfere with your night vision.
You'd connect the 12V battery to the MOSFET and one of the heater leads to the MOSFET. You could also add a DC-DC converter to supply 5V to the Arduino as well. Once turned on, this would automatically manage your heater.
Anything seems possible when you don't know what you're talking about.