آردوینو آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو

طراحی و پیاده سازی دیتالاگر پرتابل با تغذیه باتری لیتیمی

نوشته شده توسط معین صابری

دستگاه های دیتالاگر یکی از مهم ترین ابزارها در صنعت و پروژه های مختلف به شمار می روند. به کمک این دستگاه ها  می توان مقادیر مختلف نظیر دما، رطوبت، شدت نور و…. را در حافظه ها ذخیره نمود.  برای ذخیره سازی داده ها می توان از کارت های حافظه SD بهره برد. از آنجاییکه این کارت ها در سیستم عامل های مختلف نظیر ویندوز مورد پشتیبانی هستند، بنابراین می توان داده ها را به سادگی در کامپیوتر، نمایش داد. از طرف دیگر، از آنجاییکه امکان ذخیره سازی داده ها توسط آردوینو به فرمت فایل اکسل وجود دارد، بنابراین به سادگی می توان داده های مورد نظر را به صورت نمودارهای مختلف، ترسیم کرده و مورد ارزیابی و تحلیل قرار داد. در این آموزش، به کمک برد آردوینو UNO و باتری لیتیمی، به طراحی و پیاده سازی یک دستگاه دیتالاگر پرتابل می پردازیم. در این پروژه، دما و رطوبت از طریق سنسور DHT11 اندازه گیری می شود. سپس به کمک ماژول کارت SD، داده ها را در حافظه SD ذخیره می کنیم. پیشتر در رابطه با تغذیه سیستم های مختلف به کمک باتری لیتیمی، آموزشی در دیجی اسپارک منتشر شده است. این آموزش را با کلیک بر روی این لینک، می توانید دنبال کنید. در این پروژه نیز، برد اردوینو و سایر تجهیزات را از طریق باتری لیتیمی تغذیه می کنیم. بدین ترتیب، به کمک این آموزش می توانیم یک دستگاه دیتالاگر با قابلیت حمل(پرتابل)، بسازیم. در ادامه این آموزش، با مرجع تخصصی رزبری پای و آردوینو به زبان فارسی، دیجی اسپارک، همراه باشید.

 


تعریف دیتالاگر و کاربرد


دیتالاگرها، ابزاری جهت ذخیره سازی داده به شما می روند. به کمک دیتالاگرها می توانید پارامترهای فیزیکی نظیر دما، رطوبت، فشار و …. را اندازه گرفته و ذخیره سازی نمایید. به منظور ذخیره سازی داده، غالبا از کارت های حافظه SD استفاده می شود. این کارت در تلفن های همراه و رایانه ها قابل استفاده هستند. پس از ذخیره داده ها، می توان به  تحلیل  آن ها از طریق ترسیم نمودارهای مختلف، پرداخت.

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

 


برد آردوینو UNO


سیستم دیتالاگر جهت دریافت داده های سنسور، پردازش و ذخیره آن، نیاز به یک برد کنترلی/پردازشی دارد. برد آردوینو UNO، یک برد فوق العاده کاربردی در نمونه سازی اولیه و حتی محصول نهایی است. به کمک این برد به سادگی می توانید سنسورها، نمایشگرها و ماژول های مختلفی را به آن متصل کنید. این برد راه اندازی و کار با میکروکنترلر را بسیار ساده می کند. کافیست به کمک یک کابل آن را به رایانه متصل کنید. سپس به سادگی و بدون نیاز به هیچ پروگرامر جانبی، می توانید برنامه را بر روی آن منتقل کنید.

 

بر روی برد آردوینو UNO تمام ملزومات لازم جهت راه اندازی برد تعبیه شده است. از جمله این ملزومات می توان به کریستال و خازن های کاهش نوسان ولتاژ اشاره نمود. همچنین بر روی این برد یک رگولاتور ۳٫۳ ولت جهت تغذیه ماژول های مختلف قرار گرفته است. به طور کلی استفاده از برد آردوینو در پروژه ها، سبب تسریع و تسهیل روند توسعه خواهد شد.


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


سنسور دما و رطوبت DHT11، یک سنسور بسیار کاربردی جهت سنجش میزان دما و رطوبت است. به کمک این سنسور و به سادگی تمام، می توانید میزان دما و رطوبت محیط را با آردوینو بسنجید و نمایش دهید. این سنسور تنها از یک پایه جهت ارسال داده ها استفاده می کند. جهت راه اندازی و کار با این سنسور، کتابخانه تحت آردوینو توسعه یافته که روند توسعه پروژه را بسیار تسریع خواهد بخشید. در این پروژه، به کمک سنسور DHT11، دما و رطوبت محیط را اندازه گرفته و در حافظه کارت SD، به صورت یک فایل اکسل، ذخیره خواهیم نمود.

 


ماژول کارت SD


ماژول کارت SD، یک ابزار فوق العاده کاربردی جهت راه اندازی و کار با کارت های حافظه SD است. به کمک این ماژول می توانیم کارت حافظه را به برد آردوینو متصل کنیم.  به لطف توسعه کتابخانه جامع و کاربردی، قادر به ذخیره داده بر روی کارت SD وخواندن داده های از پیش ذخیره شده بر روی حافظه، هستیم. پروتکل ارتباطی این ماژول ازنوع  SPI بوده و با بردهای آردوینو و ESP، سازگاری کامل دارد. پیش از این در آموزشی، به صورت جامع به راه اندازی و کار با این ماژول پرداخته ایم. این آموزش را با کلیک بر روی این لینک، می توانید دنبال کنید.

 

در این آموزش به کمک ماژول کارت SD، داده های دما و رطوبت را به صورت یک فایل اکسل، در حافظه SD ذخیره می کنیم. بدین صورت می توانیم فایل را در سیستم عامل ویندوز باز کرده و به کمک قابلیت ترسیم نمودار اکسل، داده ها را با انواع مختلفی از نمودارها تحلیل و بررسی کنیم.

 


باتری لیتیم پلیمر


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

 

از آنجاییکه باتری های لیتیم پلیمری به سادگی از طریق شارژرهای موبایل شارژ می شوند، بنابراین می توانیم باتری تغذیه سیستم دیتالاگر را با خیالی آسوده شارژ کنیم. جهت شارژ باتری می بایست از ماژول شارژر باتری استفاده نماییم. این ماژول دارای سوکت شارژ متناسب با شارژرهای تلفن همراه بوده و می تواند باتری را به سادگی شارژ نماید.

 


ماژول های افزاینده و کاهنده ولتاژ


برد آردوینو UNOف قابلیت تغذیه از طریق کابل USB و جک آداپتور را دارد. همچنین بر روی این برد، پایه ای به نام VIN، به ورودی مثبت جک آداپتور نیز متصل است. به لطف وجود رگولاتورهای ۵ ولت و ۳٫۳ ولتی، برد آردوینو قابلیت تغذیه از طریق پایه VIN و جک آداپتور را در بازه ۶ الی ۱۲ ولت، داراست.  از طرف دیگر، ولتاژ باتری لیتیم پلیمری در بازه ۳٫۴ الی ۴٫۲ قرار می گیرد. در این پروژه ما قصد تغذیه آردوینو از طریق پایه VIN را داریم. بنابراین، ابتدا ولتآژ باتری را به کمک رگولاتور XL6009، تا ۹ ولت بالا می بریم.

 

از طرف دیگر، با توجه به ریپل ها و نوسان های احتمالی در خروجی ماژول XL6009 که می تواند بر عملکرد آردوینو تاثیر گذاشته و موجبب آسیب به آن شود، از ماژول کاهنده ولتاژ  LM2596 بهره می بریم. به کمک ماژول کاهنده، ولتاژ ۹ ولت افزایش یافته را به ۷ ولت، کاهش می دهیم. در رابطه با دلیل این موضوع و اطلاعات تکمیلی، می توانید آموزش جامع افزایش ولتاژ باتری لیتیم پلیمیری را با کلیک بر روی این لینک، دانلود کنید.

 


شماتیک و اتصلات پروژه


در این قسمت به بررسی شماتیک و اتصالات پروژه می پردازیم. ابتدا در زیر، فرم کلی سیم کشی ها مشاهده می شود.

 

در ادامه، سیم کشی های این مدار را مطابق تصویر فوق پی می گیریم. برای این منظور، اتصالات مدار دستگاه دیتالاگر را قسمت به قسمت، به صورت زیر  انجام دهید.

 

سیم کشی و اتصالات مدار تغذیه(پاور) سیستم

  1. باتری با رعایت پلاریته به ورودی ماژول افزاینده متصل شود. خروجی ماژول بر روی ۹ ولت تنظیم شود. در مسر اتصال پلاریته مثبت باتری به ماژول افزاینده، یک کلید به صورت سری قرار دهید. این کلید وظیفه روشن و خاموش سازی مدار را بر عهده دارد.
  2. خروجی ماژول افزاینده با اتصال یک دیود به صورت سری و در بایاس مستقیم، به ووردی ماژول کاهنده متصل گردد.(توجه، GND خروجی افزاینده به GND ورودی کاهنده متصل شود. ممکن است بر روی ماژول شما های شما، عبارت -OUT برای خروجی منفی و -IN برای ورودی منفی درج شده باشد که به معنای عبارت GND است)
  3. خروجی ماژول کاهنده بر روی ۷ ولت متصل شود. پایه GND و یا -OUT ماژول به یکی از پایه های GND آردوینو متصل شود. پایه خروجی مثبت و یا +OUT نیز به پایه VIN آردوینو متصل شود.
  4. پلاریته مثبت باتری (بدون اتصال کلید) به پایه +B ماژول شارژر متصل گردد. به طریق مشابه، پایه -B ماژول به پلاریته منفی باتری متصل شود.

 

سیم کشی و اتصالات سنسور دما و رطوبت  DHT11

  1. اتصال پایه VCC به ۳٫۳ ولت آردوینو
  2. اتصال پایه GND سنسور به یکی از پایه های GND آردوینو
  3. اتصال پایه دیتا سنسور به پایه GPIO5 آردوینو

 

سیم کشی و اتصالات ماژول SD کارت

  1. اتصال پین ۱۱ آردوینو به پایه MOSI
  2. اتصال پین ۱۲ آردوینو به پایه MISO
  3. اتصال پین ۱۳ آردوینو به پایه SCK
  4. اتصال پین ۴ آردوینو به پایه CS
  5. پایه VCC ماژول SD را به پایه ۵ و پایه GND آن را به پایه GND آردوینو، متصل نمایید.

 


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


در این قسمت کدهای پروژه دیتالاگر پرتابل را مشاهده می کنید. این کدها برای برد آردوینو UNO توسعه یافته اند. توجه داشته باشید که هنگام آپلود کدها، تغذیه برد آردوینو از باتری جدا شده و تنها از طریق کابل، آردوینو به آردوینو متصل کرده و کدها را آپلود نمایید.

 


اجرای پروژه دیتالاگر پرتابل


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

 

مطابق تصویر فوق، داده ها در دو ستون ذخیره شده اند. ستون نخست مربوط به دما و ستون دوم، داده های مربوط به رطوبت را نمایش می دهد. از آنجاییکه نرم افزار اکسل قابلیت ترسیم نمودار را در خود جای داده، بنابراین داده های مربوط به دما را به شکل زیر، می توانیم ترسیم و تحلیل، نماییم.

 


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


در این قسمت به بررسی کدهای پروژه می پردازیم. توجه داشته باشید که درون کدهای پروژه، کامنت(توضیح) به ازای هر خط و برای هر قسمت قرار گرفته است. این توضیحات به  گونه ایست که با مطالعه آن، روال کار را به سادگی دریافت خواهید کرد. اما در اینجا به طور خلاصه به بررسی کدهای پروژه می پردازیم. در ابتدا کتابخانه های سنسور DHT و ماژول SD را به صورت زیر در برنامه قرار می دهیم.

در ادامه پس از راه اندازی اولیه سنور دما/رطوبت و ماژول کارت SD، در حلقه تکرار برنامه، داده ها را از سنور خوانده و با بازکردن فایل، آن ها را در حافظه SD ذخیره می کنیم. برای اطلاعات بیشتر در رابطه با نحوه ذخیره سازی داده درون کارت SD، با کلیک بر روی این لینک می توانید آموزش آن را مطالعه کنید.

 


اضافه کردن نمایشگر TM1637 به پروژه


در این پروژه می توان با اضافه کردن یک نمایشگر، مقادیر دما و رطوبت را به علاوه میزان درصد شارژ باتری، نمایش داد. بدین ترتیب، دستگاه دیتالاگر علاوه بر ذخیره داده ها در کارت SD، به کمک نمایشگر می تواند به صورت بلادرنگ، داده ها را به کاربر نمایش دهد. برای نمایش داده ها، می توان از ماژول نمایشگر TM1637 استفاده نمود. این نمایشگر که یک نمایشگر سون سگمنت است، داده ها را به شکل جذابی نمایش می دهد.

آموزش ساخت دماسنج و رطوبت سنج دیجیتال با -سنسور-DHT-TM1637

 

راه اندازی و کار با ماژول نمایشگر TM1637 بسیار ساده است. این نمایشگر از پروتکل I2C پشتیبانی می کند. بنابراین تنها به کمک دو پایه، می توانیم ۴ سگمنت در  آموزش های بسیاری اختیار داشته باشیم. به لطف توسعه کتابخانه جامع و استاندارد تحت آردوینو، راه اندازی و کار با این نمایشگر بسیار ساده است. برای راه اندازی و کار با مازول TM1637 آموزش های بسیاری در دیجی اسپارک منتشر شده است. با کلیک بر روی این لینک می توانید آن ها را مشاهده و مطالعه نمایید.

 


نصب کتابخانه های مورد نیاز


همانطور که پیشتر گفته شد، در این پروژه از ماژول TM1637 جهت نمایش دما و رطوبت اندازه گیری شده استفاده می کنیم. همچنین به کمک این نمایشگر قادر به نماش میزان درصد شارژ باتری نیز، خواهیم بود. به همین منظور، نیاز است تا در ابتدا، کتابخانه این نمایشگر را در نرم افزار آردویینو، نصب نماییم. برای نصب کتابخانه نمایشگر Seven Segment، ابتدا در نرم افزار آردویینو، روی منوی Tools و سپس Manage Libraries کلیک کنید. در قدم بعدی، در منوی ظاهر شده، در کادر جستجو، عبارت TM1637 را جستجو کرده و در میان کتابخانه های ظاهر شده، کتابخانه مشخص شده با کادر قرمز رنگ در تصویر زیر را نصب نمایید.

 

در این پروژه، به کمک ماژول نمایشگر سون سگمنت TM1637، مقادیر دما و رطوبت را نمایش می دهیم. در این نمایشگر، دو رقم سمت چپ مربوط به دما و دو رقم سمت راست مربوط به رطوبت خواهد بود. همچنین در این قسمت، کلیدی در پروژه تعبیه شده است. با فشردن کلید، وضعیت نمایشگر تغییر کرده و میزان درصد شارژ باتری، نمایش داده می شود. به منظور اندازه گیری میزان درصد شارژ باتری، از کتابخانه مخصوصی که به این منظور توسعه یافته، استفاده می کنیم. برای دانلود و نصب این کتابخانه، مطابق روش فوق، در کادر جستجو “Battery Sense” را تایپ کنید. با مشاهده تصویر زیر، کتابخانه را نصب نمایید.

توجه: کتابخانه TM1637 مورد استفاده در این پروژه، نسخه ۱٫۰٫۰   و کتابخانه باتری، ۱٫۱٫۱ است.

 


شماتیک و اتصالات به همراه نمایشگر


همانطور که پیشتر بیان شد، در این پروژه با اضافه کردن نمایشگر، علاوه بر ذخیره سازی داده در کارت SD، می توانیم مقادیر دما و رطوبت را به همراه درصد شارژ باتری، نمایش دهیم. شماتیک کلی مدار را پیشتر مشاهده کرده اید. در این قسمت، تنها کافیست اتصالات ماژول سگمنت را به شکل زیر، انجام دهید.

  • اتصال پایه VCC  ماژول به ۵ ولت آردوینو
  • اتصال پایه CLK ماژول به پایه ۲ آردوینو
  • اتصال پایه DIO ماژول به پایه ۳ آردوینو
  • اتصال پایه GND ماژول به یکی از پایه های GND آردوینو

 

همانطور که بیان شد، در این قسمت به کمک یک کلید، وضعیت نمایشگر تغییر می کند.  برای این منظور پایه ۶ آردوینو با مقاومت داخلی پول آپ شده است. شما می بایست یک طرف کلید را به این پایه و طرف دیگر آن را به زمین متصل کنید. در حالت عادی، نمایشگر دما و رطوبت را نمایش می دهد. با فشردن این کلید، اتصال پایه ۶ با زمین برقرار شده و نمایشگر میزان شارژ باتری را نمایش خواهد داد. از دیگر قابلیت های این پروزه با اضافه شدن نمایشگر، نمایش درصد شارژ باتری است. برای این مورد، پلاریته مثبت باتری به کمک یک مقاومت یک کیلو اهمی به صورت سری، به پایه A0 آردوینو متصل گردد.

 


کدهای پروژه به همراه نمایشگر


در این قسمت کدهای پروژه را به همراه قابلیت نمایش داده بر روی نمایشگر سون سگمنت، مشاهده می کنید. توجه داشته باشید که این کدها برای برد آردوینو UNO توسعه یافته اند. بنابراین، در منوی Tools->Boards، گزینه arduino uno را انتخاب کنید. سپس کدهای زیر را بر روی برد، آپلود نمایید. همچنین، مشابه سری پیش، ابتدا کدها را به کم کابل آپلود کرده و سپس تغذیه را متصل کنید. زمانیکه در حال آپلود کد بر روی آردوینو هستید، به هیچ عنوان تغذیه آردوینو از طریق باتری را متصل نکنید.

 


دیتالاگر پرتابل به همراه نمایشگر


در این قسمت به اجرای پروژه دیتالاگر می پردازیم. همانطور که پیشتر بیان شد، در نمایشگر، دو رقم نخست مخصوص نمایش دما و دو رقم بعدی، مخصوص نمایش رطوبت است. پس از روشن شدن دستگاه، مقادیر دما و رطوبت در نمایشگر، به نمایش در می آید.

دیتالاگر پرتابل به همراه نمایشگر - دیجی اسپارک

 

در صورتیکه نیاز به نمایش درصد شارژ باتری داشته باشید، به فشردن کلید آن، به سادگی مقدار درصد شارژ باتری، بر روی نمایشگر به نمایش در خواهد آمد.

 


تحلیل کدهای پروژه به همراه نمایشگر


پس از اجرای و مشاهده عملکرد دستگاه، به تحلیل کدهای پروژه می پردازیم. همانند قسمت قبلی، درون کدهای پروژه کامنت(توضیح) به صورت خط به خط و کامل قرار گرفته است. در اینجا به طور خلاصه، به بررسی عملکرد و توابع کلیدی می پردازیم. در این قسمت، جهت استاندارسازی هرچه بیشتر کدهای برنامه، ۳ تابع اصلی تعریف شده است. این سه تابع عبارتد از:

  1. read_sensor_data
  2. save_data
  3. display_data

تابع نخست، وظیفه خواندن داده های مرطوب به دما و رطوبت را دارد. این داده ها در متغیر های از پیش تعریف شده، ذخیره می شوند. پس از این، تابع save_data داده های خوانده شده را در کارت SD ذخیره می نماید. این ذخیره سازی تحت فرمت فایل اکسل، خواهد بود. در نهایت تابع display_data، داده های دما و رطوبت را نمایش می دهد. در این تابع، ابتدا وضعیت پایه ۶ آردوینو کنترل می شود. چنانچه وضعیت این پایه ۱ باشد، یعنی کلید تغییر وضعیت نمایش فشرده نشده است. بنابراین دما و رطوبت از چپ به راست و دو رقم دورقم، نمایش داده می شوند. در صورتیکه این پایه مقداری غیر از ۱ داشت، یعنی کلید فشرده شده است. در این حالت، به جای دما و رطوبت، میزان درصد شارژ باتری نمایش داده خواهد شد.

 


لوازم مورد نیاز


کیت دیتالاگر پرتابل

 


جمع بندی


در این آموزش به طراحی و پیاده سازی یک دستگاه دیتالاگر پرتابل، با قابلیت تغذیه از طریق باتری لیتیمی پرداختیم. از آنجاییکه دستگاه های دیتالاگر یکی از پرکاربردترین ابزارها در پروژه ها و اماکن مختلف به شمار می روند. در این پروژه، به کمک برد آردوینو UNO و سنسور DHT11، یک دستگاه دیتالاگر دما و رطوبت می سازیم در این دستگاه، داده ها بر روی کارت SD ذخیره می شوند. افزون بر این، با اضافه کردن نمایشگر، می توانیم علاوه بر ذخیره داده، آن ها را نیز نمایش دهیم. در این پروژه، تغذیه سیستم دیتالاگر را از طریق باتری لیتیم پلیمری تامین می نماییم. از طرف دیگر، به کمک ماژول شارژر، می توانیم باتری دستگاه را به سادگی و از طریق شارژرهای اندرویدی، شارژ نماییم.

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

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