You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/bg/2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-...

71 lines
5.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "4efc74299e19f5d08f2f3f34451a11ba",
"translation_date": "2025-08-28T11:33:45+00:00",
"source_file": "2-farm/lessons/1-predict-plant-growth/single-board-computer-temp-publish.md",
"language_code": "bg"
}
-->
# Публикуване на температура - Виртуален IoT хардуер и Raspberry Pi
В тази част от урока ще публикувате стойностите на температурата, засечени от Raspberry Pi или Виртуалното IoT устройство чрез MQTT, за да могат по-късно да се използват за изчисляване на GDD.
## Публикуване на температурата
След като температурата бъде прочетена, тя може да бъде публикувана чрез MQTT към някакъв 'сървърен' код, който ще прочете стойностите и ще ги съхрани, готови за използване при изчисляване на GDD.
### Задача - публикуване на температурата
Програмирайте устройството да публикува данните за температурата.
1. Отворете проекта на приложението `temperature-sensor`, ако вече не е отворен.
1. Повторете стъпките, които направихте в урок 4, за да се свържете с 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) от урок 4, ако е необходимо.
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` на 10 минути:
```cpp
time.sleep(10 * 60);
```
> 💁 Функцията `sleep` приема времето в секунди, така че за по-лесно четене стойността се предава като резултат от изчисление. 60 секунди в минута, така че 10 x (60 секунди в минута) дава 10-минутно забавяне.
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).
😀 Успешно публикувахте температурата като телеметрия от вашето устройство.
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.