اطلاعیه

Collapse
No announcement yet.

[آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

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

    [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

    سلام
    در این پست میخوام نحوه راه اندازی DHT11 و DHT22 رو با استفاده از کتابخونه آموزش بدم.
    میکروکنترلر atmega16 و کامپایلر کدویژن می باشد.
    اولاً میتونید نحوه کار با این دو سنسور و تفاوت هاشون رو از لینک زیر ببینید:
    سلام تو این پست قصد دارم تا فقط در مورد نحوه راه اندازی سنسورهای رطوبت و دمای DHT11 و DHT22 صحبت کنم و از کتابخونه یا برنامه آماده خبری نیست:various_121::various_121: همین اول خدمتتون عرض کنم که خروجی دیتای DHT11 و DHT22 با هم فرق دارند،بنابراین نمیشه اونها رو به جای هم به کار برد.(البته سخت افزاری مشابه هستند) در این آموزش فرض

    دوماً کتابخونه رو من ننوشتم،بلکه از سایت github پیدا کردم،اما برای atmel studio نوشته شده بود که تبدیلش کردم به کدویژن.از لینک زیر میتونید کتابخونه اصلی رو ببینید.
    DHT11/DHT22 temperature and humidity sensor C library for AVR microcontrollers - efthymios-ks/AVR-DHT

    برای شروع یه پروژه تو کدویژن بسازید.بعد فایل های کتابخونه زیر رو تو مسیر پروژه کپی کنید.

    سپس تو تنظیمات که از طریق مسیر project -> configure هم قابل دسترسیه،فایل c سنسور رو add کنید.


    سپس تنظیمات printf رو مانند تصویر زیر تنظیم کنید،چون با متغیر float سر و کار داریم.


    و بعد هم تنظیمات lcd رو مطابق تصویر زیر انجام بدید:


    الان میریم سراغ کتابخونه هایی که تو فولدر برنامه کدویژن کپی کرده بودیم.از چهارتا فایل به دو تای DHT.c و IO_MACROS کاری نداریم.
    DHT.h رو با notepad باز میکنیم و میکروی مورد استفاده رو در صورت نیاز تغییر میدیم:


    و بعد تو همین هدر میتونید توابع مورد استفاده رو ببینید:


    و در آخر بررسی فایل های کتابخونه ای، DHT_CONFIG رو با notepad باز میکنیم و سنسور، پین و پورت رو انتخاب میکنیم:


    اینم شماتیک مدار:

    اینم کد برنامه:
    کد:
    #include <mega16.h>
    #include <alcd.h>
    #include <stdio.h>
    #include <delay.h>
    #include <DHT.h>
    
    float hum;
    float temp;
    char buffer[17];
    
    
    void main(void)
    {
    lcd_init(16);
    DHT_setup();
    while (1)
        {
        DHT_read(&temp,&hum);
        sprintf(buffer,"T=%0.1fC  H=%0.1f%%",temp,hum);
        lcd_clear();
        lcd_gotoxy(0,0);
        lcd_puts(buffer);
        delay_ms(200);
        }
    }


    اینم لینک برنامه و شبیه سازی:
    http://s9.picofile.com/file/8309261576/DHTxx.zip.html

    الّلهُمَّ صَلِّ عَلی مُحَمَّد وَآلِ مُحَمَّد وَعَجِّل فَرَجَهُم
    جدیدترین ویرایش توسط سید رضا باباتبار; ۲۲:۵۵ ۱۳۹۶/۰۷/۲۴.
    [آموزشی] کنترل رله با پیامک توسط sim800l
    [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
    [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
    [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
    صفحه اینستاگرام : ecdco_ir


    #2
    پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

    سلام.بازهمه مثل همیشه عالی مهندس عزیز
    لازم بودنکته ای که تجربه ام بودبگم واونم اینکه این سنسورهانسبت به مدلهای بالاترشون دقتشون یه خورده پائینه مخصوصامدلdht11
    بهتره که خروجی دماورطوبت روکه گرفتیم ده بارنمونه برداری کنیم ومیانگیری دراصطلاح
    مثلاتست کردم دما30درجه بودبعدچندلحظه بعدکه کوتاه بودزد33
    من ده بارنمونه برداری کردم ودرجایی ذخیره کردم
    9بار30درجه زدو1بار33
    وقتی جمعشون کنی وتقسیم بر10خروجی به مقدار30که دمای حقیقی بوده نزدیکترمیشه واونپرش دماوخطای سنسورکه 33بوده بامیانگیری فیلترمیشه.
    رطوبت هم همینطور...
    درعجبم ازمردمی که به دنیایی مشتاقندکه ازآن دورمیشوندوگریزان ازآخرتیکه که روزبه روزبه آن نزدیک میشوند.

    دیدگاه


      #3
      پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

      نوشته اصلی توسط saeed garoosi نمایش پست ها
      سلام.بازهمه مثل همیشه عالی مهندس عزیز
      لازم بودنکته ای که تجربه ام بودبگم واونم اینکه این سنسورهانسبت به مدلهای بالاترشون دقتشون یه خورده پائینه مخصوصامدلdht11
      بهتره که خروجی دماورطوبت روکه گرفتیم ده بارنمونه برداری کنیم ومیانگیری دراصطلاح
      مثلاتست کردم دما30درجه بودبعدچندلحظه بعدکه کوتاه بودزد33
      من ده بارنمونه برداری کردم ودرجایی ذخیره کردم
      9بار30درجه زدو1بار33
      وقتی جمعشون کنی وتقسیم بر10خروجی به مقدار30که دمای حقیقی بوده نزدیکترمیشه واونپرش دماوخطای سنسورکه 33بوده بامیانگیری فیلترمیشه.
      رطوبت هم همینطور...
      سلام
      خیلی ممنون بابت نکته ی مفیدی که گفتی آقا سعید.بله اگر میانگین گیری بشه بهتره و دقیقتر.
      [آموزشی] کنترل رله با پیامک توسط sim800l
      [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
      [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
      [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
      صفحه اینستاگرام : ecdco_ir

      دیدگاه


        #4
        پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

        سلام خیلی ممنون از توضیحاتتون
        یک مشکلی وجود داره اینکه خیلی عدد ها رو بالا نشون می ده مثلا دما رو666.4 و رطوبت رو614.4 می زنه
        لطفا کمک کنید مشکل از کجاست


        دلیل: ادغام دو پست برای جلوگیری از اسپم

        اگر کسی می تونه کمک کنه لطفا کمک کنید چون این پروژه خیلی واسه من واجبه

        دیدگاه


          #5
          پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

          نوشته اصلی توسط mrf1405 نمایش پست ها
          سلام خیلی ممنون از توضیحاتتون
          یک مشکلی وجود داره اینکه خیلی عدد ها رو بالا نشون می ده مثلا دما رو666.4 و رطوبت رو614.4 می زنه
          لطفا کمک کنید مشکل از کجاست


          دلیل: ادغام دو پست برای جلوگیری از اسپم

          اگر کسی می تونه کمک کنه لطفا کمک کنید چون این پروژه خیلی واسه من واجبه
          سلام
          دوست عزیز این برنامه تست شده و مشکلی نداره.
          شما تک تک مطالب گفته شده رو باید انجام بدید.
          من احتمال میدم تو DHT_config سنسور رو dht11 انتخاب کردید اما از dht22 استفاده کردید و یا بالعکس.
          [آموزشی] کنترل رله با پیامک توسط sim800l
          [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
          [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
          [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
          صفحه اینستاگرام : ecdco_ir

          دیدگاه


            #6
            پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

            سلام
            ممنون از مطلب خوبتون
            میشه محبت کنید با نرم افزار بسکام هم اموزش بذارین؟؟؟
            خیلی گشتم چیز درست حسابی پیدا نکردم و کارم گیر کرده ...

            دیدگاه


              #7
              پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

              نوشته اصلی توسط javadshiry نمایش پست ها
              سلام
              ممنون از مطلب خوبتون
              میشه محبت کنید با نرم افزار بسکام هم اموزش بذارین؟؟؟
              خیلی گشتم چیز درست حسابی پیدا نکردم و کارم گیر کرده ...
              خدمت شما :

              دیدگاه


                #8
                پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

                ممنونمممم
                خیلی سریع و عالی بود
                برم تستش کنم

                دیدگاه


                  #9
                  پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

                  سلام
                  من این رو تست کردم
                  چند تا سوال دارم
                  - توی این کد ال سی دی کانفیگ نشده بود درسته؟ (خودم کانفیگ کردم)
                  - کدهای زیر رو لطفا بهم بگین چیه؟ینی چیکار میکنه دقیقا؟
                  اینجا داره میگه سنسور به پورت بی 2 وصل شده منم پایه دیتا سنسور به همون وصل کردم . اما خط های بعدش رو درک نمیکنم؟!!! پورت و پین سی 0 چی بهشون وصل شده؟ نقششون چیه دقیقا؟ من اینجا چیزی وصل نکردم برای همین چیزی هم نشون نمیده
                  'sensor connection Portb.2
                  Dht_put Alias Portc.0
                  Dht_get Alias Pinc.0
                  Dht_io_set Alias Ddrc.0

                  دیدگاه


                    #10
                    پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

                    نوشته اصلی توسط javadshiry نمایش پست ها
                    سلام
                    من این رو تست کردم
                    چند تا سوال دارم
                    - توی این کد ال سی دی کانفیگ نشده بود درسته؟ (خودم کانفیگ کردم)
                    - کدهای زیر رو لطفا بهم بگین چیه؟ینی چیکار میکنه دقیقا؟
                    اینجا داره میگه سنسور به پورت بی 2 وصل شده منم پایه دیتا سنسور به همون وصل کردم . اما خط های بعدش رو درک نمیکنم؟!!! پورت و پین سی 0 چی بهشون وصل شده؟ نقششون چیه دقیقا؟ من اینجا چیزی وصل نکردم برای همین چیزی هم نشون نمیده
                    'sensor connection Portb.2
                    Dht_put Alias Portc.0
                    Dht_get Alias Pinc.0
                    Dht_io_set Alias Ddrc.0
                    سطر اول کامنت هست!!!
                    سه سطر بعدی مربوط به کانفیگ پایه مورد نظر برای اتصال به سنسور هست.
                    من بعد از تغییر پایه مورد نظر یادم رفته بود در قسمت کامن هم اون رو عوض کنم.

                    دیدگاه


                      #11
                      پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

                      و یه مساله دیگه
                      برنامه وقتی رو مدار اجزا میشه رو ال سی اینو نشون میده :
                      0:1
                      چرا دما و رطوبت رو درست نشون نمیده؟

                      دیدگاه


                        #12
                        پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

                        نوشته اصلی توسط javadshiry نمایش پست ها
                        و یه مساله دیگه
                        برنامه وقتی رو مدار اجزا میشه رو ال سی اینو نشون میده :
                        0:1
                        چرا دما و رطوبت رو درست نشون نمیده؟
                        پایه دیتای سنسور رو به پایه Portc.0 وصل کنید

                        دیدگاه


                          #13
                          پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

                          این با مگا 8 نوشته شده مدار من با مگا 32 ست.
                          تو مگا 8 c.0 پورت adc هستش.
                          نباید دیتا به پایه rxd وصل بشه؟ تو بعضی از مدارا اینطوری نصب شده!
                          چون من پایه رو به adc مدار خودم دادم ولی بازم کار نمیکنه

                          دیدگاه


                            #14
                            پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

                            نوشته اصلی توسط javadshiry نمایش پست ها
                            این با مگا 8 نوشته شده مدار من با مگا 32 ست.
                            تو مگا 8 c.0 پورت adc هستش.
                            نباید دیتا به پایه rxd وصل بشه؟ تو بعضی از مدارا اینطوری نصب شده!
                            چون من پایه رو به adc مدار خودم دادم ولی بازم کار نمیکنه
                            با تغییر این قسمت از کد به هر پایه دلتون بخواد میتونید وصل کنید
                            این قسمت کد
                            Dht_put Alias Portc.0
                            Dht_get Alias Pinc.0
                            Dht_io_set Alias Ddrc.0



                            به فرض مثال مثال با کد زیر شما میتونید پایه دیتای سنسور رو به پایه PORTB.5 وصل کنید

                            Dht_put Alias Portb.5
                            Dht_get Alias Pinb.5
                            Dht_io_set Alias Ddrb.5

                            دیدگاه


                              #15
                              پاسخ : [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن

                              من اینکار رو کردم باز هم نتیجه روی ال سی دی همون 0:1 میزنه و فرقی نمیکنه

                              من شماتیک دیدم که به پایه rxd نصب کرده بود!
                              پایه دیتا یه چه پایه ای باید وصل بشه؟
                              و اینکه کانفیگ اینپوت بزنم برا ش یا نه؟

                              دیدگاه

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