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.
60 lines
6.7 KiB
60 lines
6.7 KiB
# ఇన్టర్నెట్ ద్వారా మీ నైట్లైట్ని నియంత్రించండి - వర్చువల్ IoT హార్డ్వేర్ మరియు రాస్ప్బెర్రి పై
|
|
|
|
పాఠం యొక్క ఈ భాగంలో, మీరు MQTT బ్రోకు నుండి మీ రాస్ప్బెర్రి పై లేదా వర్చువల్ IoT డివైస్కు పంపబడే ఆదేశాలకు సభ్యత్వం ఇవ్వబోతున్నారు.
|
|
|
|
## ఆదేశాలకు సభ్యత్వం పొందండి
|
|
|
|
తదుపరి దశ MQTT బ్రోకు నుండి పంపబడే ఆదేశాలకు సభ్యత్వం పొందడం మరియు వాటికి స్పందించడం.
|
|
|
|
### పని
|
|
|
|
ఆదేశాలకు సభ్యత్వం పొందండి.
|
|
|
|
1. VS కోడ్లో నైట్లైట్ ప్రాజెక్ట్ను తెరవండి.
|
|
|
|
1. మీరు వర్చువల్ IoT డివైస్ను ఉపయోగిస్తుంటే, టెర్మినల్ వర్చువల్ వాతావరణం నడుస్తున్నదిగా నిర్ధారించండి. మీరు రాస్ప్బెర్రి పై ఉపయోగిస్తుంటే, వర్చువల్ వాతావరణం ఉపయోగించరు.
|
|
|
|
1. `client_telemetry_topic` నిర్వచనాల తర్వాత క్రింది కోడ్ను జతచేయండి:
|
|
|
|
```python
|
|
server_command_topic = id + '/commands'
|
|
```
|
|
|
|
`server_command_topic` అనేది డివైస్ ఆ LED ఆదేశాలు అందుకోవడానికి సభ్యత్వం పొందే MQTT టాపిక్.
|
|
|
|
1. `mqtt_client.loop_start()` లైనుకు మించి, ప్రధాన లూప్కు కింద క్రింది కోడ్ను జతచేయండి:
|
|
|
|
```python
|
|
def handle_command(client, userdata, message):
|
|
payload = json.loads(message.payload.decode())
|
|
print("Message received:", payload)
|
|
|
|
if payload['led_on']:
|
|
led.on()
|
|
else:
|
|
led.off()
|
|
|
|
mqtt_client.subscribe(server_command_topic)
|
|
mqtt_client.on_message = handle_command
|
|
```
|
|
|
|
ఈ కోడ్ ఒక ఫంక్షన్ `handle_command` ని నిర్వచిస్తుంది, ఇది మెసేజ్ని JSON డాక్యుమెంట్గా చదివి `led_on` ప్రాపర్టీ విలువ కోసం చూస్తుంది. అది `True` గా సెట్ ఉన్నట్లయితే LED ఆన్ అవుతుంది, లేదైతే ఆఫ్ అవుతుంది.
|
|
|
|
MQTT క్లయింట్ సర్వర్ మెసేజులు పంపే టాపిక్పై సభ్యత్వం పొందుతుంది మరియు మెసేజ్ అందినప్పుడు `handle_command` ఫంక్షన్ పిలవబడుతుంది.
|
|
|
|
> 💁 `on_message` హ్యాండ్లర్ సభ్యత్వం పొందిన అన్ని టాపిక్లకు పిలవబడుతుంది. మీరు భవిష్యత్తులో బహుళ టాపిక్లను వినిపించే కోడ్ రాయకపోతే, మెసేజ్ పంపబడిన టాపిక్ను `message` ఆబ్జెక్ట్ నుండి పొందవచ్చు, అది హ్యాండ్లర్ ఫంక్షన్కు పాసవుతుంది.
|
|
|
|
1. గత భాగం నుండి కోడ్ను నడిపినట్లుగానే ఈ కోడ్ని నడిపించండి. మీరు వర్చువల్ IoT డివైస్ ఉపయోగిస్తుంటే, కౌంటర్ఫిట్ యాప్ నడుస్తోంది మరియు లైట్ సెన్సార్ మరియు LED సరైన పిన్లపై సృష్టించబడ్డాయి అని నిర్ధారించండి.
|
|
|
|
1. మీ భౌతిక లేదా వర్చువల్ డివైస్ ద్వారా డిటెక్ట్ అయ్యే లైట్ స్థాయిలను సర్దుబాటు చేయండి. మెసేజులు అందుతున్నాయి మరియు ఆదేశాలు పంపబడుతున్నాయి అని టెర్మినల్లో రాయబడతాయి. లైట్ స్థాయి ఆధారంగా LED ఆన్ మరియు ఆఫ్ అవుతుంది.
|
|
|
|
> 💁 మీరు ఈ కోడ్ని [code-commands/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/virtual-device) ఫోల్డర్ లేదా [code-commands/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/pi) ఫోల్డర్లో పొందొచ్చు.
|
|
|
|
😀 మీరు విజయవంతంగా మీ డివైస్ని MQTT బ్రోకు నుండి వచ్చే ఆదేశాలకు స్పందించేలా కోడ్ చేశారు.
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**తగ్గింపు నోటీసు**:
|
|
ఈ డాక్యుమెంట్ను AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వానికి ప్రయత్నిస్తామని ఉన్నప్పటికీ, ఆటోమేటెడ్ అనువాదాలలో పొరపాట్లు లేదా తప్పుడు పదొచ్చులు ఉండి ఉండొచ్చు. మౌలిక భాషలో ఉన్న అసలు డాక్యుమెంట్ను అధికారిక మూలంలా పరిగణించాలి. ముఖ్యమైన సమాచారం కోసం, వ్యావసాయిక మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం వాడుక కారణంగా ఏదైనా అపర్థం లేదా తప్పుదోవపోవడంపై మేము బాధ్యత వహించము.
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |