|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "4fb20273d299dc8d07a8f06c9cd0cdd9",
|
|
|
"translation_date": "2025-08-25T21:38:12+00:00",
|
|
|
"source_file": "2-farm/lessons/2-detect-soil-moisture/README.md",
|
|
|
"language_code": "fa"
|
|
|
}
|
|
|
-->
|
|
|
C، که به صورت *I-squared-C* تلفظ میشود، یک پروتکل چندکنترلکننده و چندپیرامونی است که در آن هر دستگاه متصل میتواند به عنوان کنترلکننده یا پیرامونی عمل کند و از طریق گذرگاه I²C (نام سیستم ارتباطی که دادهها را منتقل میکند) ارتباط برقرار کند. دادهها به صورت بستههای آدرسدهی شده ارسال میشوند، و هر بسته شامل آدرس دستگاه متصل است که برای آن ارسال شده است.
|
|
|
|
|
|
> 💁 این مدل قبلاً به عنوان master/slave شناخته میشد، اما این اصطلاح به دلیل ارتباط آن با بردهداری در حال کنار گذاشته شدن است. [انجمن سختافزار متنباز اصطلاح کنترلکننده/پیرامونی را پذیرفته است](https://www.oshwa.org/a-resolution-to-redefine-spi-signal-names/)، اما ممکن است هنوز به اصطلاحات قدیمی برخورد کنید.
|
|
|
|
|
|
دستگاهها دارای آدرسی هستند که هنگام اتصال به گذرگاه I²C استفاده میشود و معمولاً به صورت سختافزاری روی دستگاه تنظیم شده است. برای مثال، هر نوع حسگر Grove از Seeed دارای آدرس مشابهی است، بنابراین تمام حسگرهای نور دارای آدرس مشابهی هستند، تمام دکمهها دارای آدرس مشابهی هستند که با آدرس حسگر نور متفاوت است. برخی دستگاهها روشهایی برای تغییر آدرس دارند، مانند تغییر تنظیمات جامپر یا لحیم کردن پینها به یکدیگر.
|
|
|
|
|
|
I²C دارای گذرگاهی است که از 2 سیم اصلی، همراه با 2 سیم تغذیه تشکیل شده است:
|
|
|
|
|
|
| سیم | نام | توضیحات |
|
|
|
| ---- | --------- | ----------- |
|
|
|
| SDA | داده سریال | این سیم برای ارسال داده بین دستگاهها استفاده میشود. |
|
|
|
| SCL | ساعت سریال | این سیم سیگنال ساعت را با نرخ تنظیم شده توسط کنترلکننده ارسال میکند. |
|
|
|
| VCC | جمعکننده ولتاژ مشترک | منبع تغذیه برای دستگاهها. این سیم به سیمهای SDA و SCL متصل است تا از طریق مقاومت کششی، توان آنها را تأمین کند و سیگنال را زمانی که هیچ دستگاهی کنترلکننده نیست خاموش کند. |
|
|
|
| GND | زمین | این سیم زمین مشترک برای مدار الکتریکی فراهم میکند. |
|
|
|
|
|
|

|
|
|
|
|
|
برای ارسال داده، یک دستگاه شرایط شروع را صادر میکند تا نشان دهد آماده ارسال داده است. سپس به کنترلکننده تبدیل میشود. کنترلکننده سپس آدرس دستگاهی را که میخواهد با آن ارتباط برقرار کند، همراه با اینکه آیا میخواهد داده بخواند یا بنویسد، ارسال میکند. پس از انتقال دادهها، کنترلکننده شرایط توقف را ارسال میکند تا نشان دهد که کارش تمام شده است. پس از این، دستگاه دیگری میتواند به کنترلکننده تبدیل شود و دادهها را ارسال یا دریافت کند.
|
|
|
<sup>
|
|
|
2<sup>سی</sup> محدودیتهای سرعت دارد و با سه حالت مختلف در سرعتهای ثابت کار میکند. سریعترین حالت، حالت سرعت بالا (High Speed) است که حداکثر سرعت آن 3.4 مگابیت بر ثانیه است، هرچند تعداد کمی از دستگاهها از این سرعت پشتیبانی میکنند. به عنوان مثال، رزبری پای به حالت سریع (Fast Mode) با سرعت 400 کیلوبیت بر ثانیه محدود شده است. حالت استاندارد با سرعت 100 کیلوبیت بر ثانیه کار میکند.
|
|
|
|
|
|
> 💁 اگر از رزبری پای با یک کلاهک Grove Base به عنوان سختافزار IoT خود استفاده میکنید، میتوانید تعدادی سوکت I<sup>2</sup>C روی برد مشاهده کنید که میتوانید از آنها برای ارتباط با حسگرهای I<sup>2</sup>C استفاده کنید. حسگرهای آنالوگ Grove نیز از I<sup>2</sup>C همراه با یک ADC برای ارسال مقادیر آنالوگ به صورت دادههای دیجیتال استفاده میکنند، بنابراین حسگر نوری که استفاده کردید، یک پین آنالوگ شبیهسازی شده بود که مقدار آن از طریق I<sup>2</sup>C ارسال میشد، زیرا رزبری پای فقط از پینهای دیجیتال پشتیبانی میکند.
|
|
|
|
|
|
### گیرنده-فرستنده جهانی ناهمگام (UART)
|
|
|
|
|
|
UART شامل مدارهای فیزیکی است که به دو دستگاه اجازه میدهد با یکدیگر ارتباط برقرار کنند. هر دستگاه دارای 2 پین ارتباطی است - ارسال (Tx) و دریافت (Rx)، به طوری که پین Tx دستگاه اول به پین Rx دستگاه دوم متصل میشود و پین Tx دستگاه دوم به پین Rx دستگاه اول متصل میشود. این اتصال امکان ارسال داده در هر دو جهت را فراهم میکند.
|
|
|
|
|
|
* دستگاه 1 دادهها را از پین Tx خود ارسال میکند که توسط دستگاه 2 در پین Rx آن دریافت میشود.
|
|
|
* دستگاه 1 دادهها را در پین Rx خود دریافت میکند که توسط دستگاه 2 از پین Tx آن ارسال میشود.
|
|
|
|
|
|

|
|
|
|
|
|
> 🎓 دادهها به صورت یک بیت در هر زمان ارسال میشوند و این نوع ارتباط به عنوان ارتباط *سریال* شناخته میشود. بیشتر سیستمعاملها و میکروکنترلرها دارای *پورتهای سریال* هستند، یعنی اتصالاتی که میتوانند دادههای سریال را ارسال و دریافت کنند و برای کد شما در دسترس هستند.
|
|
|
|
|
|
دستگاههای UART دارای یک [نرخ بود](https://wikipedia.org/wiki/Symbol_rate) (که به عنوان نرخ نماد نیز شناخته میشود) هستند، که سرعت ارسال و دریافت دادهها را بر حسب بیت در ثانیه مشخص میکند. یک نرخ بود رایج 9,600 است، به این معنی که 9,600 بیت (0 و 1) داده در هر ثانیه ارسال میشود.
|
|
|
|
|
|
UART از بیتهای شروع و توقف استفاده میکند - به این صورت که یک بیت شروع ارسال میکند تا نشان دهد که قرار است یک بایت (8 بیت) داده ارسال شود، سپس یک بیت توقف پس از ارسال 8 بیت ارسال میشود.
|
|
|
|
|
|
سرعت UART به سختافزار بستگی دارد، اما حتی سریعترین پیادهسازیها از 6.5 مگابیت بر ثانیه (میلیونها بیت، 0 یا 1، ارسال شده در هر ثانیه) فراتر نمیروند.
|
|
|
|
|
|
میتوانید از UART روی پینهای GPIO استفاده کنید - میتوانید یک پین را به عنوان Tx و دیگری را به عنوان Rx تنظیم کنید، سپس اینها را به دستگاه دیگری متصل کنید.
|
|
|
|
|
|
> 💁 اگر از رزبری پای با یک کلاهک Grove Base به عنوان سختافزار IoT خود استفاده میکنید، میتوانید یک سوکت UART روی برد مشاهده کنید که میتوانید از آن برای ارتباط با حسگرهایی که از پروتکل UART استفاده میکنند، بهره ببرید.
|
|
|
|
|
|
### رابط محیطی سریال (SPI)
|
|
|
|
|
|
SPI برای ارتباط در فواصل کوتاه طراحی شده است، مانند ارتباط یک میکروکنترلر با یک دستگاه ذخیرهسازی مانند حافظه فلش. این پروتکل بر اساس مدل کنترلکننده/پیرامونی است که در آن یک کنترلکننده (معمولاً پردازنده دستگاه IoT) با چندین دستگاه پیرامونی تعامل دارد. کنترلکننده همه چیز را با انتخاب یک دستگاه پیرامونی و ارسال یا درخواست داده کنترل میکند.
|
|
|
|
|
|
> 💁 مانند I<sup>2</sup>C، اصطلاحات کنترلکننده و پیرامونی تغییرات جدیدی هستند، بنابراین ممکن است هنوز اصطلاحات قدیمی را مشاهده کنید.
|
|
|
|
|
|
کنترلکنندههای SPI از 3 سیم به همراه 1 سیم اضافی برای هر دستگاه پیرامونی استفاده میکنند. دستگاههای پیرامونی از 4 سیم استفاده میکنند. این سیمها عبارتند از:
|
|
|
|
|
|
| سیم | نام | توضیحات |
|
|
|
| ---- | --------- | ----------- |
|
|
|
| COPI | خروجی کنترلکننده، ورودی پیرامونی | این سیم برای ارسال داده از کنترلکننده به دستگاه پیرامونی است. |
|
|
|
| CIPO | ورودی کنترلکننده، خروجی پیرامونی | این سیم برای ارسال داده از دستگاه پیرامونی به کنترلکننده است. |
|
|
|
| SCLK | ساعت سریال | این سیم سیگنال ساعت را با نرخ تنظیم شده توسط کنترلکننده ارسال میکند. |
|
|
|
| CS | انتخاب تراشه | کنترلکننده دارای چندین سیم است، یکی برای هر دستگاه پیرامونی، و هر سیم به سیم CS دستگاه پیرامونی مربوطه متصل میشود. |
|
|
|
|
|
|

|
|
|
|
|
|
سیم CS برای فعال کردن یک دستگاه پیرامونی در هر زمان استفاده میشود و ارتباط از طریق سیمهای COPI و CIPO انجام میشود. هنگامی که کنترلکننده نیاز به تغییر دستگاه پیرامونی دارد، سیم CS متصل به دستگاه فعال فعلی را غیرفعال میکند، سپس سیم متصل به دستگاه پیرامونی که میخواهد با آن ارتباط برقرار کند را فعال میکند.
|
|
|
|
|
|
SPI *دوطرفه کامل* است، به این معنی که کنترلکننده میتواند به طور همزمان دادهها را ارسال و دریافت کند، از همان دستگاه پیرامونی با استفاده از سیمهای COPI و CIPO. SPI از یک سیگنال ساعت روی سیم SCLK برای هماهنگ نگه داشتن دستگاهها استفاده میکند، بنابراین برخلاف ارسال مستقیم از طریق UART، نیازی به بیتهای شروع و توقف ندارد.
|
|
|
|
|
|
برای SPI محدودیت سرعت تعریف نشده است و پیادهسازیها اغلب قادر به انتقال چندین مگابایت داده در ثانیه هستند.
|
|
|
|
|
|
کیتهای توسعه IoT اغلب از SPI روی برخی از پینهای GPIO پشتیبانی میکنند. به عنوان مثال، در رزبری پای میتوانید از پینهای GPIO 19، 21، 23، 24 و 26 برای SPI استفاده کنید.
|
|
|
|
|
|
### بیسیم
|
|
|
|
|
|
برخی حسگرها میتوانند از طریق پروتکلهای بیسیم استاندارد مانند بلوتوث (عمدتاً بلوتوث کممصرف یا BLE)، LoRaWAN (یک پروتکل شبکه کممصرف با برد بلند) یا WiFi ارتباط برقرار کنند. این پروتکلها امکان استفاده از حسگرهای از راه دور که به صورت فیزیکی به دستگاه IoT متصل نیستند را فراهم میکنند.
|
|
|
|
|
|
یکی از نمونههای این حسگرها، حسگرهای رطوبت خاک تجاری است. این حسگرها رطوبت خاک را در یک مزرعه اندازهگیری کرده و دادهها را از طریق LoRaWAN به یک دستگاه مرکزی ارسال میکنند که دادهها را پردازش کرده یا از طریق اینترنت ارسال میکند. این روش به حسگر اجازه میدهد از دستگاه IoT که دادهها را مدیریت میکند دور باشد، مصرف انرژی را کاهش داده و نیاز به شبکههای WiFi بزرگ یا کابلهای بلند را از بین میبرد.
|
|
|
|
|
|
BLE برای حسگرهای پیشرفته مانند ردیابهای تناسب اندام که روی مچ دست کار میکنند محبوب است. این حسگرها چندین حسگر را ترکیب کرده و دادههای حسگر را از طریق BLE به یک دستگاه IoT مانند تلفن شما ارسال میکنند.
|
|
|
|
|
|
✅ آیا حسگرهای بلوتوثی در اطراف خود، خانه یا مدرسه دارید؟ این حسگرها ممکن است شامل حسگرهای دما، حسگرهای حضور، ردیابهای دستگاه و دستگاههای تناسب اندام باشند.
|
|
|
|
|
|
یکی از روشهای محبوب برای اتصال دستگاههای تجاری، Zigbee است. Zigbee از WiFi برای ایجاد شبکههای مش بین دستگاهها استفاده میکند، به طوری که هر دستگاه به تعداد زیادی از دستگاههای نزدیک متصل میشود و تعداد زیادی اتصال مانند تار عنکبوت ایجاد میکند. هنگامی که یک دستگاه میخواهد پیامی را به اینترنت ارسال کند، میتواند آن را به نزدیکترین دستگاهها ارسال کند، که سپس آن را به دستگاههای نزدیک دیگر ارسال میکنند و این روند ادامه مییابد تا به یک هماهنگکننده برسد و به اینترنت ارسال شود.
|
|
|
|
|
|
> 🐝 نام Zigbee به رقص وِگِل زنبورهای عسل پس از بازگشت به کندو اشاره دارد.
|
|
|
|
|
|
## اندازهگیری سطح رطوبت خاک
|
|
|
|
|
|
میتوانید سطح رطوبت خاک را با استفاده از یک حسگر رطوبت خاک، یک دستگاه IoT و یک گیاه خانگی یا تکهای از خاک نزدیک اندازهگیری کنید.
|
|
|
|
|
|
### وظیفه - اندازهگیری رطوبت خاک
|
|
|
|
|
|
راهنمای مربوطه را دنبال کنید تا رطوبت خاک را با استفاده از دستگاه IoT خود اندازهگیری کنید:
|
|
|
|
|
|
* [Arduino - Wio Terminal](wio-terminal-soil-moisture.md)
|
|
|
* [کامپیوتر تکبرد - رزبری پای](pi-soil-moisture.md)
|
|
|
* [کامپیوتر تکبرد - دستگاه مجازی](virtual-device-soil-moisture.md)
|
|
|
|
|
|
## کالیبراسیون حسگر
|
|
|
|
|
|
حسگرها به اندازهگیری خواص الکتریکی مانند مقاومت یا ظرفیت متکی هستند.
|
|
|
|
|
|
> 🎓 مقاومت، که بر حسب اهم (Ω) اندازهگیری میشود، میزان مخالفت با جریان الکتریکی عبوری از یک ماده را نشان میدهد. هنگامی که ولتاژی به یک ماده اعمال میشود، مقدار جریانی که از آن عبور میکند به مقاومت ماده بستگی دارد. میتوانید اطلاعات بیشتری در [صفحه مقاومت الکتریکی در ویکیپدیا](https://wikipedia.org/wiki/Electrical_resistance_and_conductance) بخوانید.
|
|
|
|
|
|
> 🎓 ظرفیت، که بر حسب فاراد (F) اندازهگیری میشود، توانایی یک مؤلفه یا مدار برای جمعآوری و ذخیره انرژی الکتریکی است. میتوانید اطلاعات بیشتری در [صفحه ظرفیت در ویکیپدیا](https://wikipedia.org/wiki/Capacitance) بخوانید.
|
|
|
|
|
|
این اندازهگیریها همیشه مفید نیستند - تصور کنید یک حسگر دما به شما اندازهگیری 22.5KΩ بدهد! در عوض، مقدار اندازهگیری شده باید به یک واحد مفید تبدیل شود، که این کار با کالیبراسیون انجام میشود - یعنی تطبیق مقادیر اندازهگیری شده با کمیت اندازهگیری شده تا اندازهگیریهای جدید به واحد درست تبدیل شوند.
|
|
|
|
|
|
برخی حسگرها از پیش کالیبره شدهاند. به عنوان مثال، حسگر دمایی که در درس قبلی استفاده کردید، از قبل کالیبره شده بود تا بتواند اندازهگیری دما را بر حسب °C بازگرداند. در کارخانه، اولین حسگر ساخته شده در معرض محدودهای از دماهای شناخته شده قرار میگیرد و مقاومت اندازهگیری میشود. سپس از این دادهها برای ساخت یک محاسبه استفاده میشود که میتواند مقدار اندازهگیری شده بر حسب Ω (واحد مقاومت) را به °C تبدیل کند.
|
|
|
|
|
|
> 💁 فرمول محاسبه مقاومت از دما به [معادله استینهارت-هارت](https://wikipedia.org/wiki/Steinhart–Hart_equation) معروف است.
|
|
|
|
|
|
### کالیبراسیون حسگر رطوبت خاک
|
|
|
|
|
|
رطوبت خاک با استفاده از محتوای آب وزنی یا حجمی اندازهگیری میشود.
|
|
|
|
|
|
* وزنی، وزن آب در یک واحد وزن خاک را اندازهگیری میکند، به صورت تعداد کیلوگرم آب در هر کیلوگرم خاک خشک.
|
|
|
* حجمی، حجم آب در یک واحد حجم خاک را اندازهگیری میکند، به صورت تعداد متر مکعب آب در هر متر مکعب خاک خشک.
|
|
|
|
|
|
> 🇺🇸 برای آمریکاییها، به دلیل سازگاری واحدها، این مقادیر میتوانند به جای کیلوگرم یا متر مکعب، بر حسب پوند یا فوت مکعب اندازهگیری شوند.
|
|
|
|
|
|
حسگرهای رطوبت خاک مقاومت یا ظرفیت الکتریکی را اندازهگیری میکنند - این مقدار نه تنها با رطوبت خاک، بلکه با نوع خاک نیز تغییر میکند، زیرا اجزای موجود در خاک میتوانند ویژگیهای الکتریکی آن را تغییر دهند. ایدهآل این است که حسگرها کالیبره شوند - یعنی گرفتن خوانشهایی از حسگر و مقایسه آنها با اندازهگیریهایی که با استفاده از یک روش علمی دقیقتر به دست آمدهاند. به عنوان مثال، یک آزمایشگاه میتواند رطوبت وزنی خاک را با استفاده از نمونههای یک مزرعه خاص چند بار در سال محاسبه کند و این اعداد برای کالیبره کردن حسگر استفاده شوند، به طوری که خوانش حسگر با رطوبت وزنی خاک تطبیق داده شود.
|
|
|
|
|
|

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

|
|
|
|
|
|
نمودار بالا یک خوانش ولتاژ از یک حسگر رطوبت خاک را نشان میدهد و با دنبال کردن آن تا خط روی نمودار، میتوان رطوبت واقعی خاک را محاسبه کرد.
|
|
|
|
|
|
این روش به کشاورز اجازه میدهد تنها چند اندازهگیری آزمایشگاهی برای یک مزرعه انجام دهد، سپس از دستگاههای IoT برای اندازهگیری رطوبت خاک استفاده کند - که زمان اندازهگیریها را به طور چشمگیری کاهش میدهد.
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🚀 چالش
|
|
|
|
|
|
حسگرهای رطوبت خاک مقاومتی و خازنی تفاوتهای زیادی دارند. این تفاوتها چیست و کدام نوع (در صورت وجود) برای یک کشاورز بهترین است؟ آیا این پاسخ بین کشورهای در حال توسعه و توسعهیافته تغییر میکند؟
|
|
|
|
|
|
## آزمون پس از درس
|
|
|
|
|
|
[آزمون پس از درس](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/12)
|
|
|
|
|
|
## مرور و مطالعه شخصی
|
|
|
|
|
|
درباره سختافزار و پروتکلهای استفاده شده توسط حسگرها و عملگرها مطالعه کنید:
|
|
|
|
|
|
* [صفحه ویکیپدیا GPIO](https://wikipedia.org/wiki/General-purpose_input/output)
|
|
|
* [صفحه ویکیپدیا UART](https://wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter)
|
|
|
* [صفحه ویکیپدیا SPI](https://wikipedia.org/wiki/Serial_Peripheral_Interface)
|
|
|
* [صفحه ویکیپدیا I<sup>2</sup>C](https://wikipedia.org/wiki/I²C)
|
|
|
* [صفحه ویکیپدیا Zigbee](https://wikipedia.org/wiki/Zigbee)
|
|
|
|
|
|
## تکلیف
|
|
|
|
|
|
[حسگر خود را کالیبره کنید](assignment.md)
|
|
|
|
|
|
**سلب مسئولیت**:
|
|
|
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه میشود از ترجمه حرفهای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم. |