اطلاعیه

Collapse
No announcement yet.

راه اندازی dht22 سنسور رطوبت

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : راه اندازی dht22 سنسور رطوبت

    نوشته اصلی توسط ahmad6870
    :sad: :cry:
    ببخشید دیر جواب می دم دیگه آخرای ترمه با هزار بدبختی
    کدت رو بزار آخه این طوری که نمیشه من چی بگم بهت
    برد جوجه کشی:
    مطالعه پست 1 (حتما مطالعه کنید)


    مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

    دانلود

    توجه:
    این برد نیمه صنعتی و خانگی هست...
    برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

    آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

    دیدگاه


      #17
      پاسخ : راه اندازی dht22 سنسور رطوبت

      نوشته اصلی توسط mohammad...
      ببخشید دیر جواب می دم دیگه آخرای ترمه با هزار بدبختی
      کدت رو بزار آخه این طوری که نمیشه من چی بگم بهت
      ببخشید میدونم شمارم تو زحمت انداختم اما من برنامه رو واسه pic دارم اما کار نکرد :cry:

      دیدگاه


        #18
        پاسخ : راه اندازی dht22 سنسور رطوبت

        سلام کد زیر مربوط به dht22 شاید به کارت بیاد خودم تست نکردم
        کد:
        '######################## DHT-22 Humidity & Temperatur Sensor ##################
        ' DHT-22
        '
        ' |-----o-- Vcc
        ' |   |
        ' |   -
        ' |   10k
        ' |   -
        ' |   |
        ' |-----o-- Data ~~~ PC0 (µC)
        ' |
        ' |-------- NC
        ' |
        ' |-------- GND
        '
        ' Timings: Bit = 0 ~ 28 µs / Bit = 1 ~ 70 µs
        ' Min_time = 28 µs < TCNT0 Value (ticks) < 70 µs (in ticks)
        ' every time > Min_time >>> Bit = 1
        ' every time < Min_time >>> Bit = 0
        '
        ' Min_time ~ 20 (ticks) for 3.6864 MHz
        '
        ' ~ ticks for Bit = 0: 26 µs * $crystal (in MHz) / Prescale
        ' ~ ticks for Bit = 1: 70 µs * $crystal (in MHz) / Prescale
        '
        '######################## DHT-22 Humidity & Temperature Sensor##################
        
        
        $regfile = "m168def.dat"
        $crystal = 16000000
        $baud = 115200
        
        $hwstack = 64
        $swstack = 64
        $framesize = 64
        
        '#####################################
        
        Config Pind.4 = Input
        Config Timer0 = Timer , Prescale = 8
        
        '#####################################
        
        Const Min_time = 95                     'Wert je nach Quarzfrequenz anpassen (siehe ticks)
        
        Dim Count As Byte
        Dim Signaltime(43) As Byte
        Dim Humidityw As Word
        Dim Temperaturew As Word
        Dim Humsens_chksum As Byte
        
        Dim Humiditys As String * 16
        Dim Temperatures As String * 16
        
        
        Dim Strstring As String * 14
        Dim Ib As Byte
        
        
        '-------------------------------------------------------------------------------
        'Definieren der LCD-Pins inkl. SPI
        '
        Config Portc.2 = Output
        Lcdndc Alias Portc.2
        
        Config Portc.1 = Output
        Lcdnce Alias Portc.1
        
        Config Portc.0 = Output
        Lcdnre Alias Portc.0
        
        Config Portc.5 = Output
        Lcdnbl Alias Portc.5
        
        'Konfiguriern SPI in Soft-Mode
        Config Spi = Soft , Dout = Portc.3 , Ss = None , Clock = Portc.4
        'Initialise Spi
        Spiinit
        '-------------------------------------------------------------------------------
        
        
        '###############################################################################
        
        Declare Sub Read_timings
        Declare Sub Humtemp_values
        Declare Function Compare_chksum(byval Hsens_humidity As Word , Byval Hsens_temperature As Word , Byval Hsens_chksum As Byte) As Byte
        
        
        '###############################################################################
        ' Haupt-Programm
        
        $include "lcdn_init.inc"
        
        'Initialisiern des Nokia-LCD's
        Lcdn_reset
        Lcdn_init
        Lcdn_clear
        
        'Startsequez: Backlight blinkt 3x
        
        'For Ib = 1 To 3
        '  Toggle Lcdnbl
        '  Waitms 500
        'Next Ib
        
          Set Lcdnbl
        
          Lcdn_position 0 , 0
          Lcdn_print "Test DHT22 mit"
        
          Lcdn_position 0 , 1
          Lcdn_print "ATmega168"
        
        
        Do
         Call Humtemp_values
        
         If Compare_chksum(humidityw , Temperaturew , Humsens_chksum) = 1 Then
        
          Humiditys = Str(humidityw)
          Temperatures = Str(temperaturew)
        
          Strstring = "Humi: " + Format(humiditys , "0.0")
          'Strstring = Humiditys
          Lcdn_position 0 , 3
          Lcdn_print Strstring
        
          Strstring = "Temp: " + Format(temperatures , "0.0")
          'Strstring = Temperatures
          Lcdn_position 0 , 4
          Lcdn_print Strstring
        
         Else
        
         Strstring = "DHT Read-Error"
          Lcdn_position 0 , 5
          Lcdn_print Strstring
         End If
         Wait 3
        Loop
        
        End
        
        '###############################################################################
        ' Read timings
        ' measure time (in ticks) for signal = high (Start / Stop TIMER0)
        ' 1st two measurements do not contain sensor values
        
        Sub Read_timings
        
          Count = 1
        
          Config Pind.4 = Output : Portd.4 = 0           ' request data
          Waitms 20                        ' wait 20 ms
          Config Pind.4 = Input                  ' wait for data, receive data
        
          While Count < 43                     'collect 42 timings / signals
        
           Bitwait Pind.4 , Set                 'signal goes high > start timer
           Start Timer0
           Bitwait Pind.4 , Reset                'signal goes low > stop timer
           Stop Timer0
           Signaltime(count) = Tcnt0               'store number of ticks per signal in Signaltime byte
        
           Tcnt0 = 0
           Incr Count
        
         Wend
        
        
        End Sub
        
        '###############################################################################
        'Humidity and temperature values
        ' transform timings into bits (40 timings > 40 Bits)
        ' every time (in ticks) > Min_time >>> Bit = 1
        ' every time (in ticks) < Min_time >>> Bit = 0
        ' first word contains humidity
        ' second word contains temperature
        ' last byte contains checksum
        
        Sub Humtemp_values
        
          Local X As Byte
        
          Humidityw = 0
          Temperaturew = 0
          Humsens_chksum = 0
        
          Call Read_timings
        
          For Count = 3 To 42                   ' Erste zwei Bits überspringen
        
           Select Case Count
        
             Case 3 To 18
              X = 18 - Count
              If Signaltime(count) > Min_time Then Toggle Humidityw.x
        
             Case 19 To 34
              X = 34 - Count
              If Signaltime(count) > Min_time Then Toggle Temperaturew.x
        
             Case 34 To 42
              X = 42 - Count
              If Signaltime(count) > Min_time Then Toggle Humsens_chksum.x
        
           End Select
        
         Next
        
        End Sub
        
        '###############################################################################
        ' Calculate Checksum and compare with trasnmitted value
        
        
        Function Compare_chksum(byval Hsens_humidity As Word , Byval Hsens_temperature As Word , Byval Hsens_chksum As Byte) As Byte
        
          Local Chksum As Byte
        
          Chksum = Low(hsens_humidity ) + High(hsens_humidity )
          Chksum = Chksum + Low(hsens_temperature)
          Chksum = Chksum + High(hsens_temperature)
        
          If Chksum = Hsens_chksum Then
           Compare_chksum = 1
          Else
           Compare_chksum = 0
          End If
        
        End Function
        
        $include "lcdn_sub.inc"
        شکست میخورم اما تسلیم نمیشوم...

        www.raxxar.blogfa.com

        دیدگاه


          #19
          پاسخ : راه اندازی dht22 سنسور رطوبت

          با سلام خدمت همه ی دوستان من با سنسور dHT22 کار کردم تا رطوبت 100% هم به خوبی جواب میده، فقط نباید ازش انتظار سرعت بالا رو داشت، چون زمان میبره تا رطوبت روی سنسور تاثیر بذاره، برای کار کردن با اون هم با تایمر کار کنید. به این شکل که وروی سنسور را به یکی از وقفه ها بدهید و با کمک تایمر زمان هایی که وقفه به تابع خودش میرود را اندازه گیری کنید و در متغییری ثبت و بعد اطلاعات ان متغییر را تبدیل به صفر و یک کرده و در انتها از ان دما و رطوبت را استخراج کنید :agree: :agree: :bye

          دیدگاه


            #20
            پاسخ : راه اندازی dht22 سنسور رطوبت

            نوشته اصلی توسط ry.mohammad نمایش پست ها
            سلام
            خواهشا هر کی چیزی می دونه راهنمایی کنه
            ببینید دوستان همانطور که می دونید دیتاشیت dht11 و dht22 اگه بخونید می بینید که تو راه اندازی شون تفاوتی با هم ندارند یا اگرم داشته باشند من متوجه نشدم
            من مدار dht11 رو بستم و رطوبت رو خوندم خوب طبیعتا به جای این dht11 اگر dht22 وصل بشه باید اندازه گیری کنه
            ولی نمیکنه برنامشم کلی با هم فرق دارند از دوستان خواهش می کنم هرکی چیزی می دونه در اینجا مطرح کنه
            با تشکر
            سلام
            با اینکه خیلی وقته از زمان ارسال این پست گذشته اما جواب میدم شاید به درد کسی خورد،چون خودمم اولین بار تو جستجو به این تاپیک رسیدم
            برنامه نویسی dht11 با dht22 فرق داره که تو لینک زیر کامل توضیح دادم
            سلام تو این پست قصد دارم تا فقط در مورد نحوه راه اندازی سنسورهای رطوبت و دمای DHT11 و DHT22 صحبت کنم و از کتابخونه یا برنامه آماده خبری نیست:various_121::various_121: همین اول خدمتتون عرض کنم که خروجی دیتای DHT11 و DHT22 با هم فرق دارند،بنابراین نمیشه اونها رو به جای هم به کار برد.(البته سخت افزاری مشابه هستند) در این آموزش فرض

            اینم یه برنامه برای راه اندازی هر دو سنسور
            سلام در این پست میخوام نحوه راه اندازی DHT11 و DHT22 رو با استفاده از کتابخونه آموزش بدم. میکروکنترلر atmega16 و کامپایلر کدویژن می باشد. اولاً میتونید نحوه کار با این دو سنسور و تفاوت هاشون رو از لینک زیر ببینید: https://www.eca.ir/forums/thread78301.html دوماً کتابخونه رو من ننوشتم،بلکه از سایت github پیدا کردم،اما برای atmel
            [آموزشی] کنترل رله با پیامک توسط sim800l
            [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
            [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
            [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
            صفحه اینستاگرام : ecdco_ir

            دیدگاه

            لطفا صبر کنید...
            X