PyBoard دسته‌بندی میکروپایتون Micropython پایتون Python

آموزش میکروپایتون ساخت “دیتالاگر دما با سنسور DHT11”

نوشته شده توسط CiferTech

در این آموزش قصد داریم یک دیتالاگر دما با استفاده از pyboard و برنامه نویسی میکروپایتون ایجاد کنیم به این صورت که با استفاده از یک ماژول DHT11 دمای محیط را اندازه گیری و مقادیر را بر روی micro sd که از قبل به pyboard خود متصل کرده ایم انتقال می دهیم. همچنین با اطلاعاتی همچون تاریخ، ساعت و دما. زبان میکروپایتون نسخه‌ای از زبان پایتون با سرعت پردازش بسیار بالا است که می‌توان از آن برای ارتباط با میکروکنترلرهایی مانند ESP8266 , ESP32 , Wipy , pyboard , MicroBit استفاده کرد.

میکروپایتون


برد آرم Pyboard


 برد Pyboard از برجسته‌ترین بردهای توسعه برای برنامه نویسی MicroPython تا به امروز است. همچنین برای این منظور از بردهای nodeMCU هم استفاده می‌شود. من در این سری از آموزش‌های مایکروپایتون از pyboard v1.1 استفاده خواهم کرد. در ادامه توضیحاتی درباره قابلیت‌ها و امکانات این برد خواهم داد. به شماتیک برد توجه کنید. برای مطالعه ادامه آموزش مقدماتی میکروپایتون ” کلیک کنید “

 


سنسور دما رطوبت DHT11


سنسور دما و رطوبت DHT11 سنسوری ارزان قیمت جهت اندازه گیری دما و  رطوبت هوا است. اندازه، مصرف کم انرژی آن را به یکی از بهترین گزینه‌ها جهت استفاده در پروژه‌های مختلف، تبدیل کرده است. با توجه به خروجی دیجیتال این سنسور، به راحتی می تواند به pyboard  و یا سایر میکروکنترلر ها متصل گردد.  سنسور DHT11 کالیبره شده و دارای خروجی دیجیتال است. محدوده اندازه گیری رطوبت بین ۲۰ تا ۹۰% RH و محدوده‌ی دما از ۰ تا ۵۰ درجه سانتی گراد می‌باشد. ولتاژ کاری ماژول DHT بین ۳٫۳ تا ۵ ولت DC است. فاصله انتقال سیگنال در ماژول DHT11 تا ۲۰ متر می‌باشد. ماژول دما و رطوبت DHT11 بسیار مقرون به صرفه، دارای کیفیت‌ عالی و واکنش سریع نسبت به تغییر دمای محیط است. ماژول DHT11 به ترتیب دارای ۳ پایه GND, VCC, Signal می‌باشد.


دیتالاگر چیست؟


ثبت کننده داده یا دیتالاگر وسیله‌ای الکترونیکی است که داده‌هایی را که به وسیلهٔ سنسور های موجود در دستگاه یا حسگر خارجی تامین می‌شوند را در طول زمان یا در رابطه با مکان ذخیره می‌کند. اکثر دیتالاگرها بر پایه یک پردازنده دیجیتال طراحی و ساخته می‌شوند. که در این آموزش با استفاده pyboard یک دیتالاگر دما مبتنی بر زمان خواهیم ساخت. در تصویر پایین نمونه هایی از دیتالاگر های صنعتی را مشاهده می کنید.

 

 


قطعات مورد نیاز


– برد pyboard v1.1

 سنسور دما DHT11

– باتری سکه ای

– منبع تغذیه اصلی (باتری لیتیومی)

 


مدار و اتصالات دیتالاگر دما


   pyboard            DHT11

 X12            Data

  Gnd           Gnd

 Vin           Vcc

________________________________

باتری سکه ای ===> GND و VBAT

________________________________

منبع تغذیه اصلی ===> GND و VIN

 


کد پروژه دیتالاگر


 

 

import pyb
import dht

dht.init(data_pin='X12',  the_dhttype='DHT11')
led = pyb.LED(3)
rtc = pyb.RTC()

led2 = pyb.LED(1)
led2.on()
pyb.delay(1000)
led2.off()

def measureDHT():
    time = pyb.millis()                            
    RH, T = dht.measure()
    led.on()
    log = open('/sd/dht.csv', 'a')
    dt = rtc.datetime()
    log.write('{0}-{1:02d}-{2:02d} {4:02d}:{5:02d}:{6:02d}'.format(*dt))
    log.write(', {},{},{}\n'.format(time, RH, T))
    log.close() 
    led.off()

rtc.wakeup(300000) 
while True:
    measureDHT()
    pyb.stop()

 


تحلیل کد دیتالاگر دما


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

import pyb
import dht

در ادامه با فراخوانی کتابخانه dht ابتدا پایه مد نظر برای اتصال و سپس نوع سنسور دما را مشخص می کنیم که در این آموزش در DHT11 استفاده شده است. همچنین با مشخص کردن LED و قرار یک تاخیر زمانی، به نوعی یک اعلان برای پروژه ایجاد می کنیم که در کاربرد آن را متوجه می شوید.

dht.init(data_pin='X12',  the_dhttype='DHT11')
led = pyb.LED(3)
rtc = pyb.RTC()

led2 = pyb.LED(1)
led2.on()
pyb.delay(1000)
led2.off()

در این بخش از کد محاسبات مربوط به زبان و دما صورت می گیرد به این صورت که دیتا لاگر هر پنج دقیقه یا هر ۳۰۰۰۰۰ میلی ثانیه یکبار، یک فایل در sd card ایجاد اطلاعات را که دارای زمان و دمای دقیق می باشد را در آن ثبت کرده، فایل را بسته و به حالت پاور مود خواهد رفت.

def measureDHT():
    time = pyb.millis()                            
    RH, T = dht.measure()
    led.on()
    log = open('/sd/dht.csv', 'a')
    dt = rtc.datetime()
    log.write('{0}-{1:02d}-{2:02d} {4:02d}:{5:02d}:{6:02d}'.format(*dt))
    log.write(', {},{},{}\n'.format(time, RH, T))
    log.close() 
    led.off()

rtc.wakeup(300000) 
while True:
    measureDHT()
    pyb.stop()

 


خروجی پروژه میکروپایتون


در انتها پس مشاهده فایل های ذخیره شده در sd card با چنین اطلاعاتی روبرو خواهید شد که شامل ساعت، دما و تاریخ می باشند.

۲۰۲۰-۶-۹ ۵:۳۵:۵۳, ۱۵۶۹,۶۳,۱۰
۲۰۲۰-۶-۹ ۵:۴۰:۵۳, ۱۶۵۶,۶۳,۱۰
۲۰۲۰-۶-۹ ۵:۴۵:۵۳, ۱۶۹۰,۶۳,۱۰
۲۰۲۰-۶-۹ ۵:۵۰:۵۳, ۱۷۴۰,۶۲,۱۰
۲۰۲۰-۶-۹ ۵:۵۵:۵۳, ۱۷۸۰,۶۱,۱۱

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

CiferTech

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۲ دیدگاه