در این آموزش قصد داریم یک دیتالاگر دما با استفاده از pyboard و برنامه نویسی میکروپایتون ایجاد کنیم به این صورت که با استفاده از یک ماژول DHT11 دمای محیط را اندازه گیری و مقادیر را بر روی micro sd که از قبل به pyboard خود متصل کرده ایم انتقال می دهیم. همچنین با اطلاعاتی همچون تاریخ، ساعت و دما. زبان میکروپایتون نسخهای از زبان پایتون با سرعت پردازش بسیار بالا است که میتوان از آن برای ارتباط با میکروکنترلرهایی مانند ESP8266 , ESP32 , Wipy , pyboard , MicroBit استفاده کرد. برای آموزش های بیشتر به CiferTech مراجعه کنید، همچنین برای حمایت از من حتما پیج من در اینستاگرام را دنبال کنید. ^-^
برد 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()
در این بخش از کد محاسبات مربوط به زبان و دما صورت می گیرد به این صورت که دیتا لاگر هر پنج دقیقه یا هر 300000 میلی ثانیه یکبار، یک فایل در 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 با چنین اطلاعاتی روبرو خواهید شد که شامل ساعت، دما و تاریخ می باشند.
2020-6-9 5:35:53, 1569,63,10
2020-6-9 5:40:53, 1656,63,10
2020-6-9 5:45:53, 1690,63,10
2020-6-9 5:50:53, 1740,62,10
2020-6-9 5:55:53, 1780,61,11
سلام واقعا خوب بود، اگه یکم بیشتر میشد هر خط دستورو توضیح بدید برای مای که مبتدیم خیلی بهتر میشد
حتما داخل آموزش های بعدی سعی میکنم بیشتر توضیح بدم.
After looking into a few of the articles on your website, I really appreciate your technique of writing a blog. Ester Benn Robertson
There may be noticeably a bundle to know about this. I assume you made sure good factors in options also. Christabella Ignacio Kirit
You made a few nice points there. I did a search on the topic and found the majority of folks will go along with with your blog. Felicdad Wes Kimberlee
You have brought up a very superb details , thankyou for the post. Quinta Douglas Banks
Thanks for sharing your thoughts. I truly appreciate your efforts and I am waiting for your further write ups thanks once again. Danice Pate Urana
Appreciate you sharing, great post. Really thank you! Awesome. Julia Aylmar Ludovick
Excellent pieces. Keep posting such kind of info on your page. Esmaria Van Atalanta
I like and follow your site, thanks