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/kn/1-getting-started/lessons/4-connect-internet/README.md

62 KiB

ನಿಮ್ಮ սարಣಿಗೆ ಇಂಟರ್‌ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ

ಈ ಪಾಠದ ಬಿಂದುಗಟುವಿನ ಸ್ಕೆಚ್‌ನೋಟ್ ಅವಲೋಕನ

ನಿತ್ಯ ನರಸಿಂಹನ್ ರವರ ಸ್ಕೆಚ್‌ನೋಟ್. ದೊಡ್ಡ ಆವರಣಕ್ಕಾಗಿ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.

ಈ ಪಾಠವನ್ನು Hello IoT ಸರಣಿಯಿಂದ Microsoft Reactor ನಿಂದ ಕಲಿಸಲಾಯಿತು. ಪಾಠವನ್ನು 2 ವೀಡಿಯೋಗಳಾಗಿ ಕಲಿಸಲಾಯಿತು - 1 ಗಂಟೆಯ ಪಾಠ ಮತ್ತು 1 ಗಂಟೆಯ ಆಫೀಸ್ ಗಂಟೆ, ಪಾಠದ ಭಾಗವನ್ನು ಆಳವಾಗಿ ತಲುಪಲು ಮತ್ತು ಪ್ರಶ್ನೆಗಳಿಗೆ ಉತ್ತರಿಸಲು.

ಪಾಠ 4: ನಿಮ್ಮ ಡಿವೈಸ್ ಅನ್ನು ಇಂಟರ್‌ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ

ಪಾಠ 4: ನಿಮ್ಮ ಡಿವೈಸ್ ಅನ್ನು ಇಂಟರ್‌ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ - ಆಫೀಸ್ ಗಂಟೆಗಳು

🎥 ವೀಡಿಯೋಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಮೇಲಿನ ಚಿತ್ರಗಳನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ

ಪ್ರೀ- ನೀಡಿದ ಪ್ರಶ್ನಾವಳಿ

ಪ್ರೀ- ನೇಡಿಯ ತಪಾಸಣೆ

ಪರಿಚಯ

IoT ನಲ್ಲಿ I ಅಂದರೆ ಇಂಟರ್‌ನೆಟ್ - ಕ್ಲೌಡ್ ಸಂಪರ್ಕ ಮತ್ತು ಸೇವೆಗಳು, ಇವು ಬಹಳ Many IoT ಸಾಧನಗಳ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಾಧ್ಯಮಾಡಿಕೊಡುವವು, ಜೋಡಿಸಲಾದ ಸೆನ್ಸರ್‌ಗಳಿಂದ ಅಳತೆಗಳನ್ನು ಸಂಗ್ರಹಿಸುವುದರಿಂದ, ಹೆಚ್ಚುವರಿ ಆಡಳಿತಾಶಗಳು ಅಳವಡಿಸಲು ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುವವರೆಗೆ. IoT ಸಾಧನಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಒಂದು ಕ್ಲೌಡ್ IoT ಸೇವೆಗೆ ಮಾನಕ ಸಂವಹನ ಪ್ರೋಟೋಕಾಲ್ ಬಳಸಿಕೊಂಡು ಸಂಪರ್ಕಿಸುतेವೆ, ಮತ್ತು ಆ ಸೇವೆ ನಿಮ್ಮ ಇತರ IoT ಅನ್ವಯಕ್ಕೆ ಸಂಪರ್ಕಿತವಾಗಿರುತ್ತದೆ, AI ಸೇವೆಗಳಿಂದ ನಿಮ್ಮ ಡೇಟಾ ಸುತ್ತಲೂ ಸೂಕ್ತ ನಿರ್ಣಯಗಳಿಗೆ, ನಿಯಂತ್ರಣ ಅಥವಾ ವರದಿಕೆಗೆ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳವರೆಗೆ.

🎓 ಸೆನ್ಸರ್‌ಗಳಿಂದ ಸಂಗ್ರಹಿಸಲಾದ ಮತ್ತು ಕ್ಲೌಡ್‌ಗೆ ಕಳುಹಿಸಲಾದ ಡೇಟಾವನ್ನು ಟೆಲೀಮೆಟ್ರಿ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.

IoT ಸಾಧನಗಳು ಕ್ಲೌಡ್‌ನಿಂದ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸಬಹುದು. ಸಾಮಾನ್ಯವಾಗಿ, ಸಂದೇಶಗಳಲ್ಲಿ ಆದೇಶಗಳು ಇರುತ್ತವೆ - ಅಂದ್ರೆ ಆಂತರಿಕವಾಗಿ (ಮರುಪ್ರಾರಂಭ ಅಥವಾ ಫರ್ಮ್ವೇರ್ ಅಪ್‌ಡೇಟ್) ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಸೂಚನೆಗಳು, ಅಥವಾ ಅಕ್ಟುವೇಟರ್ ಬಳಸಿ (ದೀಪವನ್ನು ಹಚ್ಚುವುದು).

ಈ ಪಾಠದಲ್ಲಿ IoT ಸಾಧನಗಳು ಕ್ಲೌಡ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಬಳಸಬಹುದಾದ ವಿಷಯ ಸಂವಹನ ಪ್ರೋಟೋಕಾಲ್‌ಗಳನ್ನು ಪರಿಚಯಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅವರು ಕಳುಹಿಸಬಹುದಾದ ಅಥವಾ ಸ್ವೀಕರಿಸಬಹುದಾದ ಡೇಟಾ ಪ್ರಕಾರಗಳನ್ನು. ನೀವು ಅವರನ್ನಿಬ್ಬರನ್ನೂ ಅನುಭವ ಮಾಡುತ್ತಿರಿ, ನಿಮ್ಮ ನೈಟ್‌ಲೈಟ್‌ಗೆ ಇಂಟರ್‌ನೆಟ್ ನಿಯಂತ್ರಣ ಸೇರಿಸುವ ಮೂಲಕ, LED ನಿಯಂತ್ರಣ ಲಾಜಿಕ್ ಅನ್ನು 'ಸರ್ವರ್' ಕೋಡ್‌ಗೆ ಸ್ಥಳೀಯವಾಗಿ ಚಲಿಸುವಂತೆ ಮಾಡಿ.

ಈ ಪಾಠದಲ್ಲಿ ನಾವು ಒಳಗೊಂಡಿದ್ದೇವೆ:

ಸಂವಹನ ಪ್ರೋಟೋಕಾಲ್ಸ್

ಇಂಟರ್‌ನೆಟ್‌ನೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಲು IoT ಸಾಧನಗಳು ಬಳಸುವ ಹಲವಾರು ಜನಪ್ರಿಯ ಸಂವಹನ ಪ್ರೋಟೋಕಾಲ್ಗಳು ಇವೆ. ಜನಪ್ರಿಯವುಗಳು ಕೆಲವು ಬbrokerರ ಮೂಲಕ ಪ್ರಕಟ/ಚಂದಾ ಸಂದೇಶಗಳ ಸುತ್ತುವರೆಗೆ ಆಧಾರಿತವಾಗಿವೆ. IoT ಸಾಧನಗಳು brokerಗೆ ಸಂಪರ್ಕಿಸಿ ಟೆಲೀಮೆಟ್ರಿಯನ್ನು ಪ್ರಕಟಿಸುವುದು ಮತ್ತು ಆದೇಶಗಳಿಗೆ ಚಂದಾ ನೀಡುವುದು. ಕ್ಲೌಡ್ ಸೇವೆಗಳು ಸಹ brokerಗೆ ಸಂಪರ್ಕಿಸಿ ಎಲ್ಲಾ ಟೆಲೀಮೆಟ್ರಿ ಸಂದೇಶಗಳಿಗೆ ಚಂದಾ ನೀಡುತ್ತವೆ ಮತ್ತು ప్రత్యేక ಸಾಧನಗಳಿಗೆ ಅಥವಾ ಸಾಧನ ಗುಂಪಿಗೆ ಆದೇಶಗಳನ್ನು ಪ್ರಕಟಿಸುತ್ತವೆ.

IoT ಸಾಧನಗಳು brokerಗೆ ಸಂಪರ್ಕಿಸಿ ಟೆಲಿಮೆಟ್ರಿಯನ್ನು ಪ್ರಕಟಿಸುತ್ತವೆ ಮತ್ತು ಆದೇಶಗಳಿಗೆ ಚಂದಾ ನೀಡುತ್ತವೆ. ಕ್ಲೌಡ್ ಸೇವೆಗಳು brokerಗೆ ಸಂಪರ್ಕಿಸಿ ಎಲ್ಲಾ ಟೆಲೀಮೆಟ್ರಿಗೆ ಚಂದಾ ನೀಡುತ್ತವೆ ಮತ್ತು ವಿಶೇಷ ಸಾಧನಗಳಿಗೆ ಆದೇಶಗಳನ್ನು ಕಳುಹಿಸುತ್ತವೆ.

MQTT IoT ಸಾಧನಗಳಿಗೆ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಸಂವಹನ ಪ್ರೋಟೋಕಾಲ್ ಆಗಿದ್ದು ಈ ಪಾಠದಲ್ಲಿ ಚರ್ಚಿಸಲಾಗುತ್ತದೆ. ಇತರೆ ಪ್ರೋಟೋಕಾಲ್ಗಳಲ್ಲಿ AMQP ಮತ್ತು HTTP/HTTPS ಸೇರಿವೆ.

ಸಂದೇಶ ಕ್ಯೂಯಿಂಗ್ ಟೆಲೀಮೆಟ್ರಿ ಟ್ರಾನ್ಸ್‌ಪೋರ್ಟ್ (MQTT)

MQTT ಒಂದು ಒಗಟಾದ, ಓಪನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಸಂದೇಶ ಪ್ರೋಟೋಕಾಲ್, ಇದು ಸಾಧನಗಳ ನಡುವೆ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಇದನ್ನು 1999 ರಲ್ಲಿ ತೈಲ ಪೈಪುಲೈನ್ಗಳನ್ನು ನೋಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಯಿತು, ನಂತರ 15 ವರ್ಷಗಳಾದ ಮೇಲೆ IBM ಮೂಲಕ ಓಪನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಆಗಿ ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು.

MQTT ನಲ್ಲಿ ಒಬ್ಬೇ broker ಮತ್ತು ಅನೇಕ ಕ್ಲೈಂಟ್‌ಗಳು ಇವೆ. ಎಲ್ಲ ಕ್ಲೈಂಟ್‌ಗಳು brokerಗೆ ಸಂಪರ್ಕಿಸುವರು, ಮತ್ತು broker ಸಂಬಂಧಿತ ಕ್ಲೈಂಟ್‌ಗಳಿಗೆ ಸಂದೇಶಗಳನ್ನು ಮಾರ್ಗದರ್ಶಿಸುತ್ತದೆ. ಸಂದೇಶಗಳನ್ನು ನಾಮಿತ ವಿಷಯಗಳ ಮೂಲಕ ಮಾರ್ಗದರ್ಶಿಸಲಾಗುತ್ತದೆ, ನಿರ್ದಿಷ್ಟ ಕ್ಲೈಂಟ್‌ಗೆ ನೇರವಾಗಿ ಕಳುಹಿಸುವುದಿಲ್ಲ. ಒಂದು ಕ್ಲೈಂಟ್ ವಿಷಯಕ್ಕೆ ಪ್ರಕಟಿಸಬಹುದು ಮತ್ತು ಆ ವಿಷಯಕ್ಕೆ ಚಂದಾ ನೀಡಿದವರಾಗಿದ್ದರೆ ಅವರಲ್ಲಿ ಯಾರಿಗೂ ಸಂದೇಶ ಸಿಗುತ್ತದೆ.

IoT ಸಾಧನ /telemetry ವಿಷಯದಲ್ಲಿ ಟೆಲೀಮೆಟ್ರಿಯನ್ನು ಪ್ರಕಟಿಸುತ್ತಿದೆ, ಮತ್ತು ಕ್ಲೌಡ್ ಸೇವೆ ಆ ವಿಷಯಕ್ಕೆ ಚಂದಾ ನೀಡುತ್ತಿದೆ

ಕೊಂಚ ಸಂಶೋಧನೆ ಮಾಡಿ. ನಿಮ್ಮ ಬಳಿ ಬಹಳ IoT ಸಾಧನಗಳಿದ್ದರೆ, ನಿಮ್ಮ MQTT broker ಎಲ್ಲಾ ಸಂದೇಶಗಳನ್ನು ನಿರ್ವಹಿಸಬಲ್ಲಂತೆ ನೀವು ಹೇಗೆ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು?

MQTT ಗೆ ನಿಮ್ಮ IoT ಸಾಧನವನ್ನು ಸಂಪರ್ಕಿಸಿ

ನಿಮ್ಮ ನೈಟ್‌ಲೈಟ್‌ಗೆ ಇಂಟರ್‌ನೆಟ್ ನಿಯಂತ್ರಣ ಸೇರಿಸುವ ಮೊದಲ ಹಂತವು ಅದನ್ನು MQTT brokerಗೆ ಸಂಪರ್ಕಿಸುವುದು.

ಕರ್ತವ್ಯ

ನಿಮ್ಮ ಸಾಧನವನ್ನು MQTT brokerಗೆ ಸಂಪರ್ಕಿಸಿ.

ಈ ಪಾಠದ ಈ ಭಾಗದಲ್ಲಿ, ನೀವು ನಿಮ್ಮ IoT ನೈಟ್‌ಲೈಟ್ ಅನ್ನು ಇಂಟರ್‌ನೆಟಿಗೆ ಸಂಪರ್ಕಿಸಿ ದೂರದಿಂದ ನಿಯಂತ್ರಿಸಬಹುದಾದಂತೆ ಮಾಡುವಿರಿ. ಈ ಪಾಠದ ನಂತರ, ನಿಮ್ಮ IoT ಸಾಧನವು MQTT ಮೂಲಕ ಸಾರ್ವಜನಿಕ MQTT brokerಗೆ ಲೈಟ್ ಮಟ್ಟದ ಟೆಲೀಮೆಟ್ರಿ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುವುದು, ಅದನ್ನು ನೀವು ಬರೆಯುವ ಸರ್ವರ್ ಕೋಡ್ ಪತ್ತೆಮಾಡುತ್ತದೆ. ಈ ಕೋಡ್ ಲೈಟ್ ಮಟ್ಟವನ್ನು ಪರಿಶೀಲಿಸಿ, ಸದರಿ ಸಾಧನಕ್ಕೆ LED ಹಚ್ಚಲು ಅಥವಾ ಆರಿಸುವ ಆದೇಶ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುವುದು.

ಈತದ ಬಳಕೆ ಸನ್ನಿವೇಶವು ಬಹಳಷ್ಟು ಲೈಟ್ ಸೆನ್ಸರ್‌ಗಳಿಂದ ಡೇಟಾ ಸಂಗ್ರಹಿಸಿ, ಬೆಳಕು ಹಚ್ಚಲು ನಿರ್ಧಾರ ಮಾಡುವುದು, ಉದಾಹರಣೆಗೆ ಸ್ಟೇಡಿಯಂನಲ್ಲಿ. ಇದರಿಂದ, ಒಬ್ಬ ಸೆನ್ಸರ್ ಮಾತ್ರ ಮೋಡದಲ್ಲಿ ಮುಚ್ಚಲ್ಪಟ್ಟಿದ್ದರೆ ಅಥವಾ ಪಕ್ಷಿ ಮುಚ್ಚಿದ್ದರೆ, ಆದರೆ ಇತರ ಸೆನ್ಸರ್‌ಗಳು ಸಾಕಷ್ಟು ಬೆಳಕು ಕಂಡು ಹಿಡಿದಿದ್ದರೆ, ಬೆಳಕು ಹಚ್ಚುವುದನ್ನು ತಡೆಯಬಹುದು.

ಇನ್ನೇನು ಸನ್ನಿವೇಶಗಳು ಬಹಳವಾದ ಸೆನ್ಸರ್‌ಗಳಿಂದ ಡೇಟಾ ಮೌಲ್ಯಮಾಪನ ಮಾಡಬೇಕಾಗುತ್ತದೆ ಆದೇಶ ಕಳುಹಿಸುವ ಮೊದಲು?

ಅಸೈನ್‌ಮೆಂಟ್‌ನಲ್ಲಿ MQTT broker ಅನ್ನು ಹೊಂದಿಸುವ ಜಟಿಲತೆಗಳನ್ನು ಎದುರಿಸುವ ಬದಲು, ನೀವು Eclipse Mosquitto ಓಪನ್-ಸೋರ್ಸ್ MQTT broker ಅನ್ನು ಓಡಿಸುವ ಸಾರ್ವಜನಿಕ ಟೆಸ್ಟ್ ಸರ್ವರ್ ಬಳಸಬಹುದು. ಈ ಟೆಸ್ಟ್ broker ಅನ್ನು test.mosquitto.org ನಲ್ಲಿ ಸಾರ್ವಜನಿಕವಾಗಿ ಲಭ್ಯ असून, ಖಾತೆಯನ್ನು ಹೊಂದಿಸುವ ಅಗತ್ಯವಿಲ್ಲ, ಇದು MQTT ಕ್ಲೈಂಟ್‌ಗಳು ಮತ್ತು ಸರ್ವರ್‌ಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ಉತ್ತಮ ಸಾಧನವಾಗಿದೆ.

💁 ಈ ಟೆಸ್ಟ್ broker ಸಾರ್ವಜನಿಕ ಮತ್ತು ಸುರಕ್ಷಿತವಲ್ಲ. ನೀವು ಪ್ರಕಟಿಸುವುದನ್ನು ಯಾರಾದರೂ ಕೇಳಬಹುದು, ಆದ್ದರಿಂದ ಗೌಪ್ಯತೆಯಿಂದ ರಕ್ಷಿಸಬೇಕಾದ ಡೇಟಾಕೆ ಇದನ್ನು ಬಳಸಬಾರದು

ಫ್ಲೋ چار್ಟ್ ನಲ್ಲಿ ಬೆಳಕಿನ ಮಟ್ಟಗಳನ್ನು ಓದುವುದು ಮತ್ತು ಪರಿಶೀಲಿಸುವುದು, ಮತ್ತು LED ನಿಯಂತ್ರಿಸಬಹುದಾದ ದಿಳಿತ

ನಿಮ್ಮ ಸಾಧನವನ್ನು MQTT brokerಗೆ ಸಂಪರ್ಕಿಸಲು ಕೆಳಗಿನ ಸಂಬಂಧಿಸಿದ ಹಂತವನ್ನು ಅನುಸರಿಸಿ:

MQTT deeper dive

ವಿಷಯಗಳಿಗೆ ಹೇರಾರ್ಕಿ ಇರಬಹುದು, ಮತ್ತು ಕ್ಲೈಂಟ್‌ಗಳು ವೈಲ್ಡ್ಕಾರ್ಡ್ ಬಳಸಿ ಹೇರಾರ್ಕಿಯ ವಿಭಿನ್ನ ಮಟ್ಟಗಳಿಗೆ ಚಂದಾ ನೀಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ನೀವು ತಾಪಮಾನ ಟೆಲೀಮೆಟ್ರಿ ಸಂದೇಶಗಳನ್ನು /telemetry/temperature ವಿಷಯಕ್ಕೆ ಕಳುಹಿಸಿ ಮತ್ತು ಆರ್ದ್ರತೆ ಸಂದೇಶಗಳನ್ನು /telemetry/humidity ವಿಷಯಕ್ಕೆ ಕಳುಹಿಸುವಿರಿ, ನಂತರ ನಿಮ್ಮ ಕ್ಲೌಡ್ ಅಪ್‌ಗೆ /telemetry/* ವಿಷಯಕ್ಕೆ ಚಂದಾ ನೀಡಲು, ಎರಡೂ ತಾಪಮಾನ ಮತ್ತು ಆರ್ದ್ರತೆ ಟೆಲೀಮೆಟ್ರಿ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸಲು.

ಸಂದೇಶಗಳು ಬೆಲೆಯ ಗುಣಮಟ್ಟ (QoS) ನೊಂದಿಗೆ ಕಳುಹಿಸಬಹುದು, ಇದು ಸಂದೇಶ ಸ್ವೀಕೃತಿಗೆ ಭರವಸೆ ನೀಡುವ ಮಾರ್ಪಡಿ.

  • ಕನಿಷ್ಟವಾಗಿ ಒಂದು ಬಾರಿ - ಸಂದೇಶ ಒಂದೇ ಬಾರಿ ಕಳುಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಕ್ಲೈಂಟ್ ಮತ್ತು broker ಒಂದು ಒಪ್ಪಿಗೆಯ ಪರಿಗಣನೆ ಮಾಡೋದಿಲ್ಲ (ಗರಿಗರಿ ಮಾಡಿ ಮರೆತಿಹೋಗು).
  • ಕನಿಷ್ಠ ಕೂಡ ಒಂದು ಬಾರಿ - ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುವವರು ಒಪ್ಪಿಗೆ ಸಿಗುವವರೆಗೆ ಹಲವಾರು ಬಾರಿ ಪ್ರಯತ್ನಿಸುವರು (ಒಪ್ಪಿಗೆಯ ಡೆಲಿವರಿ).
  • ನಿಖರವಾಗಿ ಒಂದು ಬಾರಿ - ಕಳುಹಿಸುವವರು ಮತ್ತು ಸ್ವೀಕರಿಸುವವರು ಎರಡು ಹಂತದ ಹ್ಯಾಂಡ್‌ಶೇಕ್ ಮಾಡುವ ಮೂಲಕ ಒಂದೇ ಪ್ರತಿಯನ್ನು ಪಡೆದಿರುತ್ತಾರೆ (ಭದ್ರಿತ ವಿತರಣೆ).

ಯಾವ ಸನ್ನಿವೇಶಗಳು ಭದ್ರಿತ ವಿತರಣೆ ಸಂದೇಶವನ್ನು ಗರಿಗರಿ ಮಾಡಿ ಮರೆತಿಹೋಗು ಸಂದೇಶಕ್ಕಿಂತ ಮೊದಲೀಗೂ ആവശ്യವಿರಬಹುದು?

ಯಾವುದೇ ಸ್ಪಷ್ಟ ಮುಂದಿನ ಪೊಸ್ಟ್ ಇಲ್ಲದಿದ್ದರೂ Message Queueing ಅಂದರೆ (MQTT ಇನಿಷಿಯಲ್ಸ್), ನಿಜವಾದ ಸಂದೇಶ ಕ್ಯೂಗಳು MQTT ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ. ಅದರಿಂದ ಕ್ಲೈಂಟ್ ಕನೆಕ್ಟ್‌ನಿಂದ ಡಿಸ್ಕನೆಕ್ಟ್ ಆಗಿ, ಮತ್ತೆ ಸಂಪರ್ಕಿಸಿದಾಗ, ಅದು ಡಿಸ್‌ಕನೆಕ್ಷನ್ ಸಮಯದಲ್ಲಿ ಕಳುಹಿಸಲ್ಪಟ್ಟ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ, QoS ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅವಲಂಬಿಸಿದ ಸಂದೇಶಗಳನ್ನು ಹೊರತುಪಡಿಸಿ. ಸಂದೇಶಗಳಿಗೆ ಉಳಿಸುವ ಧ್ವಜ (retained flag) ಇರುತ್ತದೆ. ಇದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, MQTT broker ಆ ವಿಷಯದಲ್ಲಿ ಕೊನೆಯ ಸಂದೇಶವನ್ನು ಸಂಗ್ರಹಿಸಿ, ನಂತರ ಆ ವಿಷಯಕ್ಕೆ ಚಂದಾ ನೀಡುವ ಎಲ್ಲ ಕ್ಲೈಂಟ್‌ಗಳಿಗೆ ಅದು ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಈ ಮೂಲಕ ಗಮನದಲ್ಲಿಟ್ಟದ್ದಂತೆ, ಕ್ಲೈಂಟ್‌ಗಳು ಯಾವಾಗಲೂ ಇತ್ತೀಚಿನ ಸಂದೇಶವನ್ನು ಪಡೆಯುತ್ತವೆ.

MQTT ಒಂದು ಕಾಯುವ (keep alive) ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸಹ ಬೆಂಬಲಿಸುತ್ತದೆ, ಇದು ಸಂದೇಶಗಳ ಮಧ್ಯೆ ದೀರ್ಘ ಸ್ವಲ್ಪಿಗಳಲ್ಲಿ ಸಂಪರ್ಕ ಜೀವಿತೆಯಲ್ಲಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ.

🦟 Eclipse Foundation ನ Mosquitto ನಿಂದ ನೀವು ಸ್ವತಂತ್ರವಾಗಿ MQTT broker ಅನ್ನು ಹಸಿವಾದಲೀಂದು ಇಟ್ಟುಕೊಳ್ಳಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲು ಸಾರ್ವಜನಿಕ MQTT broker ಅನ್ನು test.mosquitto.org ನಲ್ಲಿ ಉಪಯೋಗಿಸಬಹುದು.

MQTT ಸಂಪರ್ಕಗಳು ಸಾರ್ವಜನಿಕ ಮತ್ತು ಮುಕ್ತವಾಗಿರಬಹುದು, ಅಥವಾ ಬಳಕೆದಾರ ನಾಮ ಮತ್ತು ಗುಪ್ತಪದಗಳು, ಅಥವಾ ಪ್ರಮಾಣಪತ್ರಗಳ ಮೂಲಕ ಗುಪ್ತಗೊಳ್ಳಬಹುದು.

💁 MQTT TCP/IP ಮೂಲಕ ಸಂವಹನ ಮಾಡುತ್ತದೆ, HTTP ನಂತೆ ನೆಟ್ವರ್ಕ್ ಪ್ರೋಟೋಕಾಲ್ ಆದರೆ ವಿಭಿನ್ನ ಪೋರ್ಟ್ ನಲ್ಲಿ. ನೀವು MQTT ನ್ನು ವೆಬ್‌ಸಾಕೆಟ್‌ಗಳ ಮೂಲಕವೂ ಬಳಸಬಹುದು, ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಓಡುವ ವೆಬ್ ಅಪ್‌ಗಳಿಗೆ ಸಂವಹನ ಮಾಡಲು ಅಥವಾ ಫೈರ್‌ವಾಲ್‌ಗಳು ಅಥವಾ ಇತರ ನೆಟ್ವರ್ಕಿಂಗ್ ನಿಯಮಗಳು ಚೆಲುವಾಗದ ಸಂದರ್ಭದಲ್ಲಿ.

ಟೆಲೀಮೆಟ್ರಿ

ಟೆಲೀಮೆಟ್ರಿ ಪದವು ದೂರದಿಂದ ಅಳತೆ ಮಾಡಲು ಗ್ರೀಕ್ ಮೂಲಗಳಿಂದ ಬಂದಿದೆ. ಟೆಲೀಮೆಟ್ರಿ ಎಂದರೆ ಸೆನ್ಸರ್‌ಗಳಿಂದ ಡೇಟಾ ಸಂಗ್ರಹಿಸಿ ಅದನ್ನು ಕ್ಲೌಡ್‌ಗೆ ಕಳುಹಿಸುವ ಕ್ರಿಯೆ.

💁 ಒಂದನೆಯ ಟೆಲಿಮೆಟ್ರಿ ಸಾಧನವು 1874 ರಲ್ಲಿ ಫ್ರೆಂಚ್‌ನಲ್ಲಿ ಕಂಡುಬಂದಿತು ಮತ್ತು ಸಕಾಲಿಕ ಹವಾಮಾನ ಹಾಗೂ ಹಿಮದ ಆಳಗಳನ್ನು ಮೊಂಟ್ ಬ್ಲಾಂಕ್ ನಿಂದ ಪ್ಯಾರಿಸ್‌ಗೆ ಕಳುಹಿಸಿತು. ಅವೆಲ್ಲ ವೈರ್‌ಕೇಬಲ್ ಮೂಲಕ ನಡೆದವು, ಅಂದರೆ ಅಂದಿನ ಸಂದರ್ಭದಲ್ಲಿ ವೈರ್‌ಲೆಸ್ ತಂತ್ರಜ್ಞಾನಗಳು ಲಭ್ಯವಿಲ್ಲ.

ಪಾಠ 1 ನಲ್ಲಿನ ಸ್ಮಾರ್ಟ್ ಥರ್ಮೋಸ್ಟ್ಯಾಟ್ ಉದಾಹರಣೆಯನ್ನಾಡೋಣ.

ಒಂದು ಇಂಟರ್‌ನೆಟ್ ಸಂಪರ್ಕಿತ ಥರ್ಮೋಸ್ಟ್ಯಾಟ್ ಮತ್ತು ಅನೇಕ ಕೊಠಡಿ ಸೆನ್ಸರ್ಗಳನ್ನು ಬಳಸಿ

ಥರ್ಮೋಸ್ಟ್ಯಾಟ್ temperature ಸೆನ್ಸರ್ಗಳನ್ನು ಹೊಂದಿದ್ದು ಟೆಲೀಮೆಟ್ರಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಬಹುಶಃ ಒಂದು temperature ಸೆನ್ಸರ್ ಒಳಗಿದೆ, ಮತ್ತು ಬಹುತೆಕ ಬೇರೆ temperature ಸೆನ್ಸರ್ಗಳನ್ನು ವೈರ್‌ಲೆಸ್ ಪ್ರೋಟೋಕಾಲ್‌ನಂತೆ Bluetooth Low Energy (BLE) ಮೂಲಕ ಸಂಪರ್ಕಿಸುತ್ತದೆ.

ಅದನ್ನು ಕಳುಹಿಸುವ ಟೆಲೀಮೆಟ್ರಿ ಡೇಟಾ ಉದಾಹರಣೆ ಈ ಕೆಳಗಿನಂತಿದೆ:

ಹೆಸರು ಮೌಲ್ಯ ವಿವರಣೆ
thermostat_temperature 18°C ಥರ್ಮೋಸ್ಟ್ಯಾಟ್‌ನ ಒಳಗಿನ temperature ಸೆನ್ಸರ್ ಅಳತೆಯು
livingroom_temperature 19°C ದೂರದಲ್ಲಿರುವ temperature ಸೆನ್ಸರ್‌ನ ಅಳತೆ, ಇದು livingroom ಎಂದು ಹೆಸರುಮಾಡಲಾಗಿದ್ದು ಅದು ಕೊಠಡಿ ಗುರುತಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ
bedroom_temperature 21°C ದೂರದಲ್ಲಿರುವ temperature ಸೆನ್ಸರ್‌ನ ಅಳತೆ, ಇದು bedroom ಎಂದು ಹೆಸರುಮಾಡಲಾಗಿದ್ದು ಕೊಠಡಿ ಗುರುತಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ

ಕ್ಲೌಡ್ ಸೇವೆ ಈ ಟೆಲೀಮೆಟ್ರಿ ಡೇಟಾ ಬಳಸಿ ಹೀಟಿಂಗ್ ನಿಯಂತ್ರಿಸಲು ಆದೇಶಗಳನ್ನು ಕಳುಹಿಸುವ ನಿರ್ಣಯಗಳನ್ನು ಮಾಡಬಹುದು.

ನಿಮ್ಮ IoT ಸಾಧನದಿಂದ ಟೆಲೀಮೆಟ್ರಿ ಕಳುಹಿಸಿ

ನಿಮ್ಮ ನೈಟ್‌ಲೈಟ್‌ಗೆ ಇಂಟರ್‌ನೆಟ್ ನಿಯಂತ್ರಣ ಸೇರಿಸುವ ಮುಂದಿನ ಹಂತವು ಲೈಟ್ ಮಟ್ಟದ ಟೆಲೀಮೆಟ್ರಿಯನ್ನು MQTT brokerಗೆ ಟೆಲ್ಲಿಮೆಟ್ರಿ ವಿಷಯದಲ್ಲಿ ಕಳುಹಿಸುವುದಾಗಿದೆ.

ಕರ್ತವ್ಯ - ನಿಮ್ಮ IoT ಸಾಧನದಿಂದ ಟೆಲೀಮೆಟ್ರಿ ಕಳುಹಿಸಿ

MQTT brokerಗೆ ಲೈಟ್ ಮಟ್ಟದ ಟೆಲೀಮೆಟ್ರಿ ಕಳುಹಿಸಿ.

ಡೇಟಾ JSON ರೂಪದಲ್ಲಿ ಎನ್‌ಕೋಡ್ ಆಗಿ ಕಳುಹಿಸಲಾಗುತ್ತದೆ - ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಆಬ್ಜೆಕ್ಟ್ ನೋಟೇಶನ್ ಸಂಕ್ಷಿಪ್ತ ಪದ, ಡೇಟಾವನ್ನು ಕೀ/ವ್ಯಾಲ್ಯೂ ಜೋಡಿಗಳಲ್ಲಿ ಎನ್‌ಕೋಡ್ ಮಾಡಲು ಮಾನಕ.

ನೀವು JSON ಬಗ್ಗೆ ತಿಳಿದುಕೊಂಡಿಲ್ಲದಿದ್ದರೆ, JSON.org ದಾಖಲಾತಿ ನಲ್ಲಿ ಹೆಚ್ಚಿನ ಮಾಹಿತಿ ಪಡೆಯಬಹುದು.

ನೀವು ಬಳಕೆ ಮಾಡುವ ಸಾಧನದ ಆಧಾರಿತ ಹಂತಕ್ಕೆ ಅನುಸರಿಸಿ MQTT brokerಗೆ ಟೆಲೀಮೆಟ್ರಿ ಕಳುಹಿಸಿ:

MQTT brokerರಿದ ಟೆಲೀಮೆಟ್ರಿ ಸ್ವೀಕರಿಸಿ

ಟೆಲೀಮೆಟ್ರಿಯನ್ನು ಕಳುಹಿಸುವುದು ಪ್ರಯೋಜನಕಾರಿಯಲ್ಲ, ಮತ್ತೊಬ್ಬರು ಅದನ್ನು ಕೇಳುತ್ತಿರದಿದ್ದರೆ. ಲೈಟ್ ಮಟ್ಟದ ಟೆಲೀಮೆಟ್ರಿಗೆ ಕೇಳುವವರೂ ಇರಬೇಕು, ಡೇಟಾವನ್ನು ಪ್ರಕ್ರಿಯೆ ಮಾಡಲು. ಈ 'ಸರ್ವರ್' ಕೋಡ್ ನಿಮ್ಮ IoT ಅಪ್ಲಿಕೇಶನ್‌ನ ಭಾಗವಾಗಿ ಕ್ಲೌಡ್ ಸೇವೆಗೆ ನಿಯೋಜಿಸುವ ಪ್ರಕಾರವಾಗಿದೆ, ಆದರೆ ನೀವು ಈ ಕೋಡ್ ಅನ್ನು ನಿಮಗೇನೋ ಅಥವಾ ನಿಮಗೆ ಪೈ ಮೇಲೆ ಸ್ಥಳೀಯವಾಗಿ ಚಲಿಸುವಿರಿ. ಸರ್ವರ್ ಕೋಡ್ ಅನ್ನು Python ಅಪ್ಲಿಕೇಶನ್ ರೂಪದಲ್ಲಿ, ಇದು MQTT ಮೂಲಕ ಟೆಲೀಮೆಟ್ರಿ ಸಂದೇಶಗಳನ್ನು ಲೈಟ್ ಮಟ್ಟಗಳೊಂದಿಗೆ ಕೇಳುತ್ತದೆ. ನಂತರ ಈ ಪಾಠದಲ್ಲಿ ನೀವು ಇದಕ್ಕೆ LED ಹಚ್ಚಲು ಅಥವಾ ಆರಿಸುವ ಆದೇಶ ಸಂದೇಶವನ್ನು മറೆಯುತ್ತೀರಿ.

ಸಂಶೋಧನೆ ಮಾಡಿ: MQTT ಸಂದೇಶಗಳಿಗೆ ಕೇಳುವವರು ಇಲ್ಲದಿದ್ದರೆ ಏನು ಆಗುತ್ತದೆ?

Python ಮತ್ತು VS Code ಅನ್ನು ಸ್ಥಾಪಿಸಿ

ನೀವು Python ಮತ್ತು VS Code ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಹೊಂದಿರದಿದ್ದರೆ, ಸರ್ವರ್ ಕೋಡ್ ಬರೆಯಲು ಇಬ್ಬನ್ನೂ ಸ್ಥಾಪಿಸಲು ಅಗತ್ಯವಿದೆ. ನೀವು ವರ್ಚುವಲ್ IoT ಸಾಧನವನ್ನು ಬಳಕೆಯಲ್ಲಿದ್ದರೆ, ಅಥವಾ ನಿಮ್ಮ Raspberry Pi ಮೇಲೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರೆ ಈ ಹಂತವನ್ನು ಜಾಗರೂಕವಾಗಿಸಬಹುದು, ಏಕೆಂದರೆ ಅವು ಈಗಾಗಲೇ ಹೊಂದಿಯಾಗಿರಬಹುದು.

ಕರ್ತವ್ಯ - Python ಮತ್ತು VS Code ಅನ್ನು ಸ್ಥಾಪಿಸಿ

Python ಮತ್ತು VS Code ಅನ್ನು ಸ್ಥಾಪಿಸಿ.

  1. Python ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ಇತ್ತೀಚಿನ Python ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿಸಲು Python ಡೌನ್‌ಲೋಡ್ ಪುಟ ನೋಡಿ.

  2. Visual Studio Code (VS Code) ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ಈ ಸಂಪಾದಕವನ್ನು ನೀವು ನಿಮ್ಮ ವರ್ಚುವಲ್ ಸಾಧನ ಕೋಡ್ Python ನಲ್ಲಿ ಬರೆಯಲು ಬಳಸುವಿರಿ. VS Code ಸ್ಥಾಪನೆಗಾಗಿ VS Code ದಾಖಲಾತಿ ನೋಡಿ.

    💁 ಈ ಪಾಠಗಳಿಗೆ ನೀವು ಇಚ್ಛಿಸಿದ Python IDE ಅಥವಾ ಸಂಪಾದಕವನ್ನು ಬಳಸಬಹುದು, ಆದರೆ ಪಾಠಗಳು VS Code ಆಧಾರಿತ ಸೂಚನೆಗಳನ್ನು ನೀಡುತ್ತವೆ.

  3. VS Code Pylance ವಿಸ್ತರಣೆಯನ್ನು ಸ್ಥಾಪಿಸಿ. ಇದು Python ಭಾಷಾ ಬೆಂಬಲ ನೀಡಿ VS Code ಗೆ ವಿಸ್ತರಣೆ ಆಗಿದೆ. VS Code ನಲ್ಲಿ ವಿಸ್ತರಣೆಯನ್ನು ಹೇಗೆ ಸ್ಥಾಪಿಸುವುದು ಎನ್ನುವುದಕ್ಕೆ Pylance ವಿಸ್ತರಣೆ ದಾಖಲೆ ನೋಡಿ.

Python ವರ್ಚುವಲ್ ಇನ್‌ವೈರನ್ಮೆಂಟ್ ಅನ್ನು ಸಂರಚಿಸಿ

Python ನ ಶಕ್ತಿಶಾಲಿ ವೈಶಿಷ್ಟ್ಯಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ pip ಪ್ಯಾಕೇಜುಗಳನ್ನು ಸ್ಥಾಪಿಸುವ ಸಾಮರ್ಥ್ಯವು - ಇವು ಇತರ ವ್ಯಕ್ತಿಗಳಿಂದ ಬರೆಯಲಾದ ಕೋಡ್ ಪ್ಯಾಕೇಜುಗಳು ಮತ್ತು ಇಂಟರ್‌ನೆಟ್‌ಗೆ ಪ್ರಕಟಿಸಲಾದವು. ನೀವು ಒಂದು ಕಮಾಂಡ್ ಮೂಲಕ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ pip ಪ್ಯಾಕೇಜನ್ನು ಸ್ಥಾಪಿಸಬಹುದು, ನಂತರ ಆ ಪ್ಯಾಕೇಜನ್ನು ನಿಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ಬಳಸಬಹುದು. ನೀವು MQTT ಮೂಲಕ ಸಂವಹನ ಮಾಡಲು ಒಂದು ಪ್ಯಾಕೇಜನ್ನು ಸ್ಥಾಪಿಸಲು pip ಬಳಸಲಿದ್ದೀರಿ.

ಡೀಫಾಲ್ಟ್ ಆಗಿ ನೀವು ಪ್ಯಾಕೇಜನ್ನು ಸ್ಥಾಪಿಸುವಾಗ ಅದು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನ ಎಲ್ಲೆಡೆ ಲಭ್ಯವಾಗುತ್ತದೆ, ಮತ್ತು ಇದರಿಂದ ಪ್ಯಾಕೇಜು ಆವೃತ್ತಿಗಳೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳು ಉಂಟಾಗಬಹುದು - ಉದಾಹರಣೆಗೆ ಒಂದು ಅಪ್ಲಿಕೇಶನ್ ಒಂದು ಆವೃತ್ತಿಯ ಪ್ಯಾಕೇಜ್ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದ್ದು ಮತ್ತೊಂದು ಅಪ್ಲಿಕೇಶನೆಗೆ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಸ್ಥಾಪಿಸಿದಾಗ ಅದು ಬಂಧಿಸಲಾಗುತ್ತದೆ. ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು, ನೀವು Python ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಅನ್ನು ಬಳಸಬಹುದು, ಮೂಲತಃ Python ನ ಒಂದು ನಕಲು ಸಮರ್ಪಿತ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ, ಮತ್ತು ನೀವು pip ಪ್ಯಾಕೇಜುಗಳನ್ನು ಸ್ಥಾಪಿಸುವಾಗ ಅವು ಆ ಫೋಲ್ಡರ್‌ಗೆ ಮಾತ್ರ ಸ್ಥಾಪಿಸಲ್ಪಡುತ್ತವೆ.

ಕಾರ್ಯ - Python ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್‌ ಅನ್ನು ಸಂರಚಿಸಿ

Python ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಅನ್ನು ಸಂರಚಿಸಿ ಮತ್ತು MQTT pip ಪ್ಯಾಕೇಜುಗಳನ್ನು ಸ್ಥಾಪಿಸಿ.

  1. ನಿಮ್ಮ ಟರ್ಮಿನಲ್ ಅಥವಾ命令体ಲೆಯಿಂದ, ನೀವು ಆಯ್ಕೆಗೆ ತಕ್ಕ ಸ್ಥಳದಲ್ಲಿ ಹೊಸ ಡೈರೆಕ್ಟರಿಯನ್ನು ಸೃಷ್ಟಿಸಿ ಮತ್ತು ಅದಕ್ಕೆ ನವಿಗೇಟ್ ಮಾಡಲು ಕೆಳಗಿನವನ್ನು ಚಾಲನೆ ಮಾಡಿ:

    mkdir nightlight-server
    cd nightlight-server
    
  2. ಈಗ .venv ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಸೃಷ್ಟಿಸಲು ಕೆಳಗಿನವನ್ನು ಚಾಲನೆ ಮಾಡಿ

    python3 -m venv .venv
    

    💁 ನೀವು python3 ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಕರೆ ಮಾಡಬೇಕಾಗುವುದು python ಅನ್ನು ಕರೆ ಮಾಡಿದರೆ Python 2 ಇನ್ಸ್ಟಾಲ್ ಆಗಿರಬಹುದು Python 3 ಇಲ್ಲದೆ (ಇತ್ತೀಚಿನ ಆವೃತ್ತಿ). Python2 ಇನ್ಸ್ಟಾಲ್ ಆಗಿದ್ದರೆ python ಕರೆಯುವುದು Python 2 ಅನ್ನು ಬಳಸುವುದು, Python 3 ಅಲ್ಲ.

  3. ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ:

    • Windows ಮೇಲೆ:

      • ನೀವು Command Prompt ಅಥವಾ Windows Terminal ಮೂಲಕ Command Prompt ಬಳಸುತ್ತಿದ್ದರೆ, ಚಾಲನೆ ಮಾಡಿ:

        .venv\Scripts\activate.bat
        
      • ನೀವು PowerShell ಬಳಸುತ್ತಿದ್ದರೆ, ಚಾಲನೆ ಮಾಡಿ:

        .\.venv\Scripts\Activate.ps1
        
    • macOS ಅಥವಾ Linux ನಲ್ಲಿ, ಚಾಲನೆ ಮಾಡಿ:

      source ./.venv/bin/activate
      

    💁 ಈ ಆಜ್ಞೆಗಳು ನೀವು ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಸೃಷ್ಟಿಸಿದ ಸ್ಥಳದಿಂದಲೂ ಚಾಲನೆ ಮಾಡಬೇಕು. .venv ಫೋಲ್ಡರ್‌ಗೆ ನವಿಗೇಟ್ ಮಾಡಬೇಕಾಗುವುದಿಲ್ಲ, 항상 ಆ ಆಜ್ಞೆಗಳನ್ನು ಮತ್ತು ಪ್ಯಾಕೇಜ್ ಸ್ಥಾಪನೆ ಅಥವಾ ಕೋಡ್ ಚಾಲನೆ ಆಜ್ಞೆಗಳನ್ನು ನೀವು ಇದ್ದ ಫೋಲ್ಡರ್‌ನಿಂದಲೇ ನಡೆಸಬೇಕು.

  4. ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಸಕ್ರಿಯಗಾದ ಮೇಲೆ, ಡೀಫಾಲ್ಟ್ python ಆಜ್ಞೆ ಅದನ್ನು ಸೃಷ್ಟಿಸಲು ಬಳಸಲಾಗಿದ Python ಆವೃತ್ತಿಯನ್ನು ಚಲಾಯಿಸುವುದು. ಆವೃತ್ತಿಯನ್ನು ಪಡೆಯಲು ಕೆಳಗಿನವನ್ನು ಚಾಲನೆ ಮಾಡಿ:

    python --version
    

    ಔಟ್‌ಪುಟ್ ಹೀಗೆ ಕಂಡುಬರುತ್ತದೆ:

    (.venv) ➜  nightlight-server python --version
    Python 3.9.1
    

    💁 ನಿಮ್ಮ Python ಆವೃತ್ತಿ ವಿಭಿನ್ನವಾಗಿರಬಹುದು - ಅದು 3.6 ಅಥವಾ ಹೆಚ್ಚು ಆವೃತ್ತಿಯಾಗಿದೆ ಎಂಬುದು ಮುಖ್ಯ. ಇಲ್ಲದಿದ್ದರೆ ಈ ಫೋಲ್ಡರ್ ಅನ್ನು ಅಳಿಸಿ, Python ನ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಸ್ಥಾಪಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.

  5. Paho-MQTT ರ ಪಿಪ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಚಾಲನೆ ಮಾಡಿ, ಇದು ಜನಪ್ರಿಯ MQTT ಲೈಬ್ರರಿ.

    pip install paho-mqtt
    

    ಈ pip ಪ್ಯಾಕೇಜನ್ನು ಮಾತ್ರ ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್‌ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಇದನ್ನು ಬಾಹ್ಯವಾಗಿ ಲಭ್ಯವಿರಲಾರದು.

ಸರ್ವರ್ ಕೋಡ್ ಬರೆಯಿರಿ

ಈಗ ಸರ್ವರ್ ಕೋಡ್ Python ನಲ್ಲಿ ಬರೆಯಬಹುದಾಗಿದೆ.

ಕಾರ್ಯ - ಸರ್ವರ್ ಕೋಡ್ ಬರೆಯಿರಿ

ಸರ್ವರ್ ಕೋಡ್ ಬರೆಯಿರಿ.

  1. ನಿಮ್ಮ ಟರ್ಮಿನಲ್ ಅಥವಾ命令体ಲೆಯಿಂದ, ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಒಳಗೆ app.py ಎಂಬ Python ಫೈಲ್ ಸೃಷ್ಟಿಸಲು ಕೆಳಗಿನವನ್ನು ಚಾಲನೆ ಮಾಡಿ:

    • Windows ನಲ್ಲಿ:

      type nul > app.py
      
    • macOS ಅಥವಾ Linux ನಲ್ಲಿ:

      touch app.py
      
  2. ಪ್ರಸ್ತುತ ಫೋಲ್ಡರ್ ಅನ್ನು VS Code ನಲ್ಲಿ ತೆರೆಯಿರಿ:

    code .
    
  3. VS Code ಪ್ರಾರಂಭವಾಗುವಾಗ ಅದು Python ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಇದು ಕೆಳಗಿನ ಸ್ಥಿತಿ ಬಾರಿನಲ್ಲಿ ವರದಿಯಾಗುತ್ತದೆ:

    VS Code showing the selected virtual environment

  4. VS Code ಟರ್ಮಿನಲ್ ಈಗಾಗಲೇ ಇರುತ್ತದೆ ಆದರೆ ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಸಕ್ರಿಯಗೊಂಡಿಲ್ಲವೇಂದರೆ, ಟರ್ಮಿನಲ್‌ ಅನ್ನು Kill the active terminal instance ಬಟನ್ ಬಳಸಿ ಕೊಲ್ಲುವುದು ಸರಳವಾದದ್ದು:

    VS Code Kill the active terminal instance button

  5. Terminal -> New Terminal ಆಯ್ಕೆ ಮಾಡಿ ಅಥವಾ CTRL+` ಒತ್ತಿ ಹೊಸ VS Code ಟರ್ಮಿನಲ್ ಪ್ರಾರಂಭಿಸಿ. ಹೊಸ ಟರ್ಮಿನಲ್ ನಲ್ಲಿ ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ಲೋಡ್ ಆಗುತ್ತದೆ ಮತ್ತು ಸಕ್ರಿಯಗೊಳಿಸುವ ಕರೆ ಟರ್ಮಿನಲ್ನಲ್ಲಿ ಕಾಣಿಸುತ್ತದೆ. ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ನ ಹೆಸರು (.venv) ಪ್ರಾಂಪ್ಟ್ ನಲ್ಲಿ ಕೂಡ ಕಾಣಿಸುತ್ತದೆ:

    ➜  nightlight-server source .venv/bin/activate
    (.venv) ➜  nightlight 
    
  6. VS Code ಎಕ್ಸ್ಪ್ಲೋರರ್ ನಲ್ಲಿ app.py ಫೈಲ್ ತೆರೆಯಿರಿ ಮತ್ತು ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಸೇರಿಸಿ:

    import json
    import time
    
    import paho.mqtt.client as mqtt
    
    id = '<ID>'
    
    client_telemetry_topic = id + '/telemetry'
    client_name = id + 'nightlight_server'
    
    mqtt_client = mqtt.Client(client_name)
    mqtt_client.connect('test.mosquitto.org')
    
    mqtt_client.loop_start()
    
    def handle_telemetry(client, userdata, message):
        payload = json.loads(message.payload.decode())
        print("Message received:", payload)
    
    mqtt_client.subscribe(client_telemetry_topic)
    mqtt_client.on_message = handle_telemetry
    
    while True:
        time.sleep(2)
    

    6ನೇ ಸಾಲಿನ <ID> ನಲ್ಲಿ ನೀವು ಡಿವೈಸ್ ಕೋಡ್ ಸೃಷ್ಟಿಸುವಾಗ ಬಳಸಿದ ಅನನ್ಯ ID ಅನ್ನು ಬದಲಾಯಿಸಿ.

    ⚠️ ಇದು ನಿಮ್ಮ ಡಿವೈಸ್‌ನಲ್ಲಿ ಬಳಸಿದ ID ಇರುವುದೇ ಮುಖ್ಯ, ಇಲ್ಲದಿದ್ದರೆ ಸರ್ವರ್ ಕೋಡ್ ಸರಿಯಾದ ವಿಷಯಕ್ಕೆ ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಅಥವಾ ಪ್ರಕಟಣೆ ಮಾಡುದಿಲ್ಲ.

    ಈ ಕೋಡ್ ಅನನ್ಯ ಹೆಸರಿನ MQTT ಕ್ಲೈಂಟ್ ರಚಿಸುತ್ತದೆ ಮತ್ತು test.mosquitto.org ಬ್ರೋಕರ್‌ಗೆ ಸಂಪರ್ಕಿಸುತ್ತದೆ. ನಂತರ ಅದು ಬ್ಯಾಕ್‌ಗ್ರೌಂಡ್ ಥ್ರೆಡ್‌ನಲ್ಲಿ ಓಗುತ್ತಿರುವ ಪ್ರೊಸೆಸಿಂಗ್ ಲೂಪ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಇದು ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಮಾಡಲಾದ ಯಾವುದೇ ವಿಷಯಗಳ ಸಂದೇಶಗಳನ್ನು ಕೇಳುತ್ತದೆ.

    ಕ್ಲೈಂಟ್ ನಂತರ ಟೆಲಿಮೆಟ್ರಿ ವಿಷಯದ ಸಂದೇಶಗಳಿಗೆ ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಆಗುತ್ತದೆ ಮತ್ತು ಸಂದೇಶ ದೊರಕಿದಾಗ ಕರೆಮಾಡುವ ಫಂಕ್ಷನ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. ಟೆಲಿಮೆಟ್ರಿ ಸಂದೇಶ ಬಂದಾಗ, handle_telemetry ಫಂಕ್ಷನ್ ಕರೆಮಾಡಲ್ಪಡುತ್ತದೆ ಮತ್ತು ಕಾನ್ಸೋಲ್‌ಗೆ ಸಂದೇಶವನ್ನು ಮುದ್ರಿಸುತ್ತದೆ.

    ಕೊನೆಯಲ್ಲಿ ಅನಂತ ಲೂಪ್ ಅಪ್ಲಿಕೇಶನ್ ನಡುತ್ತಿರುವಂತೆ ಇರುತ್ತದೆ. MQTT ಕ್ಲೈಂಟ್ ಬ್ಯಾಕ್‌ಗ್ರೌಂಡ್ ಥ್ರೆಡ್‌ನಲ್ಲಿ ಸಂದೇಶಗಳನ್ನು ಕೇಳುತ್ತಿದೆ ಮತ್ತು ಮುಖ್ಯ ಅಪ್ಲಿಕೇಶನ್ ಚಲಿಸುತ್ತಿರುವಾಗ ಎಲ್ಲಾ ವೇಳೆಯೂ ನಡೆಯುತ್ತದೆ.

  7. VS Code ಟರ್ಮಿನಲ್‌ನಿಂದ ನಿಮ್ಮ Python ಅಪ್ಲಿಕೇಶನ್‌ ಅನ್ನು ಚಾಲನೆ ಮಾಡಲು ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ಚಾಲನೆ ಮಾಡಿ:

    python app.py
    

    ಅಪ್ಲಿಕೇಶನ್ IoT ಡಿವೈಸ್‌ನಿಂದ ಸಂದೇಶಗಳನ್ನು ಕೇಳಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ.

  8. ನಿಮ್ಮ ಡಿವೈಸ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ ಮತ್ತು ಟೆಲಿಮೆಟ್ರಿ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುತ್ತಿದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನಿಮ್ಮ ಭೌತಿಕ ಅಥವಾ ವರ್ಚುವಲ್ ಡಿವೈಸ್ দ্বারা ಪತ್ತೆಯಾದ ಬೆಳಕು ಮಟ್ಟಗಳನ್ನು ಸರಿಹೊಂದಿಸಿ. ಟರ್ಮಿನಲ್‌ಗೆ ಸಂದೇಶಗಳು ಮುದ್ರಿಸಲ್ಪಡುತ್ತವೆ.

    (.venv) ➜  nightlight-server python app.py
    Message received: {'light': 0}
    Message received: {'light': 400}
    

    nightlight ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್‌ನಲ್ಲಿನ app.py ಫೈಲ್ ಚಾಲನೆ ಹೊಂದಿರಬೇಕು nightlight-server ವರ್ಚುವಲ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್‌ನ app.py ಫೈಲ್‌ಗೆ ಸಂದೇಶಗಳು ಸ್ವೀಕರಿಸಲು.

💁 ನೀವು ಈ ಕೋಡ್ ಅನ್ನು code-server/server ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಕಾಣಬಹುದು.

ಟೆಲಿಮೆಟ್ರಿ ಎಷ್ಟು ಸೀಘ್ರ ತಿಳಿಯಬೇಕು?

ಟೆಲಿಮೆಟ್ರಿ ಕುರಿತಾಗಿ ಮಹತ್ವಪೂರ್ಣ ಪರಿಗಣನೆ ಯಾರು ಎಷ್ಟು ಹೊತ್ತು ಅಳೆಯುವುದು ಮತ್ತು ಡಾಟಾವನ್ನು ಕಳುಹಿಸುವುದು? ಉತ್ತರವೇನೆಂದರೆ - ಅವಲಂಬಿಸಿದೆ. ನೀವು ಹೆಚ್ಚು ಸೀಘ್ರ ಅಳೆಯೋದರಿಂದ ಮೌಲ್ಯರೂಪದಲ್ಲಿ ಬದಲಾವಣೆಗಳಿಗೆ ವೇಗವಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸಬಹುದು, ಆದರೆ ಅದರಿಂದ ಹೆಚ್ಚಿನ ಶಕ್ತಿ, ಹೆಚ್ಚಿನ ಬ್ಯಾನ್‌ಡ್‌ವಿದ್, ಹೆಚ್ಚು ಡಾಟಾ ಉತ್ಪತ್ತಿಯಾಗುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚು ಕ್ಲೌಡ್ ಬಳಕೆ ಅಗತ್ಯವಿರುತ್ತದೆ. ನೀವು ಸಮರ್ಪಕವಾಗಿ, ಆದರೆ ಅತಿಯಾಗಿ ಅಲ್ಲ.

ಥರ್ಮೋಸ್ಟಾಟ್‌ಗಾಗಿ, ಪ್ರತೀ ಕೆಲವು ನಿಮಿಷಗಳು ಅಳೆಯುವುದು ಬಹುಶಃ ಹೆಚ್ಚು. ಏಕೆಂದರೆ ತಾಪಮಾನಗಳು ತುಂಬಾ ತೀವ್ರ ಬದಲಾಗುವುದಿಲ್ಲ. ದಿನದಲ್ಲಿ ಒಂದೇ ಬಾರಿ ಅಳೆಯುವುದಾದರೆ ಬಿಸಿಲು ದಿನದ ಮಧ್ಯದಲ್ಲಿ ರಾತ್ರಿ ತಂಪಿನ ತಾಪಮಾನಕ್ಕಾಗಿ ಗೃಹವನ್ನು ಬಿಸಿ ಮಾಡಬಹುದು; ಆದರೆ ಪ್ರತೀ ಸೆಕೆಂಡ್ ಅಳೆಯುವುದಾದರೆ ಅನಾವಶ್ಯಕವಾಗಿ ಸಾವಿರಾರು ಅನೇಕ ರೀತಿಯ ಡೇಟಾ ಉತ್ಪತ್ತಿಯಾಗುತ್ತದೆ, ಇದು ಬಳಕೆದಾರರ ಇಂಟರ್ನೆಟ್ ಗತಿಯನ್ನೂ ಬ್ಯಾನ್‌ಡ್‌ವಿದ್ ಯೋಜನೆಗಳಿಗೆ ಪ್ರಭಾವ ಬೀರುತ್ತದೆ, ಹೆಚ್ಚು ಶಕ್ತಿ ಉಪಯೋಗಿಸುತ್ತವೆ (ಬ್ಯಾಟರಿ ಪವರ್ ಬಳಸುವ ರಿಮೋಟ್ ಸೆನ್ಸರ್‌ಗಳಿಗೊಂದು ಸಮಸ್ಯೆ) ಮತ್ತು ಕ್ಲೌಡ್ ಕಂಪ್ಯೂಟಿಂಗ್ ಸಂಪನ್ಮೂಲ ಖರ್ಚನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.

ನೀವು ಕಾರ್ಖಾನೆಯಲ್ಲಿನ ಯಂತ್ರದ ಡೇಟಾ ಪರಿಶೀಲಿಸುತ್ತಿದ್ದರೆ, ಆ ಯಂತ್ರ ವಿಫಲವಾದರೆ ಭೀಕರ ಹಾನಿ ಮತ್ತು ಮಿಲಿಯನ್‌ಗಳಲ್ಲಿ ಹಣ ನಷ್ಟವಾಗಬಹುದು, ಆಗ ಗಂಟೆಯೊಳಗೆ ಒಂದಿಂತ ಹೆಚ್ಚು ಬಾರಿ ಅಳೆಯುವುದು ಅಗತ್ಯವಾಗಬಹುದು. ಟೆಲಿಮೆಟ್ರಿ ತಪ್ಪಿಸಬಹುದಾದುದಕ್ಕಿಂತ ಬ್ಯಾನ್‌ಡ್‌ವಿದ್ ವ್ಯರ್ಥ ಮಾಡುವುದು ಉತ್ತಮ.

💁 ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ, ಟೆಲಿಮೆಟ್ರಿಯ ಪ್ರಥಮ ಕಾರ್ಯಾಚರಣೆಗೆ ಎಡ್ಜ್ ಡಿವೈಸ್ ಬಳಸುವ ವಿಷಯವನ್ನು ಪರಿಗಣಿಸಬಹುದು, ಇದರಿಂದ ಇಂಟರ್‌ನೆಟ್ ಮೇಲೆ ಅವಲಂಬನೆ ಕಡಿಮೆಯಾಗುತ್ತದೆ.

ಸಂಪರ್ಕ ಕಳೆತನ

ಇಂಟರ್‌ನೆಟ್ ಸಂಪರ್ಕಗಳು ಅಸ್ಥಿರವಾಗಿರಬಹುದು, ಅವ್ಯವಸ್ಥೆಗಳು ಸಾಮಾನ್ಯ. ಇಂತಹ ಸಂದರ್ಭಗಳಲ್ಲಿ IoT ಸಾಧನ ಏನು ಮಾಡಬೇಕು? ಡಾಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳಬೇಕೆ? ಅಥವಾ ಸಂಪರ್ಕ ಮರುಸ್ಥಾಪಿತವಾಗುವ ತನಕ ಉಳಿಸಿಬಿಡಬೇಕೆ? ಉತ್ತರವೇನೆಂದರೆ ಅವಲಂಬಿಸುವುದು.

ಥರ್ಮೋಸ್ಟಾಟ್‌ಗೆ ಸಾಧ್ಯವಿದೆ ಡೇಟಾ ಕಳೆದುಕೊಳ್ಳುವುದು ಹೊಸ ತಾಪಮಾನ ಅಳತೆ ಆಗುವಾಗಲೇ, ಹೀಗೆ ತಾಪಮಾನ ಮೌಲ್ಯ ಈಗ 19°C ಇದ್ದರೆ ಹೀಗೆ 20 ನಿಮಿಷಗಳ ಹಿಂದೆ 20.5°C ಇದ್ದ ತಾಪಮಾನ ಜ್ಞಾಪಕದಲ್ಲಿರಬೇಕು ಎನ್ನಷ್ಟೇ ಮಹತ್ವಕ್ಕೆ ಇಲ್ಲ.

ಕಾರ್ಖಾನೆಯ ಯಂತ್ರಕ್ಕಾಗಿ, ವಿಶೇಷವಾಗಿ ನಿಯಮಿತ ಅವಧಿಯಲ್ಲಿ ಅಸಮಾನತೆಯನ್ನು ಕಂಡುಹಿಡಿಯುವ ಮಷಿನ್ ಲರ್ನಿಂಗ್ ಮಾದರಿಗಳನ್ನು ಬಳಸಲು ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸುವುದು ಮುಖ್ಯ. IoT ಸಾಧನ ಮರುಕನೆಕ್ಷನ್ ಆಗುವಾಗ, ಇಂಟರ್‌ನೆಟ್ ಕಡಿತ ಸಮಯದಲ್ಲಿ ಗೆನೆರೇಟ್ ಆದ ಟೆಲಿಮೆಟ್ರಿಯೆಲ್ಲಾ ಕಳುಹಿಸುತ್ತದೆ.

IoT ಸಾಧನ ವಿನ್ಯಾಸಕರು ಇಂಟರ್‌ನೆಟ್ ಕಡಿತ ಅಥವಾ ಸಿಗ್ನಲ್ ಕಳೆತನ ಸಂದರ್ಭದಲ್ಲಿ ಸಾಧನವನ್ನು ಸೀಮಿತ ನಿರ್ಣಯಗಳಿಗೆ ಸಿದ್ದವಾಗಿರಬಹುದೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಸ್ಮಾರ್ಟ್ ಥರ್ಮೋಸ್ಟಾಟ್ ಇಂಟರ್‌ನೆಟ್‌ಗೆ ಸಂಪರ್ಕ ಇಲ್ಲದಿದ್ದರೂ ಕೆಲವು ನಿಯಂತ್ರಣಗಳನ್ನು ಸಾಧಿಸಬಹುದಾಗಿದೆ.

ಈ ಫೆರಾರಿ ಭೂಗర్భದಲ್ಲಿರುವ ಸೀಲ್ ಪಡೆದಿಲ್ಲದ ಹಂತದಲ್ಲಿ അപ್‌గ్రೇಡ್ ಮಾಡುವ ಯತ್ನದ ಕಾರಣಕ್ಕೆ ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ

MQTT ಸಂಪರ್ಕ ಕಳೆತವನ್ನು ನಿರ್ವಹಿಸಲು, ಡಿವೈಸ್ ಮತ್ತು ಸರ್ವರ್ ಕೋಡ್ ಎಲ್ಲಾ ಸಂದೇಶಗಳ ವಿತರಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕು, ಉದಾಹರಣೆಗೆ ಎಲ್ಲ ಸಂದೇಶಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯೆಗಳಿರುವ ಸ್ಪಷ್ಟ ಪ್ರತಿಕ್ರಿಯೆ ವಿಷಯ (reply topic) ಬಳಸಿ, ಇಲ್ಲದೆ ಇದ್ದರೆ ಸಂದೇಶಗಳನ್ನು ಕೈಯಿಂದ ಶ್ರೇಣೀಕರಿಸಿ ನಂತರ ಪುನಃಪ್ರಸಾರಗೊಳಿಸುವ ವ್ಯವಸ್ಥೆ.

ಕಮಾಂಡ್‌ಗಳು

ಕಮಾಂಡ್‌ಗಳು ಕ್ಲೌಡ್‌ನಿಂದ ಡಿವೈಸ್‌ಗೆ ಕಳುಹಿಸಲಾದ ಸಂದೇಶಗಳು, ಅದು ಏನಾದರೂ ಮಾಡಲು ಸೂಚಿಸುತ್ತವೆ. ಅತಿ ಹೆಚ್ಚಿನ ಸಮಯ ಇದುವು ಆಕ್ಟ್ಯುಯೇಟರ್ ಮೂಲಕ ಒಂದು ಔಟ್‌ಪುಟ್ ಕೊಡುವುದಾಗಿರಬಹುದು, ಆದರೆ ಡಿವೈಸ್ ಸ್ವತಃ ಪುನರಾರಂಭಿಸುವುದಾಗಿರಬಹುದು, ಅಥವಾ ಹೆಚ್ಚುವರಿ ಟೆಲಿಮೆಟ್ರಿಯನ್ನು ಸಂಗ್ರಹಿಸಿ ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ಕಳುಹಿಸುವುದಾಗಬಹುದು.

ಇಂಟರ್‌ನೆಟ್ ಸಂಪರ್ಕ ಹೊಂದಿರುವ ಥರ್ಮೋಸ್ಟಾಟ್ ಬಿಸಿಯ성을 ಹೊಂದಿಸಲು ಕಮಾಂಡ್ ಪಡೆದಿದೆ

ಥರ್ಮೋಸ್ಟಾಟ್ ಕ್ಲೌಡ್‌ನಿಂದ ಬಿಸಿಯಿ ಪ್ರಾರಂಭಿಸಲು ಕಮಾಂಡ್ ಪಡೆಯಬಹುದು. ಎಲ್ಲಾ ಸೆನ್ಸರ್‌ಗಳ ಟೆಲಿಮೆಟ್ರಿ ಆಧರಿಸಿ, ಕ್ಲೌಡ್ ಸರ್ವೀಸ್ ಬಿಸಿಯಿರಬೇಕೆಂದು ನಿರ್ಧರಿಸಿದರೆ ಸಮರ್ಪಕ ಕಮಾಂಡ್ ಕಳುಹಿಸುತ್ತದೆ.

MQTT ಬ್ರೋಕರ್‌ಗೆ ಕಮಾಂಡ್‌ಗಳನ್ನು ಕಳುಹಿಸಿ

ನಮ್ಮ ಇಂಟರ್‌ನೆಟ್ ನಿಯಂತ್ರಿತ ನೈಟ್‌ಲೈಟ್‌ನ ಮುಂದಿನ ಹಂತವು ಸರ್ವರ್ ಕೋಡ್ IoT ಸಾಧನಕ್ಕೆ ಬೆಳಕು ಮಟ್ಟದ ಆಧಾರದ ಮೇಲೆ ಬೆಳಕು ನಿಯಂತ್ರಿಸಲು ಕಮಾಂಡ್ ಕಳುಹಿಸುವುದು.

  1. ಸರ್ವರ್ ಕೋಡ್ ಅನ್ನು VS Code ನಲ್ಲಿ ತೆರೆಯಿರಿ

  2. client_telemetry_topic ಘೋಷಣೆಯ ನಂತರ ಯಾವ ವಿಷಯಕ್ಕೆ ಕಮಾಂಡ್‌ಗಳನ್ನು ಕಳುಹಿಸುವುದೆಂದು ಪರಿಗಣಿಸಲು ಈ ಸಾಲನ್ನು ಸೇರಿಸಿ:

    server_command_topic = id + '/commands'
    
  3. handle_telemetry ಕಾರ್ಯದ ಕೊನೆಯಲ್ಲಿ ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:

    command = { 'led_on' : payload['light'] < 300 }
    print("Sending message:", command)
    
    client.publish(server_command_topic, json.dumps(command))
    

    ಇದು ಹೆಚ್ಚಿನ ಜಿ‌ಎಸ್‌ಓಎನ್ ಸಂದೇಶವನ್ನು ಕಮಾಂಡ್‌ಗಳ ವಿಷಯಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ, ಬೆಳಕು 300 ಕ್ಕಿಂತ ಕಡಿಮೆ ಇದ್ದರೆ led_on ನಿಜವಾಗಿರುತ್ತದೆ ಮತ್ತು ಇಲ್ಲದಿದ್ದರೆ ತಪ್ಪಾಗಿದೆ. ಬೆಳಕು ಕಡಿಮೆ ಇದ್ದರೆ ನಿಜವನ್ನು ಕಳುಹಿಸಿ ಡಿವೈಸ್ ಆಹ್ವಾನಿಸಿ LED ಅನ್ನು ಆನ್ ಮಾಡಲು.

  4. ಹಿಂದಿನಂತೆ ಕೋಡ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡಿ

  5. ನಿಮ್ಮ ಭೌತಿಕ ಅಥವಾ ವರ್ಚುವಲ್ ಡಿವೈಸ್‌ನ ಬೆಳಕು ಮಟ್ಟಗಳನ್ನು ಸರಿಹೊಂದಿಸಿ. ಸಂದೇಶಗಳು ಮತ್ತು ಕಮಾಂಡ್‌ಗಳು ಟರ್ಮಿನಲ್‌ಗೆ ಬರೆಯಲ್ಪಡುತ್ತವೆ:

    (.venv) ➜  nightlight-server python app.py
    Message received: {'light': 0}
    Sending message: {'led_on': True}
    Message received: {'light': 400}
    Sending message: {'led_on': False}
    

💁 ಟೆಲಿಮೆಟ್ರಿ ಮತ್ತು ಕಮಾಂಡ್‌ಗಳು ಪ್ರತಿ ವಿಷಯಕ್ಕೆ ಒಬ್ಬರನ್ನೊಬ್ಬರಂತೆ ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ. ಇದರರ್ಥ, ಹಲವಾರು ಸಾಧನಗಳಿಂದ ಟೆಲಿಮೆಟ್ರಿ ಒಂದೇ ವಿಷಯದಲ್ಲಿ ಬರುತ್ತದೆ ಮತ್ತು ಹಲವಾರು ಸಾಧನಗಳಿಗೆ ಕಮಾಂಡ್‌ಗಳು ಒಂದೇ ವಿಷಯದಲ್ಲಿ ಬರುತ್ತವೆ. ನಿಮಗೆ ನಿರ್ದಿಷ್ಟ ಸಾಧನಕ್ಕೆ ಕಮಾಂಡ್ ಕಳುಹಿಸಲು ಹಠಾತ್ ಬೇಕಾದರೆ, ವಿಶಿಷ್ಟ ಸಾಧನ ID ಮೂಲಕ ವಿಭಿನ್ನ ವಿಷಯಗಳನ್ನು ಬಳಸಬಹುದು, ಉದಾ: /commands/device1, /commands/device2. ಹೀಗೆ ಸಾಧನವು ತನ್ನ ಬುದ್ದಿಮತ್ತೆಯ ಸಂದೇಶಗಳ ಸಂದೇಶಗಳನ್ನು ಮಾತ್ರ ಕೇಳಬಹುದು.

💁 ನೀವು ಈ ಕೋಡ್ ಅನ್ನು code-commands/server ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಕಾಣಬಹುದು.

IoT ಸಾಧನದಲ್ಲಿ ಕಮಾಂಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ

ಸರ್ವರ್‌ ನಲ್ಲಿ ಕಮಾಂಡ್‌ಗಳು ಕಳುಹಿಸಲಾಗುತ್ತಿರುವಾಗ, ಇದೀಗ ನೀವು IoT ಸಾಧನದ LED ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ಅವುಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಕೋಡ್ ಸೇರಿಸಬಹುದು.

MQTT ಬ್ರೋಕರಿಂದ ಕಮಾಂಡ್‌ಗಳನ್ನು ಕೇಳಲು ಕೆಳಗಿನ ಸಂಬಂಧಿತ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ:

ಈ ಕೋಡ್ ಬರೆಯಲ್ಪಟ್ಟ ನಂತರ ಮತ್ತು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವಾಗ, ಬೆಳಕು ಮಟ್ಟಗಳನ್ನು ಬದಲಾಯಿಸಿ ನೋಡುವುದು. ಸರ್ವರ್ ಮತ್ತು ಡಿವೈಸ್ ಔಟ್ಪುಟ್ ಅನ್ನು ಗಮನಿಸಿ, ಬೆಳಕನ್ನು ಬದಲಿಸುವಾಗ LED ಅನ್ನು ಗಮನಿಸಿ.

ಸಂಪರ್ಕ ಕಳೆತನ

IoT ಡಿವೈಸ್ ಆಫ್‌ಲೈನ್ ಆಗಿದ್ದಾಗ ಕ್ಲೌಡ್ ಸರ್ವೀಸ್ ಕಮಾಂಡ್ ಕಳುಹಿಸಬೇಕಾದರೆ ಏನು ಮಾಡಬೇಕು? ಉತ್ತರ ಮತ್ತೆ ಅವಲಂಬಿಸುತ್ತದೆ.

ಇತ್ತೀಚಿನ ಕಮಾಂಡ್ ಹಿಂದಿನದ್ದನ್ನು ಮೀರಿಸುವುದಾದರೆ ಹಳೆಯವನ್ನ ದೂರವಿಟ್ಟು ಮರುಕಳುಹಿಸಲು ಅಗತ್ಯವಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಸರ್ವೀಸ್ ಬಿಸಿಯು ಆನ್ ಮಾಡಲು ಕಮಾಂಡ್ ಕಳುಹಿಸಿ ನಂತರ ಅದನ್ನು ಆಫ್ ಮಾಡಲು ಕಮಾಂಡ್ ಕಳುಹಿಸಿದರೆ, ಫಸ್ಟ್ ಆನ್ ಕಮಾಂಡ್ ಮರುಕಳುಹಿಸುವುದು ಅಗತ್ಯವಿಲ್ಲ.

ಆದರೆ ಕಮಾಂಡ್‌ಗಳನ್ನು ಕ್ರಮವಾಗಿ ನಡಿಸಲು ಅಗತ್ಯವಿರುವಂತಹ ಪ್ರಕ್ರಿಯೆ ಇದ್ದರೆ, ಸಂಪರ್ಕ ಮರುಸ್ಥಾಪನೆ ಆಯಿತು ನಂತರ ಕ್ರಮವಾಗಿ ಕಮಾಂಡ್ ಕಳುಹಿಸಬೇಕು.

ಅಗತ್ಯವಿದ್ದರೆ MQTT ಮೂಲಕ ಕಮಾಂಡ್‌ಗಳು ಎಂದಿಗೂ ಸರಿಯಾದ ಕ್ರಮದಲ್ಲಿ ಕಳುಹಿಸಲ್ಪಡುವುದನ್ನು ಸಾಧನ ಅಥವಾ ಸರ್ವರ್ ಕೋಡ್ ಹೇಗೆ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು?


🚀 ಸವಾಲು

ಕೊನೆಯ ಮೂರು ಪಾಠಗಳಲ್ಲಿ ನಿಮ್ಮ ಮನೆಯಲ್ಲಿ, ಶಾಲೆಯಲ್ಲಿ ಅಥವಾ ಕೆಲಸದ ಜಾಗದಲ್ಲಿ ಇರುವ ಎಷ್ಟು IoT ಸಾಧನಗಳಿವೆ ಎಂದು ಪಟ್ಟಿಮಾಡಿ ಅವುಗಳು ಮೈಕ್ರೋಕಂಟ್ರೋಲರ್ ಅಥವಾ ಏಕರೂಪದ ಕಂಪ್ಯೂಟರ್ ಆಧಾರಿತವೆಯಾ ಅಥವಾ ಎರಡರಲ್ಲಿ ಯಾವುದೇ ಮಿಶ್ರಣವಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಿ, ಮತ್ತು ಅವುಗಳನ್ನು ಯಾವ ಸೆನ್ಸರ್‌ಗಳು ಮತ್ತು ಆಕ್ಟ್ಯುಯೇಟರ್‌ಗಳು ಬಳಸುತ್ತಿದ್ದವೆಯೋ ಅದನ್ನು ಯೋಚಿಸಿ.

ಈ ಸಾಧನಗಳಿಗೆ, ಅವು ಯಾವ ರೀತಿಯ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುತ್ತಿದ್ದವೆಯೋ ಅಥವಾ ಸ್ವೀಕರಿಸುತ್ತಿದ್ದವೆಯೋ ಪರಿಗಣಿಸಿ. ಯಾವ ಟೆಲಿಮೆಟ್ರಿ ಕಳುಹಿಸುತ್ತವೆ? ಯಾವ ಕಮಾಂಡ್‌ಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತವೆ? ನೀವು ಅವು ಸುರಕ್ಷಿತವೆಂದು ಭಾವಿಸುವಿರಾ?

ಉಪನ್ಯಾಸೋತ್ತರ ಪ್ರಶ್ನೋತ್ತರ

ಪೋಸ್ಟ್-ಲೇಕ್ಚರ್ ಕ್ವಿಜ್

ಪರಿಶೀಲನೆ & ಸ್ವಯಂ ಅಧ್ಯಯನ

MQTT ವಿಕಿಪೀಡಿಯ ಪುಟದಲ್ಲಿ MQTT ಬಗ್ಗೆ ಮತ್ತಷ್ಟು ಓದಿ.

ಮೋಸ್ಕ್ವಿಟ್ಟೋ ಬಳಸಿ ನಿಮ್ಮ ಮೂಲಕವೇ MQTT ಬ್ರೋಕರ್ ಅನ್ನು ನಡೆಸಿ ಮತ್ತು ನಿಮ್ಮ IoT ಸಾಧನ ಮತ್ತು ಸರ್ವರ್ ಕೋಡ್ ನಿಂದ ಅದಕ್ಕೆ ಸಂಪರ್ಕಿಸಬಹುದೆಂದು ಪ್ರಯತ್ನಿಸಿ.

💁 ಸಲಹೆ - ಡೀಫಾಲ್ಟ್ ಆಗಿ ಮೋಸ್ಕ್ವಿಟ್ಟೋ ಅನಾಮಧೇಯ ಸಂಪರ್ಕಗಳನ್ನು ಅನುಮತಿಸುವುದು ಇಲ್ಲ (ಅಂದರೆ ಬಳಕೆದಾರ ಹೆಸರು ಮತ್ತು ಪಾಸ್ವರ್ಡ್ ಇಲ್ಲದೆ ಸಂಪರ್ಕಿಸುವುದು) ಮತ್ತು ಇದು ಆ ಕಂಪ್ಯೂಟರ್ ಹೊರಗಿನ ಸಂಪರ್ಕಗಳನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ. ನೀವು ಕೆಳಕಂಡಂತೆ mosquitto.conf ಸಂರಚನಾ ಕಡತ ಮೂಲಕ ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಬಹುದು:

listener 1883 0.0.0.0
allow_anonymous true

ನಿಯೋಜನೆ

ಇತರ ಸಂವಹನ ಪ್ರೋಟೋಕಾಲ್‌ಗಳೊಂದಿಗೆ MQTT ನ ಹೋಲಿಕೆ ಮತ್ತು ಭೇದಗಳನ್ನು ಪರಿಶೀಲಿಸಿ


ವಿಮೋಜನೆ: ಈ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು AI ಅನುವಾದ ಸೇವೆ Co-op Translator ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಲ್ಲಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸত্যತೆಗಳು ಇರುವ ಸಂಭವವಿದೆ ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿನ ಮೂಲ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಈ ಅನುವಾದದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಗ್ರಹಿಕೆಗಳು ಅಥವಾ ದೋಷವಾದ ಅರ್ಥ ಮಾಡಿಕೊಳಕುಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಲ್ಲ.