اندازه‌گیری دما + خواندن تگ‌های RFID (NFC) | قسمت سی و پنجم آموزش آردوینو

آردوینو 35
17 بازدید
۱۴۰۴-۰۶-۰۱
8 دقیقه
  • نویسنده: Arduino captain
  • درباره نویسنده: من کاپیتان آردوینو، اسمم میلاده و اینجا هستم تا تجربیاتم در رابطه با آردوینو رو با شما به اشتراک بزارم!

در قسمت سی و چهارم از آموزش آردوینو به بررسی تشخیص ارتعاش و تشخیص صدا پرداختیم. در این قسمت قصد داریم درباره اندازه‌گیری دما و خواندن تگ‌های RFID (NFC) صحبت کنیم.

اندازه‌گیری دما

فرض کنید می‌خواهید دما را نمایش دهید یا از مقدار آن برای کنترل یک دستگاه استفاده کنید؛ برای مثال، وقتی دما به یک آستانه مشخص رسید، چیزی روشن شود. این دما را هم می‌توان بر حسب فارنهایت و هم بر حسب سلسیوس (سانتی‌گراد) نمایش داد.

اندازه‌گیری دما با TMP36

برای این کار از سنسور تشخیص دما TMP36 استفاده می‌شود. این سنسور شبیه یک ترانزیستور به نظر می‌رسد و همان‌طور که در شکل 1 نشان داده شده، متصل می‌گردد.

✅نکته

اگر از یک برد ۳٫۳ ولتی استفاده می‌کنید، باید پایه‌ی تغذیه‌ی TMP36 را به ۳٫۳ ولت وصل کنید (به‌جای ۵ ولت) و در برنامه (اسکچ)، این خط کد:

را به این صورت تغییر دهید:

اندازه‌گیری دما + خواندن تگ‌های RFID (NFC) | قسمت سی و پنجم آموزش آردوینو

شکل 1: اتصال سنسور دمای TMP36

اندازه‌گیری دما با سنسور آنالوگ TMP36 در آردوینو

سنسور دمای TMP36 ولتاژ آنالوگی تولید می‌کند که مستقیماً با دما متناسب است، به‌طوری‌که برای هر 0.1 درجه سلسیوس، 1 میلی‌ولت (یا 10 میلی‌ولت برای هر درجه سلسیوس) خروجی می‌دهد، اما دارای افست ۵۰۰ میلی‌ولت است.

نمایش دما به سلسیوس و فارنهایت با TMP36

این برنامه مقادیر analogRead را به میلی‌ولت تبدیل می‌کند. سپس ۰.۵ ولت (۵۰۰ میلی‌ولت) که ولتاژ آفست مشخص شده در دیتاشیت TMP36 است، از آن کم می‌کند و در نهایت نتیجه را بر ۱۰ تقسیم می‌کند تا دما بر حسب درجه سلسیوس به دست آید. اگر دما از مقدار آستانه عبور کند، برنامه LED داخلی برد را روشن می‌کند. شما می‌توانید به‌راحتی سنسور را بالای ۸۰ درجه فارنهایت برسانید، کافی است سنسور را بین دو انگشت خود نگه دارید، اما از لمس‌کردن پایه‌های سنسور با انگشتان خود خودداری کنید تا در سیگنال الکتریکی تداخل ایجاد نشود.

اندازه‌گیری دما با DS18B20

سنسورهای دمای زیادی در دسترس هستند، اما یک جایگزین جالب، سنسور دمای دیجیتال ضدآب DS18B20 است (قطعه Adafruit شماره ۳۸۱، قطعه SparkFun شماره SEN-11050 و از سایر تأمین‌کنندگان نیز قابل‌تهیه است). این سنسور به‌صورت متفاوت نسبت به TMP36 سیم‌کشی و استفاده می‌شود.

سنسور DS18B20 بر اساس پروتکل 1-Wire که توسط شرکت Dallas Semiconductor (اکنون Maxim) معرفی شد، کار می‌کند و نیاز به دو کتابخانه دارد. کتابخانه اول OneWire است. چندین کتابخانه با نام OneWire موجود است، بنابراین مطمئن شوید که کتابخانه OneWire توسط Jim Studt ،Tom Pollard و همکاران را انتخاب کنید. همچنین به کتابخانه DallasTemperature نیز نیاز خواهید داشت. می‌توانید هر دو کتابخانه را با استفاده از Library Manager نصب کنید.

برای سیم‌کشی DS18B20، سیم قرمز را به 5 ولت (یا 3.3 ولت در بردهای 3.3 ولتی) متصل کنید، سیم سیاه را به زمین (GND) وصل کنید و سیم سیگنال (زرد، سفید یا رنگ دیگری) را به پین دیجیتال 2 متصل کنید، با یک مقاومت 4.7 کیلو اهم بین سیم سیگنال و پایه تغذیه (5 V یا 3.3 V)، همان‌طور که در شکل زیر نشان داده شده است.

اندازه‌گیری دما + خواندن تگ‌های RFID (NFC) | قسمت سی و پنجم آموزش آردوینو

شکل 2: اتصال سنسور دمای DS18B20

در اینجا اسکچ خواندن دما آورده شده است:

این اسکچ فایل‌های هدر هر کتابخانه را وارد می‌کند و ساختارهای داده‌ای لازم برای کار با پروتکل 1-Wire و سنسور را مقداردهی اولیه می‌کند. درون حلقه (loop) برنامه، دما را درخواست می‌کند و سپس دما را به درجه سلسیوس و سپس درجه فارنهایت می‌خواند. توجه داشته باشید که نیازی به انجام هیچ تبدیل ریاضی روی نتایج دریافتی از سنسور نیست؛ همه چیز توسط کتابخانه انجام می‌شود. همچنین توجه کنید که هنگام استفاده از برد ۳.۳ ولتی، نیازی به تغییر کد ندارید، اما مطمئن شوید که تغذیه سنسور به ۳.۳ ولت متصل باشد، نه ۵ ولت.

خواندن تگ‌های RFID (NFC)

فرض می‌کنید می‌خواهید یک تگ RFID/NFC را بخوانید و به شناسه‌های خاص پاسخ دهید.

شکل 3 یک NFC reader مدل PN532 را نشان می‌دهد که از طریق پین‌های سریال TX و RX به آردوینو متصل شده است. reader‌های PN532 NFC از چندین تأمین‌کننده قابل تهیه هستند. reader Seeed Studio Grove NFC  قطعه شماره همان‌طور که در نمودار نشان داده شده است، متصل می‌شود.

همچنین می‌توانید reader PN532 را به شکل شیلد پیدا کنید. قطعه SeeedStudio شماره 113030001، قطعه Adafruit شماره 789.

برای استفاده از این ماژول، باید کتابخانه Seeed_Arduino_NFC از SeeedStudio را نصب کنید. کتابخانه Seeed شامل نسخه‌ای اصلاح‌شده از کتابخانه NDEF است، بنابراین نیازی به نصب جداگانه آن ندارید.

✅نکته

reader‌های PN532 با تگ‌های MIFARE Classic و MIFARE Ultralight در فرکانس 13.56 مگاهرتز کار می‌کنند. اگر از reader دیگری استفاده می‌کنید، داکیومنت آن را بررسی کنید تا اطلاعات مربوط به سیم‌کشی reader به آردوینو و همچنین نمونه کد را به دست آورید.
اندازه‌گیری دما + خواندن تگ‌های RFID (NFC) | قسمت سی و پنجم آموزش آردوینو

شکل 3: NFC reader متصل به آردوینو

این برنامه (Sketch) یک تگ NFC را می‌خواند و شناسه‌ی یکتای (Unique ID) آن را نمایش می‌دهد:

تشخیص و خواندن تگ‌های RFID/NFC با ماژول PN532

NFC (Near-Field Communication) یک نوع خاص از فناوری RFID (Radio Frequency Identification) است که در فرکانس 13.56 مگاهرتز کار می‌کند و از یک فرمت داده به نام NDEF (NFC Data Exchange Format) پشتیبانی می‌کند. NDEF مجموعه‌ای از پیام‌های ساختاریافته را فراهم می‌کند که می‌توانید روی یک تگ ذخیره کنید. تگ یک وسیله‌ی الکترونیکی کوچک است که می‌تواند در کارت‌ها، برچسب‌ها، جاسوئیچی‌ها و سایر اشیاء تعبیه شود.

نحوه‌ی کار تگ‌های RFID/NFC

تگ شامل یک آنتن نسبتاً بزرگ است که سیگنال‌ها را از یک reader RFID/NFC دریافت می‌کند. reader می‌تواند در یک کامپیوتر یا تلفن همراه تعبیه شده باشد، یا یک ماژول جداگانه باشد که به آردوینو وصل می‌کنید؛ مانند ماژول PN532. وقتی تگ سیگنال را دریافت می‌کند، انرژی لازم را از همان سیگنال برداشت کرده و مدار داخلی تگ را فعال می‌کند؛ سپس با ارسال اطلاعات ذخیره‌شده در حافظه خود، به سیگنال پاسخ می‌دهد. همچنین تگ‌هایی وجود دارند که منبع تغذیه مستقل دارند، مانند ترانسپوندر خودرو که در سیستم‌های پرداخت عوارض خودکار استفاده می‌شود. این نوع تگ‌ها به‌عنوان Active Tag (تگ فعال) شناخته می‌شوند، درحالی‌که نوعی که انرژی را از reader برداشت می‌کند، Passive Tag (تگ غیرفعال) نامیده می‌شود.

یک تگ NDEF هنگامی که توسط یک reader فعال شود، مجموعه‌ای از داده‌ها را منتقل می‌کند. این داده‌ها شامل اطلاعات شناسایی تگ و همچنین هر اطلاعاتی است که روی تگ ذخیره شده است.

روش‌های اتصال ماژول PN532 به آردوینو (Serial ،I2C ،SPI)

در این راه‌حل از کتابخانه NDEF نوشته‌ی Don Coleman برای ساده‌سازی خواندن داده‌های تگ استفاده شده است. کدی که در راه‌حل نشان‌داده‌شده، با ماژول Seeed Studio Grove NFC که از طریق Serial1 متصل شده است، کار می‌کند. این کد از اتصال سریال USB برای ارسال اطلاعات استفاده می‌کند که می‌توانید آن را در Serial Monitor مشاهده کنید.

برد Arduino Uno که دارای Serial1 نیست، به این معنی که باید از SoftwareSerial همراه با این ماژول استفاده کنید؛ زیرا در برد Uno و دیگر بردهای سازگار با ATmega328، پین‌های USB Serial و TX/RX مشترک هستند، بنابراین این بردها نمی‌توانند هم‌زمان با یک دستگاه سریال و از طریق USB Serial ارتباط برقرار کنند. همچنین، می‌توانید ماژول Grove NFC را طوری کانفیگ کنید که از I2C استفاده کند.

شیلد Seeed Studio NFC از طریق SPI ارتباط برقرار می‌کند. اگر بخواهید از آن استفاده کنید، باید کد را به‌صورت زیر تغییر دهید:

اگر بخواهید از آن با شیلد Adafruit یا ماژول Grove NFC در حالت I2C استفاده کنید، باید کد را به‌صورت زیر تغییر دهید:

خواندن و نوشتن داده (NDEF) روی تگ NFC

با استفاده از کتابخانه NDEF می‌توانید هر پیامی را که روی تگ قرار دارد بخوانید و پیام دلخواه خودتان را روی آن بنویسید (به شرطی که تگ قفل نشده باشد). اگر تابع loop را با کد زیر جایگزین کنید، برنامه ابتدا تگ را می‌خواند و سپس با استفاده از تابع print شیء NfcTag شناسه‌ی تگ (Tag ID) و هر پیامی که روی آن ذخیره شده باشد را نمایش می‌دهد.

سپس یک شمارش معکوس نشان داده می‌شود. اگر تگ را همچنان در محل خود نگه دارید، برنامه یک آدرس اینترنتی (URL) روی تگ خواهد نوشت. اگر یک تلفن همراه دارای قابلیت NFC داشته باشید، می‌توانید تگ را نزدیک تلفن بگیرید و باید مرورگر وب گوشی به طور خودکار آن آدرس اینترنتی را باز کند.

اطلاعات
17
0
0
لینک و اشتراک
جلسات دیگر
آردوینو

تشخیص ارتعاش و صدا | قسمت سی و...

profile

نویسنده: Arduino captain

متخصص الکترونیک

من کاپیتان آردوینو، اسمم میلاده و اینجا هستم تا تجربیاتم در رابطه با آردوینو رو با شما به اشتراک بزارم!


مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ
سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله