در این آموزش قصد داریم یک دیتالاگر دما با استفاده از 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
– منبع تغذیه اصلی (باتری لیتیومی)
مدار و اتصالات دیتالاگر دما
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 با چنین اطلاعاتی روبرو خواهید شد که شامل ساعت، دما و تاریخ می باشند.
۲۰۲۰-۶-۹ ۵:۳۵:۵۳, ۱۵۶۹,۶۳,۱۰ ۲۰۲۰-۶-۹ ۵:۴۰:۵۳, ۱۶۵۶,۶۳,۱۰ ۲۰۲۰-۶-۹ ۵:۴۵:۵۳, ۱۶۹۰,۶۳,۱۰ ۲۰۲۰-۶-۹ ۵:۵۰:۵۳, ۱۷۴۰,۶۲,۱۰ ۲۰۲۰-۶-۹ ۵:۵۵:۵۳, ۱۷۸۰,۶۱,۱۱
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام
لطفا باز هم درمورد میکروپایتون مطلب بنویسید. واقعا کاربردی و مهمه
با سلام، بزودی آموزش های جدیدی در این مورد منتشرخواهد می شود.
سلام چرا دیگه نیست بخش بعدیش؟ یا من پیداش نمیکنم؟
با سلام، اپیزود های بعدی بزودی منتشر خواهد شد.
سلام باچه نرم افزاری کد نویسی می کنید با نرم افزار پایتون یا آردوینو
با سلام، هیچکدام برای کد نویسی نیازی به استفاده از IDE نیست تنها یک ادیتور ساده حتی در حد نوت پد برای ویرایش کد های موجود در حافظه برد. برای اطلاعات بیشتر این آموزش را مطالعه کنید.
سلام.
هر بار که برد روشن شد ، باید مجددا کد ها به برد ارسال شود؟ راهی هست که با روشن شدن برد برنامه شروع به کار کند؟
تشکر
با سلام، خیر نیازی به ارسال مجدد کد ها نیست با یک بار انجام فرآیند، کد ها در حافظه برد ذخیره می شوند.
سلام خیلی ممنون برای این مطلب برای ما که در این زمینه فعال هستیم بسیار مفید بود.
ما ترموگراف ویراترکر رو ساختیم که با ترموگراف های تستو، کیمو، الیتچ و … در حال رقابته.
با سلام
سپاس از همراهی شما
اگه بخوایم اطلاعات رو از طریق وای فای یا بلوتوث بهگوشی ارسال کنیم باید چیکار کنیم؟
با سلام، این امکان هست که در کنار pyboard از برد های وایفای مثل esp01 برای این مورد استفاده کنید.