|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "4efc74299e19f5d08f2f3f34451a11ba",
|
|
|
"translation_date": "2025-08-25T21:18:38+00:00",
|
|
|
"source_file": "2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md",
|
|
|
"language_code": "fa"
|
|
|
}
|
|
|
-->
|
|
|
# انتشار دما - سختافزار مجازی IoT و رزبری پای
|
|
|
|
|
|
در این بخش از درس، شما مقادیر دمایی که توسط رزبری پای یا دستگاه مجازی IoT شناسایی شدهاند را از طریق MQTT منتشر میکنید تا بعداً بتوان از آنها برای محاسبه GDD استفاده کرد.
|
|
|
|
|
|
## انتشار دما
|
|
|
|
|
|
پس از خواندن دما، میتوان آن را از طریق MQTT به کدی که نقش 'سرور' را دارد ارسال کرد تا مقادیر را بخواند و ذخیره کند و آماده استفاده برای محاسبه GDD باشد.
|
|
|
|
|
|
### وظیفه - انتشار دما
|
|
|
|
|
|
دستگاه را برنامهریزی کنید تا دادههای دما را منتشر کند.
|
|
|
|
|
|
1. اگر پروژه اپلیکیشن `temperature-sensor` باز نیست، آن را باز کنید.
|
|
|
|
|
|
1. مراحل انجام شده در درس ۴ برای اتصال به MQTT و ارسال دادههای تلهمتری را تکرار کنید. شما از همان بروکر عمومی Mosquitto استفاده خواهید کرد.
|
|
|
|
|
|
مراحل این کار عبارتند از:
|
|
|
|
|
|
- افزودن بسته pip مربوط به MQTT
|
|
|
- افزودن کد برای اتصال به بروکر MQTT
|
|
|
- افزودن کد برای انتشار دادههای تلهمتری
|
|
|
|
|
|
> ⚠️ به [دستورالعملهای اتصال به MQTT](../../../1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md) و [دستورالعملهای ارسال تلهمتری](../../../1-getting-started/lessons/4-connect-internet/single-board-computer-telemetry.md) از درس ۴ در صورت نیاز مراجعه کنید.
|
|
|
|
|
|
1. مطمئن شوید که `client_name` نام این پروژه را منعکس میکند:
|
|
|
|
|
|
```python
|
|
|
client_name = id + 'temperature_sensor_client'
|
|
|
```
|
|
|
|
|
|
1. برای تلهمتری، به جای ارسال مقدار نور، مقدار دمای خوانده شده از سنسور DHT را در یک ویژگی از سند JSON به نام `temperature` ارسال کنید:
|
|
|
|
|
|
```python
|
|
|
_, temp = sensor.read()
|
|
|
telemetry = json.dumps({'temperature' : temp})
|
|
|
```
|
|
|
|
|
|
1. نیازی نیست مقدار دما خیلی زود به زود خوانده شود - در مدت زمان کوتاه تغییر زیادی نمیکند، بنابراین `time.sleep` را به ۱۰ دقیقه تنظیم کنید:
|
|
|
|
|
|
```cpp
|
|
|
time.sleep(10 * 60);
|
|
|
```
|
|
|
|
|
|
> 💁 تابع `sleep` زمان را به ثانیه میگیرد، بنابراین برای خواندن آسانتر، مقدار به صورت نتیجه یک محاسبه ارسال میشود. ۶۰ ثانیه در یک دقیقه وجود دارد، بنابراین ۱۰ ضربدر (۶۰ ثانیه در یک دقیقه) تأخیر ۱۰ دقیقهای ایجاد میکند.
|
|
|
|
|
|
1. کد را به همان روشی که کد بخش قبلی تکلیف را اجرا کردید، اجرا کنید. اگر از یک دستگاه مجازی IoT استفاده میکنید، مطمئن شوید که اپلیکیشن CounterFit در حال اجرا است و سنسورهای رطوبت و دما روی پینهای صحیح ایجاد شدهاند.
|
|
|
|
|
|
```output
|
|
|
pi@raspberrypi:~/temperature-sensor $ python3 app.py
|
|
|
MQTT connected!
|
|
|
Sending telemetry {"temperature": 25}
|
|
|
Sending telemetry {"temperature": 25}
|
|
|
```
|
|
|
|
|
|
> 💁 شما میتوانید این کد را در پوشه [code-publish-temperature/virtual-device](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/virtual-device) یا پوشه [code-publish-temperature/pi](../../../../../2-farm/lessons/1-predict-plant-growth/code-publish-temperature/pi) پیدا کنید.
|
|
|
|
|
|
😀 شما با موفقیت دما را به عنوان تلهمتری از دستگاه خود منتشر کردید.
|
|
|
|
|
|
**سلب مسئولیت**:
|
|
|
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه میشود از ترجمه حرفهای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم. |