Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. [SOLVED] MySensors and DHT22 - difficoulties in getting started

[SOLVED] MySensors and DHT22 - difficoulties in getting started

Scheduled Pinned Locked Moved Development
8 Posts 3 Posters 4.0k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    Neo Mod
    wrote on last edited by Neo Mod
    #1

    [SOLVED: Please look at the bottom post for explanation]

    Unfortunately I’m getting quite some trouble in having a DHT22 (AM2302) Sensor working with MySensors and NodeMCU.

    I have read each and every topic here in the forum, and I’ve downloaded the MySensors “External” library, but still I’m unable to obtain a reading.

    This (https://forum.mysensors.org/topic/4806/air-humidity-sensor/140) is the most comprehensive topic I could find, but I still can’t get a reading from DHT22 while using the last sketch reported there.

    I did try with the MySensors Arduino Examples and Library, but running that example I couldn’t even get an output, just “garbage” in serial monitor. (and yes, baud rate was right)
    I’ve read also this topic (https://forum.mysensors.org/topic/4672/dht-sketch-version-2-0-0-error-solved) but to no avail for me.
    I tried also this library (https://github.com/markruys/arduino-DHT/) but the serial output was always “Nan”.
    Also followed this topic (https://forum.mysensors.org/topic/6355/dht22-verify-issue) but serial monitor reported only “garbage”.
    And of course I followed the official example (https://www.mysensors.org/build/humidity) but to no avail: the compilation failed with warning “no matching function for call to 'DHT::DHT()'”
    Someone has experience with a working sketch for this DHT22 sensor?

    1 Reply Last reply
    0
    • R Offline
      R Offline
      r-nox
      wrote on last edited by
      #2

      Look here perhaps.

      https://forum.mysensors.org/topic/4326/can-t-compile-humidity-sketch-2-0-what-dht-library-do-i-need/18

      N 1 Reply Last reply
      1
      • N Offline
        N Offline
        Neo Mod
        wrote on last edited by
        #3

        After a lot of research, trial and error I managed to solve the issue; I’m going to share what I’ve learned, hoping that it might be useful for others.

        NOTE: * If you want the solution “ready to consume” just skip the explaining paragraph and go to the last one.*

        First of all, let me say that I have mixed feelings about this sensor: on paper it should be one of most basic and easy to use but in reality a quick search on the web shows a terrific amount of problems with this sensor.

        From what I could gather It is clear that this sensor (DHT22 – AM2023) IS NOT the best choice in terms of:

        • Usability
        • Accuracy
        • Compatibility

        I compared its readings against a BOSH BME280 and there is always a discrepancy of ~ 2°C and 5% RH.

        One could be tempted to move directly to BME280, and I would agree if not for a relatively big problem: this sensor works with I2C and so it is not usable if you plan on developing a Radio Node / Gateway with MySensors and NodeMCU.

        ( yes, I’m aware of the method to read multiple sensors on I2C by using a pair of Resistance approx. between 3K and 10K – depending on the sensor – but I wasn’t capable of getting the BME280 working with 2.4Ghz Radio on NodeMCU. Each time GW or NODE was trying to access Radio I had a soft reset.)

        Back to the DHT22: another huge problem, from my standpoint, is the incredible mess it has with libraries. Honestly, I could not describe it in another way: there are thousands of libraries “adapted” for the DHT22 and even more users complaining about their usability.

        Now MySensors should have its own Library for DHT22 (and I tried it!) except this library appears to have a problematic approach to NodeMCU ESP8266 and DHT22 Sensors made by “ASAIR”.

        ( And I believe this is something worth being clearly stated in the “Build” page of MySensors; a warning would have been nice for a novice like me, whom bought the “best” DHT22 sensors he could find in order to have a good measurement)

        Another very popular library is the Adafruit one, but it also got problems with ASAIR sensors; moreover it has been “stripped out” of error codes so the only error you might get is a quite meaningless “Can’t connect to DHT22”.

        NodeMCU, MySensors and ASAIR AM2032 DHT22

        So, here we are: how to make this “bloody thing” work with MySensors and ESP8266.

        First of all, you need this specific library: DHT v. 0.1.13 by Rob Tillaart.

        Not the previous, not the updated one: you need EXACTLY the VERSION 0.1.13.

        Secondly, you need to understand that NodeMCU board has a serious issue with PIN Numbering: they probably thought it was funny to rename all ESP8266 Pins differently on the board respect the GPIO ordering.

        (please bear with me for the joke, it took me almost 2 days to figure the issue with pins. Most certainly is because I'm a "n00b" but a little disclaimer would have been a blessing for my headache. :p )

        Keep in mind the following picture as reference:

        alt text

        If you have your DHT22 sensor connected to pin “D4” you have to initialize it in the Arduino IDE as “2” because D2 actually corresponds to GPIO2.

        If all this wasn’t enough, wait there is more!

        You have your sketch ready, your sensor wired (eventually with pull-up resistor and stability capacitor, depending on the version you bought. I was lazy and bought the sensor already attached on the micro-board with resistance and capacitor) and still getting “DHT22 Timeout” error in Serial Monitor.

        You don’t have a faulty sensor, do as follows:

        1. Connect the sensor to the board
        2. Load your sketch
        3. Open serial monitor, “DHT22 Timeout” will appear
        4. Disconnect just the sensor, keep the board powered and connected
        5. Reconnect the sensor in this precise order: Ground, VCC, Data
        6. Magically you will start having readings in the Serial Monitor.

        If you cut power to the Node/Gateway you have to repeat steps 4-5-6.

        Conclusions:

        I am happy to have a working sensor, but I’m frustrated about all the time I spent having a such simple sensor working correctly.

        I wish I had this information before, so I could plan a different development.

        I really hope that my experience could help other users.

        1 Reply Last reply
        1
        • R r-nox

          Look here perhaps.

          https://forum.mysensors.org/topic/4326/can-t-compile-humidity-sketch-2-0-what-dht-library-do-i-need/18

          N Offline
          N Offline
          Neo Mod
          wrote on last edited by
          #4

          @r-nox Thank you R-Nox! I finally figured it out, and I wrote my conclusions here. I hope it may be useful for other users. :)

          mfalkviddM 1 Reply Last reply
          1
          • N Neo Mod

            @r-nox Thank you R-Nox! I finally figured it out, and I wrote my conclusions here. I hope it may be useful for other users. :)

            mfalkviddM Offline
            mfalkviddM Offline
            mfalkvidd
            Mod
            wrote on last edited by
            #5

            Thanks for sharing your experience @neo-mod

            You might be the first one to try the dht sensor with esp8266 and MySensors. Most people use Nanos or Pro Minis for sensor nodes.

            Some comments:
            I am using BME280 with rfm69 without problems and I did not have to add any resistors. Not sure why it works for me or why it didn’t work for you.

            You should be able to use D4 (but not 4 without D in front) for the pin definition. That’s the style I use for my esp8266 nodes.

            In addition to the drawbacks you mention for the DHT sensor, it is also not battery friendly.

            1 Reply Last reply
            1
            • N Offline
              N Offline
              Neo Mod
              wrote on last edited by
              #6

              @mfalkvidd thank you so much for your insights.

              I'm using a NRF24L01+PA+LNA and with BME280 I had an overlapping pin ( I followed the "How to connect the radio" official page). I'll open a new thread asking for advice, quite clearly I'm missing something.

              I will try the PIN Definition you mentioned in the next node, thank you! That will be a huge benefit.

              mfalkviddM 1 Reply Last reply
              0
              • R Offline
                R Offline
                r-nox
                wrote on last edited by r-nox
                #7

                @neo-mod said in [SOLVED] MySensors and DHT22 - difficoulties in getting started:

                @r-nox Thank you R-Nox! I finally figured it out, and I wrote my conclusions here. I hope it may be useful for other users. :)

                I'm glad you got it working. I too had the hardest time finding the right library. That's why I responded. You're write up should help other in the future too. Thank you.

                1 Reply Last reply
                0
                • N Neo Mod

                  @mfalkvidd thank you so much for your insights.

                  I'm using a NRF24L01+PA+LNA and with BME280 I had an overlapping pin ( I followed the "How to connect the radio" official page). I'll open a new thread asking for advice, quite clearly I'm missing something.

                  I will try the PIN Definition you mentioned in the next node, thank you! That will be a huge benefit.

                  mfalkviddM Offline
                  mfalkviddM Offline
                  mfalkvidd
                  Mod
                  wrote on last edited by
                  #8

                  @neo-mod said in [SOLVED] MySensors and DHT22 - difficoulties in getting started:

                  I'm using a NRF24L01+PA+LNA and with BME280 I had an overlapping pin ( I followed the "How to connect the radio" official page). I'll open a new thread asking for advice, quite clearly I'm missing something.

                  I checked my code, and I'm using the BME280 in i2c mode. The i2c pins on Pro Mini are different from the SPI pins so there is no overlap.

                  On esp8266, D1 and D2 are used for i2c which means the CE pin must be moved using MY_RF24_CE_PIN but if you do that it should work.

                  1 Reply Last reply
                  2
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  11

                  Online

                  11.7k

                  Users

                  11.2k

                  Topics

                  113.1k

                  Posts


                  Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • MySensors
                  • OpenHardware.io
                  • Categories
                  • Recent
                  • Tags
                  • Popular