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.
86 lines
6.9 KiB
86 lines
6.9 KiB
# ನಿಮ್ಮ ನೈಟ್ಲೈಟ್ ಅನ್ನು ಇಂಟರ್ನೆಟ್ ಮೂಲಕ ನಿಯಂತ್ರಿಸಿ - ವಿಯೋ ಟರ್ಮಿನಲ್
|
|
|
|
ಈ ಪಾಠದ ಭಾಗದಲ್ಲಿ, ನೀವು MQTT ಬ್ರೋಕರ್ನಿಂದ ನಿಮ್ಮ ವಿಯೋ ಟರ್ಮಿನಲ್ಗೆ ಕಳುಹಿಸಿರುವ ಆದೇಶಗಳಿಗೆ ಚಂದಾ ಹೊಂದಿಸುತ್ತೀರಿ.
|
|
|
|
## ಆದೇಶಗಳಿಗೆ ಚಂದಾ ಹೊಂದಿಸಿ
|
|
|
|
ಮುಂದಿನ ಹಂತವೆಂದರೆ MQTT ಬ್ರೋಕರ್ನಿಂದ ಕಳುಹಿಸಿರುವ ಆದೇಶಗಳಿಗೆ ಚಂದಾ ಹೊಂದಿಸಿ, ಅವುಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸು.
|
|
|
|
### ಕಾರ್ಯ
|
|
|
|
ಆದೇಶಗಳಿಗೆ ಚಂದಾ ಹೊಂದಿಸಿ.
|
|
|
|
1. ನಿಮ್ಮ ನೈಟ್ಲೈಟ್ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು VS ಕೋಡ್ನಲ್ಲಿ ತೆರೆಯಿರಿ.
|
|
|
|
1. `config.h` ಫೈಲ್ನ ಕೆಳಭಾಗಕ್ಕೆ ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಸೇರಿಸಿ, ಆದೇಶಗಳಿಗೆ ವಿಷಯದ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಗೊಳಿಸಲು:
|
|
|
|
```cpp
|
|
const string SERVER_COMMAND_TOPIC = ID + "/commands";
|
|
```
|
|
|
|
`SERVER_COMMAND_TOPIC` ಎನ್ನುವುದು ಉಪಕರಣವು ಆರೈಕೆ ಮಾಡಲು ಚಂದಾ ಹೊಂದಿಸುವ ವಿಷಯ.
|
|
|
|
1. MQTT ಕ್ಲೈಂಟ್ ಮರು ಸಂಪರ್ಕಗೊಂಡಾಗ ಆದೇಶ ವಿಷಯಕ್ಕೆ ಚಂದಾ ಹೊಂದಿಸುವಂತೆ `reconnectMQTTClient` ಕಾರ್ಯದ ಅಂತ್ಯದಲ್ಲಿ ಕೆಳಗಿನ ಸಾಲು ಸೇರಿಸಿ:
|
|
|
|
```cpp
|
|
client.subscribe(SERVER_COMMAND_TOPIC.c_str());
|
|
```
|
|
|
|
1. `reconnectMQTTClient` ಕಾರ್ಯದ ಕೆಳಗೆ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ.
|
|
|
|
```cpp
|
|
void clientCallback(char *topic, uint8_t *payload, unsigned int length)
|
|
{
|
|
char buff[length + 1];
|
|
for (int i = 0; i < length; i++)
|
|
{
|
|
buff[i] = (char)payload[i];
|
|
}
|
|
buff[length] = '\0';
|
|
|
|
Serial.print("Message received:");
|
|
Serial.println(buff);
|
|
|
|
DynamicJsonDocument doc(1024);
|
|
deserializeJson(doc, buff);
|
|
JsonObject obj = doc.as<JsonObject>();
|
|
|
|
bool led_on = obj["led_on"];
|
|
|
|
if (led_on)
|
|
digitalWrite(D0, HIGH);
|
|
else
|
|
digitalWrite(D0, LOW);
|
|
}
|
|
```
|
|
|
|
ಈ ಕಾರ್ಯವು MQTT ಕ್ಲೈಂಟ್ ಸರ್ವರ್ನಿಂದ ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸಿದಾಗ ಕರೆಮಾಡುವ ಕಾಲ್ಬ್ಯಾಕ್ ಆಗಿದ್ದು.
|
|
|
|
ಸಂದೇಶವು ಅಸಹಾಯಕ 8-ಬಿಟ್ ಪೂರ್ಣಾಂಕಗಳ ಆರೆ ಆಗಿ ಬರುತ್ತದೆ, ಅದನ್ನು ಪಾಠವಾಗಿ ಪರಿಗಣಿಸಲು ಅಕ್ಷರ ಆರೆಗೆ ಪರಿವರ್ತನೆ ಮಾಡಬೇಕಾಗುತ್ತದೆ.
|
|
|
|
ಸಂದೇಶದಲ್ಲಿ JSON ದಾಖಲೆ ಹೊಂದಿದ್ದು, ArduinoJson ಗ್ರಂಥಾಲಯ ಬಳಸಿ ಡೀಕೋಡ್ ಮಾಡಲ್ಪಡುತ್ತದೆ. JSON ದಾಖಲೆ中的 `led_on` ಗುಣಲಕ್ಷಣವನ್ನು ಓದಿ, ಅದರಿಂದ LED ಆನ್ ಅಥವಾ ಆಫ್ ಆಗುತ್ತದೆ.
|
|
|
|
1. `createMQTTClient` ಕಾರ್ಯಕ್ಕೆ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:
|
|
|
|
```cpp
|
|
client.setCallback(clientCallback);
|
|
```
|
|
|
|
ಈ ಕೋಡ್ನ `clientCallback` ಅನ್ನು MQTT ಬ್ರೋಕರ್ನಿಂದ ಸಂದೇಶ ಬಂದಾಗ ಕರೆಮಾಡುವ ಕಾಲ್ಬ್ಯಾಕ್ ಆಗಿ ಹೊಂದಿಸುತ್ತದೆ.
|
|
|
|
> 💁 `clientCallback` ಹ್ಯಾಂಡ್ಲರ್ ಎಲ್ಲಾ ಚಂದಾ ಹೊಂದಿಸಿದ ವಿಷಯಗಳಿಗೆ ಕರೆಮಾಡಲಾಗುತ್ತದೆ. ನಂತರ ನೀವು ಅನೇಕ ವಿಷಯಗಳನ್ನು ಕೇಳುವ ಕೋಡ್ ಬರೆಯುವಾಗ, ಸಂದೇಶ ಕಳುಹಿಸಿದ ವಿಷಯವನ್ನು `topic` ಪ್ಯಾರಾಮೀಟರ್ನಿಂದ ಪಡೆಯಬಹುದು.
|
|
|
|
1. ನಿಮ್ಮ ವಿಯೋ ಟರ್ಮಿನಲ್ಗೆ ಕೋಡ್ ಅಪ್ಲೋಡ್ ಮಾಡಿ, ಮತ್ತು ಸೀರಿಯಲ್ ಮಾನಿಟರ್ ಬಳಸಿ MQTT ಬ್ರೋಕರ್ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತಿರುವ ಬೆಳಕು ಮಟ್ಟಗಳನ್ನು ನೋಡಿ.
|
|
|
|
1. ನಿಮ್ಮ ಭೌತಿಕ ಅಥವಾ ಕಾಂಪ್ಯೂಟರ್ ಉಪಕರಣದ ಬೆಳಕು ಮಟ್ಟಗಳನ್ನು ಸರಿಹೊಂದಿಸಿ. ಸಂದೇಶಗಳು ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿರುವುದು ಮತ್ತು ಆದೇಶಗಳು ಟರ್ಮಿನಲ್ನಲ್ಲಿ ಕಳುಹಿಸಲಾಗುತ್ತಿರುವುದು ಮತ್ತು ಬೆಳಕು ಮಟ್ಟದ ಆಧಾರದಲ್ಲಿ LED ಆನ್/ಆಫ್ ಆಗುತ್ತಿರುವುದನ್ನು ಕಾಣಬಹುದು.
|
|
|
|
> 💁 ಈ ಕೋಡ್ ಅನ್ನು ನೀವು [code-commands/wio-terminal](../../../../../1-getting-started/lessons/4-connect-internet/code-commands/wio-terminal) ಫೋಲ್ಡರ್ನಲ್ಲಿ ಕಂಡುಹಿಡಿಯಬಹುದು.
|
|
|
|
😀 ನೀವು ಯಶಸ್ವಿಯಾಗಿ ನಿಮ್ಮ ಉಪಕರಣವನ್ನು MQTT ಬ್ರೋಕರ್ನಿಂದ ಆದೇಶಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು ಕೋಡ್ ಮಾಡಿದ್ದೀರಿ.
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**ಅಸ್ವೀಕಾರಿಕೆ**:
|
|
ಈದಾಖಲೆಯನ್ನು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ದತೆಗೆ ಪ್ರಯತ್ನಿಸುವುದಾಗಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳಿರಬಹದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿ ಇರುವ ಮೂಲ ದಾಖಲೆ ಅತ್ಯಂತ đáng ವೀಕ್ಷಣೀಯ ಮೂಲವಾಗಿದೆ. ಪ್ರಮುಖ ಮಾಹಿತಿ ಗಳಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಸಲಹೆ ನೀಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದವನ್ನು ಬಳಸುವುದರಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪುಸಮಜಿಕೆಗಳು ಅಥವಾ ತಪ್ಪುಮಾನಗಳಿಂದ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |