I am planning to mount 3 AM2302 Temp/Humidity sensors inside my new roof, which is being built on top of the old flat roof. The flat roof will this become a standard roof but with a small angle so that rain water can flow off the roof.
The sensors will be put inside this construction, which is about 0.6 m in height at the center from the old flat roof.
So it is not accessible after the roof is finished.
I plan on putting an ESP8266 at a central location accessible via a hatch. But the sensors will be put in each end of the roof and one in the middle. The total length of the house is 20m so the wires to the sensor will be about 10m.
So what I want to know is if I can wire the AM2302 sensors using a 3-wire cable to the central location and hook up the sensors to the ESP-07 so it can read the data from them?
Also should I put the pull-up resistor close to the sensor or close to the ESP-07 unit?
Or will it not work with these wire lengths?
I want the ESP-07 to regularly measure temp/humidity values and transfer these to my server via WiFi.
The power for the ESP-07 will be provided at the central location behind the hatch.
Any suggestions, advice, howto links will be appreciated!
in condensing conditions, that sensor won't last long.
Use an additional NTC-type sensor for long term use.
Alternativ: possible to add a 1/2" tube to make it possible to replace a sensor at wanted spot?
Meanwhile I have found a datasheet where they say the lines can be up to 30m or even longer. So the wire length should not be a problem.
About the condensing conditions, this is what I will be looking for to safeguard the roof.
If it happens I need to increase ventilation.
I did not know about the problem for the sensor...
I have breadboarded one sensor with a 47K pull-up to +5V and sensor driven with 5V for testing.
But I do not see the expected 40-bit transfer after I briefly pull down the data line to ground.
Is there some requirement that the start pulse must be a certain length or with a certain rise/fall time?
Or happen within a certain time from power-up?
I am just now pulling down with a grounded wire which I touch the resistor with.
A digital scope is connected to the line and all I see is the pulse I make myself, no data from the sensor...
Did you attempt to reduce the value of the pull-up resistor ?
Well, in the ASONG AM2302 Product Manual (Page 4, table 4: AM2302 DC Charactersitics) I read that the pull-up resistor has a min and max value (30K-60K) at 5V Vdd.
So I have changed out the 10K I started with for a 47K unit.
But I think I need to hook up the sensor to an ESP-07 module and run a sketch with the DHT library since I have also seen that the timing of the start pulse is really important, both the length of the pulse and the interval between pulses.
Is the data sheet wrong regarding the pull-up R value?
In our school projects we got the sensor working without a pullup resistor. (I guess the internal pullup is activated by the library)
I just tested the sensor with different values for pullup.. Looks like the value isn't critical.
The pictures show that 'any R' is OK. I'd select one range 10k+/-
(The datasheet says 5k1 for lines<30m) pdf
I just hooked up the sensor to an ESP-07S, which I just received, and used the Arduino DHTtester sketch to verify that it is working. With the sensor in the breadboard and the Rpu=10K it works OK.
But the test sketch is a bit strange because it sends a start signal that is 20 ms in length and this is the maximum allowed by the data sheet...
I will see where it is defined and change to a shorter value.
So far no long cable attached at all...
Next on my agenda is to do the following:
- Add WiFi capabilities to the sketch (connect to my home network).
- Add some kind of timer that only makes a reading every hour or so.
- Find a way for the module to post the data to a my webserver where it can be saved with a timestamp.
I have seen some examples of posting data to servers but they were always someone else's server and there had to be an account etc. I want the data to be sent to my own webserver in a form that can be retrieved by a php script...
Cables have their own impedance.