|
|
# ഇന്റർനെറ്റിലൂടെ നിങ്ങളുടെ നൈറ്റ്ലൈറ്റിനെ നിയന്ത്രിക്കുക - વર્ચ്വൽ IoT ഹാർഡ്വെയർ এবং റാസ്പ്ബെറി പൈ
|
|
|
|
|
|
IoT ഉപകരണം *test.mosquitto.org* എന്ന MQTT ബ്രോക്കറുമായി നടത്തുന്ന ടെലിമെട്രി മൂല്യങ്ങൾ പ്രകാശ സെൻസർ വായനയോടെ അയക്കാനും LED നിയന്ത്രിക്കാൻ കമാൻഡുകൾ സ്വീകരിക്കാനും MQTT ഉപയോഗിച്ച് കോഡ് ചെയ്യേണ്ടതാണ്.
|
|
|
|
|
|
പാഠഭാഗത്തിന്റെ ഈ ഭാഗത്തിൽ, നിങ്ങൾ നിങ്ങളുടെ റാസ്പ്ബെറി പൈ അല്ലെങ്കിൽ വർച്വൽ IoT ഉപകരണം MQTT ബ്രോക്കറുമായി ബന്ധിപ്പിക്കും.
|
|
|
|
|
|
## MQTT ക്ലയന്റ് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക
|
|
|
|
|
|
MQTT ബ്രോക്കറുമായി ആശയവിനിമയം നടത്താൻ, നിങ്ങളുടെ പെയ്ക്കേജിൽ അല്ലെങ്കിൽ നിങ്ങൾ വർച്വൽ ഉപകരണം ഉപയോഗിക്കുന്നെങ്കിൽ അതിന്റെ വെർച്വൽ പരിതസ്ഥിതിയിൽ MQTT ലൈബ്രറി പൈപ്പ് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്.
|
|
|
|
|
|
### დავალება
|
|
|
|
|
|
പൈപ്പ് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക
|
|
|
|
|
|
1. VS കോഡിൽ നൈറ്റ്ലൈറ്റ പ്രോജെക്ട് തുറക്കുക.
|
|
|
|
|
|
1. നിങ്ങൾ ഒരു വർച്വൽ IoT ഉപകരണം ഉപയോഗിക്കുന്നുവെങ്കിൽ, ടെർമിനലിൽ വർച്വൽ പരിതസ്ഥിതി പ്രവർത്തിക്കുകയാണെന്ന് ഉറപ്പു വരുത്തുക. റാസ്പ്ബെറി പൈ ഉപയോഗിച്ചാൽ വയർച്വൽ പരിതസ്ഥിതി ഉപയോഗിക്കേണ്ടതില്ല.
|
|
|
|
|
|
1. MQTT പൈപ്പ് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യാൻ താഴെ കാണുന്ന കമാൻഡ് റൺ ചെയ്യുക:
|
|
|
|
|
|
```sh
|
|
|
pip3 install paho-mqtt
|
|
|
```
|
|
|
|
|
|
## ഉപകരണം കോഡ് ചെയ്യുക
|
|
|
|
|
|
ഉപകരണം കോഡ് ചെയ്യാൻ തയ്യാറാണ്.
|
|
|
|
|
|
### დავალება
|
|
|
|
|
|
ഉപകരണ കോഡ് എഴുതുക.
|
|
|
|
|
|
1. `app.py` ഫയലിന്റെ മുകളിലായി താഴെ കാണുന്ന ഇമ്പോർട്ട് ചേർക്കുക:
|
|
|
|
|
|
```python
|
|
|
import paho.mqtt.client as mqtt
|
|
|
```
|
|
|
|
|
|
`paho.mqtt.client` ലൈബ്രറി നിങ്ങളുടെ ആപ്പിന് MQTT വഴിയുള്ള ആശയവിനിമയം സാധ്യമാക്കുന്നു.
|
|
|
|
|
|
1. ലൈറ്റ് സെൻസർ ۽ LED നിർവചനങ്ങളുടെ ശേഷം താഴെ കാണുന്ന കോഡ് ചേർക്കുക:
|
|
|
|
|
|
```python
|
|
|
id = '<ID>'
|
|
|
|
|
|
client_name = id + 'nightlight_client'
|
|
|
```
|
|
|
|
|
|
`<ID>` എന്നിടത്ത് ഈ ഉപകരണ ക്ലയന്റിന്റെ പേര് ആയ പ്രത്യേക ഒരു ഐഡി ഇടുക, പിന്നീട് ഈ ഉപകരണം പ്രസിദ്ധീകരിക്കുന്ന തോപികുകളും സബ്സ്ക്രൈബ് ചെയ്യുന്ന തോപികുകളും ഇതുപയോഗിച്ച് വിളിക്കുന്നു. *test.mosquitto.org* ബ്രോക്കർ പൊതു ആണെന്നും മറ്റു വിദ്യാർത്ഥികളും ഈ അസൈൻമെൻറിൽ ജോലി ചെയ്തുകൊണ്ടിരിക്കുന്നതും ഉൾപ്പെടുന്നു. ഒരു വ്യത്യസ്ത MQTT ക്ലയന്റ് പേരും തോപിക് പേരും വയ്ക്കുന്നതിലൂടെ നിങ്ങളുടെ കോഡ് മറ്റുള്ളവരുടെ കോഡുമായി പടിയിറങ്ങാതെ പ്രവർത്തിക്കും. ഈ ഐഡി പിന്നീട് സერვർ കോഡ് നിർമ്മിക്കുന്നപ്പോൾ ആവശ്യമായിരിക്കും.
|
|
|
|
|
|
> 💁 [GUIDGen](https://www.guidgen.com) പോലുള്ള ഒരു വെബ്സൈറ്റ് ഉപയോഗിച്ച് വ്യത്യസ്തമായ ഒരു ഐഡി സൃഷ്ടിക്കാവുന്നതാണ്.
|
|
|
|
|
|
`client_name` ബ്രോക്കറിൽ ഈ MQTT ക്ലയന്റിനുള്ള വ്യത്യസ്തമായ പേര് ആണ്.
|
|
|
|
|
|
1. MQTT ക്ലയന്റ് объsonുക്ക് സൃഷ്ടിച്ച് MQTT ബ്രോക്കറുമായി ബന്ധിപ്പിക്കാൻ താഴെ കാണുന്ന കോഡ് ഈ പുതുതായി ചേർത്ത കോഡിന്റെ കീഴിൽ ചേർക്കുക:
|
|
|
|
|
|
```python
|
|
|
mqtt_client = mqtt.Client(client_name)
|
|
|
mqtt_client.connect('test.mosquitto.org')
|
|
|
|
|
|
mqtt_client.loop_start()
|
|
|
|
|
|
print("MQTT connected!")
|
|
|
```
|
|
|
|
|
|
ഈ കോഡ് ക്ലയന്റ് объsonൂക് സൃഷ്ടിക്കുന്നു, പൊതു MQTT ബ്രോക്കറുമായി ബന്ധിപ്പിക്കുന്നു, കൂടാതെ ബാക്ക്ഗ്രൗണ്ട് ത്രെഡിൽ പ്രവർത്തിക്കുന്ന പ്രോസസ്സിംഗ് ലൂപ്പ് ആരംഭിക്കുകയും സബ്സ്ക്രൈബ് ചെയ്ത തോപികുകളിലെ സന്ദേശങ്ങൾ കേൾക്കുകയും ചെയ്യും.
|
|
|
|
|
|
1. അസൈൻമെന്റെ മുൻപത് ഭാഗം പോലെ കോഡ് റൺ ചെയ്യുക. നിങ്ങൾ ഒരു വർച്വൽ IoT ഉപകരണം ഉപയോഗിക്കുന്നുവെങ്കിൽ, കൌണ്ടർഫിറ്റ് ആപ്പ് പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക, പ്രകാശ സെൻസറും LED-ഉം ശരിയായ പിനുകളിൽ സൃഷ്ടിച്ചു തീർന്നിട്ടുണ്ട്.
|
|
|
|
|
|
```output
|
|
|
(.venv) ➜ nightlight python app.py
|
|
|
MQTT connected!
|
|
|
Light level: 0
|
|
|
Light level: 0
|
|
|
```
|
|
|
|
|
|
> 💁 ഈ കോഡ് നിങ്ങൾക്ക് [code-mqtt/virtual-device](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/virtual-device) ഫോൾഡറിലും [code-mqtt/pi](../../../../../1-getting-started/lessons/4-connect-internet/code-mqtt/pi) ഫോൾഡറിലും കണ്ടെത്താം.
|
|
|
|
|
|
😀 നിങ്ങൾ വിജയകരമായി നിങ്ങളുടെ ഉപകരണം ഒരു MQTT ബ്രോക്കറുമായി ബന്ധിപ്പിച്ചു.
|
|
|
|
|
|
---
|
|
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
|
**ഡിസ്ക്ലെയിമർ**:
|
|
|
ഈ പ്രമാണം AI വിവർത്തന സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർത്തനം ചെയ്തതാണ്. ഞങ്ങൾ കൃത്യത ഉറപ്പാക്കാൻ പരിശ്രമിച്ചുവെങ്കിലും, ഓട്ടോമേറ്റഡ് വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ അച്ചടക്കമാറ്റങ്ങൾ ഉണ്ടാകാം എന്ന് ദയവായി ശ്രദ്ധിക്കുക. മാതൃഭാഷയിലുള്ള മുള്പ്പുരയ്ക്കുള്ള പ്രമാണം അതിനുള്ള ഔദ്യോഗിക ഉറവിടമായി കണക്കാക്കേണ്ടതാണ്. നിർണംകമായ വിവരങ്ങൾക്ക് പ്രൊഫഷണൽ മനുഷ്യ വിവർത്തനം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ വിവർത്തനത്തിന്റെ ഉപയോഗത്തിൽ നിന്നുണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾക്കോ വ്യാഖ്യാന പിശകുകൾക്കോ ഞങ്ങൾ ഉത്തരവാദിയല്ല.
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |