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
7.5 KiB
60 lines
7.5 KiB
# ഇന്റർനെറ്റ üzerinden നൈറ്റ്ലൈറ്റ് നിയന്ത്രിക്കുക - വാചക IoT ഹാർഡ്വെയർ மற்றும் റാസ്ബെറി പൈ
|
|
|
|
പാഠത്തിന്റെ ഈ ഭാഗത്തിൽ, നിങ്ങൾ MQTT ബ്രോക്കറിൽ നിന്നുള്ള കമാൻഡുകൾ നിങ്ങളുടെ റാസ്ബെറി പൈയിലേക്കോ വാചക IoT ഉപകരണം വഴിയോ ലഭിക്കുന്നതിന് സബ്സ്ക്രൈബ് ചെയ്യും.
|
|
|
|
## കമാൻഡുകൾക്ക് സബ്സ്ക്രൈബ് ചെയ്യുക
|
|
|
|
അടുത്തപടി MQTT ബ്രോക്കറിൽ നിന്നും അയക്കുന്ന കമാൻഡുകൾക്ക് സബ്സ്ക്രൈബ് ചെയ്ത് അവയ്ക്ക് പ്രതികരിക്കുക എന്നതാണ്.
|
|
|
|
### ടാസ്ക്
|
|
|
|
കമാൻഡുകൾക്ക് സബ്സ്ക്രൈബ് ചെയ്യുക.
|
|
|
|
1. VS കോഡിൽ നൈറ്റ്ലൈറ്റ് പ്രോജക്റ്റ് തുറക്കുക.
|
|
|
|
1. നിങ്ങൾ വാചക IoT ഉപകരണം ഉപയോഗിക്കുന്നുവെങ്കിൽ, ടെർമിനൽ വാചക അന്തർദ്ദേശീയ പരിസ്ഥിതിയിൽ പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക. റാസ്ബെറി പൈ ഉപയോഗിച്ചാൽ, നിങ്ങൾക്ക് വാചക അന്തർദ്ദേശീയ പരിസ്ഥിതി ആവശ്യമില്ല.
|
|
|
|
1. `client_telemetry_topic` നിർവചനത്തിന് ശേഷം താഴെ കാണുന്ന കോഡ് ചേർക്കുക:
|
|
|
|
```python
|
|
server_command_topic = id + '/commands'
|
|
```
|
|
|
|
`server_command_topic` എന്നത് MQTT വിഷയമാണ്; ഉപകരണം LED കമാൻഡുകൾ സ്വീകരിക്കാൻ ഇടുങ്ങുന്നത്.
|
|
|
|
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 ഉപകരണം ഉപയോഗിച്ചാൽ, CounterFit ആപ്പ് പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുകയും ലൈറ്റ് സെൻസർ, 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 -->
|
|
**അസരിപ്പാട്**:
|
|
ഈ രേഖ ഈ ഐഎ ട്രാൻസ്ലേഷൻ സേവനമായ [കോ-ഓപ്പ് ട്രാൻസ്ലേറ്റർ](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. നിഗൂಢതയിലേക്ക് ശ്രമിച്ചെങ്കിലും, യാന്ത്രിക തർജ്ജമകളിൽ അപൂർവമായ ഭാഷാപിഴവുകൾ ഉണ്ടാകാമെന്ന് ശ്രദ്ധിക്കുക. മൗലിക രേഖ അതിന്റെ ജന്മഭാഷയിലുള്ള രൂപം നിഗൂഢമായ സ്രോതസായി കണക്കാക്കപ്പെടണം. നിർണായക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മാനവ ട്രാൻസ്ലേഷൻ നിർദ്ദേശിക്കുന്നു. ഈ തർജ്ജമ ഉപയോഗത്തിൽ നിന്നുണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾക്കോ ভুলവിവർത്തനങ്ങൾക്കോ ഞങ്ങൾ ഉത്തരവാദികളല്ല.
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |