2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
संक्षेपः: अस्मिन् लेखे इन्टरनेट् आफ् थिंग्स, क्लाउड् प्लेटफॉर्म, MQTT, HTTP, तथा च डाटा विजुअलाइजेशन इत्यादीनां मूलसंकल्पनानां परिचयः सरलतया सुलभतया च EMQX, Flask, InfluxDB, Grafana इत्यादीनां मुख्यधारासाधनानाम् अपि संयोजनं करोति you step by step कथं Internet of Things मेघमञ्चं निर्मातव्यम् यत् बहुविधप्रोटोकॉलसमर्थयति। लेखस्य स्पष्टसंरचना, चित्राणि, पाठाः च सन्ति, तथा च कोडः सूचनाप्रदः अस्ति तथा च अवगन्तुं सुलभः अस्ति यत् पाठकान् IoT मेघमञ्चस्य निर्माणस्य मूलप्रौद्योगिक्याः शीघ्रं निपुणतां प्राप्तुं साहाय्यं कर्तुं विनिर्मितः अस्ति
मुख्यशब्दाः : १.IoT, क्लाउड प्लेटफॉर्म, MQTT, HTTP, डेटा विजुअलाइजेशन, EMQX, फ्लास्क, InfluxDB, Grafana
इन्टरनेट् आफ् थिङ्ग्स् (IoT, इन्टरनेट् आफ् थिङ्ग्स्) इति कस्यापि वस्तुनः अथवा प्रक्रियायाः वास्तविकसमयसङ्ग्रहं निर्दिशति यस्य निरीक्षणं, संयोजितं, अन्तरक्रिया च विविधसूचनासंवेदकानां, रेडियो आवृत्तिपरिचयप्रौद्योगिक्याः, वैश्विकस्थाननिर्धारणप्रणाली इत्यादीनां माध्यमेन करणीयम्, वस्तुनां वस्तूनाञ्च मध्ये, वस्तूनाम् जनानां च मध्ये सर्वव्यापी संचारं साक्षात्कर्तुं सन्दर्भे वयं वस्तुनां प्रक्रियाणां च बुद्धिमान् बोधं, परिचयं, प्रबन्धनं च प्राप्तुं शक्नुमः।
IoT प्रणाली वास्तुकला प्रायः त्रयः स्तराः विभक्ताः भवन्ति :
मेघमञ्चः अन्तर्जाल-आधारित-सेवानां परिवर्तनं, उपयोगं, वितरणं च प्रतिरूपं निर्दिशति, यत्र प्रायः अन्तर्जालमाध्यमेन गतिशीलरूपेण स्केल-करणीयानाम्, प्रायः वर्चुअलाइज्ड्-संसाधनानाम् प्रावधानं भवति मेघमञ्चः IoT अनुप्रयोगानाम् कृते शक्तिशालिनः कम्प्यूटिंग्, भण्डारणं, संजालसंसाधनं च प्रदातुं शक्नोति, येन IoT अनुप्रयोगानाम् विकासस्य, परिनियोजनस्य च व्ययः न्यूनीकरोति
दत्तांशदृश्यीकरणं ग्राफिक्स् तथा चार्ट् इत्यादिषु दृश्यरूपेण दत्तांशं प्रदर्शयितुं निर्दिशति यत् उपयोक्तृभ्यः दत्तांशं अधिकतया सहजतया अवगन्तुं तथा च दत्तांशस्य पृष्ठतः प्रतिमानानाम्, प्रवृत्तीनां च अन्वेषणं प्राप्तुं सहायकं भवति
MQTT (Message Queuing Telemetry Transport) इति लघु-सन्देशप्रकाशन/सदस्यता-प्रोटोकॉलः अस्ति यः न्यून-बैण्डविड्थ्, न्यून-शक्तियुक्तानां उपकरणानां, संजालस्य च कृते डिजाइनः कृतः अस्ति । MQTT इत्यस्य व्यापकरूपेण उपयोगः इन्टरनेट् आफ् थिंग्स इत्यस्य क्षेत्रे भवति, विशेषतः संसाधन-संकुचित-यन्त्राणां अविश्वसनीय-जाल-वातावरणानां च कृते उपयुक्तः ।
HTTP (Hypertext Transfer Protocol) इति एकः अनुप्रयोगस्तरप्रोटोकॉलः अस्ति यस्य उपयोगः जालपुटस्य जालसर्वरस्य च मध्ये सूचनां स्थानान्तरयितुं भवति । HTTP प्रोटोकॉल सरलं सुलभं च अस्ति तथा च इन्टरनेट् आफ् थिङ्ग्स् इत्यादिषु विविधजाल-अनुप्रयोगेषु व्यापकरूपेण उपयोगः भवति ।
EMQX एकः मुक्तस्रोतः, उच्च-प्रदर्शनीयः, स्केल-योग्यः MQTT सन्देशसर्वरः अस्ति यः कोटिकोटिसमवर्तीसंयोजनानां, सन्देशस्य थ्रूपुटस्य च समर्थनं करोति ।
फ्लास्कः पायथन्-भाषायां लिखितः लघुः जाल-अनुप्रयोग-रूपरेखा अस्ति, यः ज्ञातुं उपयोगाय च सुलभः, जाल-अनुप्रयोगानाम्, एपिआइ-अन्तरफलकानां च शीघ्रं निर्माणाय उपयुक्तः
InfluxDB एकः मुक्तस्रोतसमयश्रृङ्खलादत्तांशकोशः अस्ति यः समयश्रृङ्खलादत्तांशस्य संग्रहणार्थं प्रश्नार्थं च विनिर्मितः अस्ति ।
Grafana इति एकं मुक्तस्रोतदत्तांशदृश्यीकरणसाधनं यत् बहुविधदत्तांशस्रोतान् संयोजयित्वा सुन्दरं शक्तिशालीं च डैशबोर्डं निर्मातुं शक्नोति तथा च वास्तविकसमये आँकडाप्रदर्शयितुं शक्नोति ।
एषा परियोजना एकं IoT मेघमञ्चं निर्मास्यति यत् निम्नलिखितकार्यं प्राप्तुं MQTT तथा HTTP प्रोटोकॉल समर्थयति:
1. HTTP सर्वर निर्माणम् (Flask) .
- # 导入 Flask 库
- from flask import Flask, request, jsonify
-
- # 创建 Flask 应用
- app = Flask(__name__)
-
- # 定义 HTTP 接口,接收 POST 请求
- @app.route('/data', methods=['POST'])
- def receive_data():
- # 获取请求数据
- data = request.get_json()
-
- # 数据处理逻辑,例如数据校验、格式转换等
- # ...
-
- # 将数据写入 InfluxDB (示例)
- from influxdb import InfluxDBClient
- client = InfluxDBClient('localhost', 8086, 'user', 'password', 'iot_data')
- json_body = [
- {
- "measurement": "sensor_data",
- "tags": {
- "sensor_id": data.get("sensor_id")
- },
- "fields": {
- "temperature": data.get("temperature"),
- "humidity": data.get("humidity")
- }
- }
- ]
- client.write_points(json_body)
-
- # 返回响应
- return jsonify({'message': 'Data received successfully!'}), 200
-
- # 启动 Flask 应用
- if __name__ == '__main__':
- app.run(debug=True)
संहिताविवरणम् : १.
Flask
ढांचा HTTP सर्वरं निर्माय परिभाषयति/data
अन्तरफलकं POST अनुरोधं प्राप्नोति ।request.get_json()
HTTP अनुरोधे JSON दत्तांशं प्राप्नुवन्तु ।InfluxDBClient
InfluxDB दत्तांशकोशे सम्बद्धं कृत्वा दत्तांशकोशे दत्तांशं लिखन्तु ।2. MQTT सन्देशसंसाधनम् (Python) .
- # 导入必要的库
- import paho.mqtt.client as mqtt
- from influxdb import InfluxDBClient
- import json
-
- # MQTT Broker 配置
- MQTT_BROKER = "localhost"
- MQTT_PORT = 1883
- MQTT_TOPIC = "sensor/data"
-
- # InfluxDB 配置
- INFLUXDB_HOST = "localhost"
- INFLUXDB_PORT = 8086
- INFLUXDB_USER = "user"
- INFLUXDB_PASSWORD = "password"
- INFLUXDB_DATABASE = "iot_data"
-
- # 创建 InfluxDB 客户端
- influxdb_client = InfluxDBClient(
- host=INFLUXDB_HOST,
- port=INFLUXDB_PORT,
- username=INFLUXDB_USER,
- password=INFLUXDB_PASSWORD,
- database=INFLUXDB_DATABASE
- )
-
- # 连接到 MQTT Broker
- def on_connect(client, userdata, flags, rc):
- print("Connected to MQTT Broker with result code " + str(rc))
- client.subscribe(MQTT_TOPIC)
-
- # 接收 MQTT 消息
- def on_message(client, userdata, msg):
- # 解析数据
- data = json.loads(msg.payload.decode())
-
- # 构建 InfluxDB 数据点
- influxdb_data = [
- {
- "measurement": "sensor_data",
- "tags": {
- "sensor_id": data.get("sensor_id"),
- },
- "fields": {
- "temperature": data.get("temperature"),
- "humidity": data.get("humidity"),
- }
- }
- ]
-
- # 写入 InfluxDB
- influxdb_client.write_points(influxdb_data)
- print("Data written to InfluxDB: " + str(influxdb_data))
-
- # 创建 MQTT 客户端
- mqtt_client = mqtt.Client()
- mqtt_client.on_connect = on_connect
- mqtt_client.on_message = on_message
- mqtt_client.connect(MQTT_BROKER, MQTT_PORT, 60)
-
- # 启动 MQTT 客户端
- mqtt_client.loop_start()
-
- # 保持程序运行
- while True:
- pass
संहिताविवरणम् : १.
paho.mqtt.client
MQTT Broker इत्यनेन सह सम्बद्धं कृत्वा निर्दिष्टस्य विषयस्य सदस्यतां गृहाण।json.loads()
सन्देशसामग्री विश्लेषणं कुर्वन्तु।influxdb_client.write_points()
InfluxDB दत्तांशकोशे दत्तांशं लिखन्तु ।3. दत्तांशदृश्यीकरणं (Grafana) .
उदाहरणम् Grafana प्रश्नकथनम् :
SELECT "temperature", "humidity" FROM "sensor_data" WHERE time > now() - 1h
प्रश्नकथनं तः भविष्यतिsensor_data
मापने अन्तिमघण्टायाः तापमानस्य आर्द्रतायाः च दत्तांशं पृच्छन्तु ।
इयं परियोजना Flask, EMQX, InfluxDB तथा Grafana इत्यादीनां साधनानां संयोजनेन IoT मेघमञ्चं निर्माति यत् MQTT तथा HTTP प्रोटोकॉल समर्थयति, तथा च आँकडासंग्रहणं, भण्डारणं, दृश्यप्रदर्शनं च साकारं करोति अधिकप्रकारस्य उपकरणानां प्रोटोकॉल-प्रवेशस्य च समर्थनार्थं मञ्चस्य विस्तारं लचीलतया कर्तुं शक्यते, तस्य कार्याणि च वास्तविक-आवश्यकतानुसारं अनुकूलितुं शक्यन्ते
सूचना:
paho-mqtt
,influxdb
,flask
प्रतीक्षतु।यदि भवान् विशिष्टं कोडं विचारं च इच्छति तर्हि भवान् मां निजीसन्देशं प्रेषयितुं शक्नोति! ! !