From 0d4fbe1032b1f7c78e9e7d4b79bbd3dacb9bb7ac Mon Sep 17 00:00:00 2001 From: KC-Yu <944472692@qq.com> Date: Wed, 12 Jan 2022 14:30:27 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=B8=AD=E5=8D=88=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...2\350\256\257\351\223\276\350\267\257.txt" | 26 +++++++ .../Log_yjc.md" | 21 +++++- ...21\351\227\256\351\233\206\345\220\210.md" | 69 ++++++++++--------- .../index.py" | 11 ++- 4 files changed, 87 insertions(+), 40 deletions(-) create mode 100644 "\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/2022\345\271\2641\346\234\21012\346\227\245\351\200\232\350\256\257\351\223\276\350\267\257.txt" diff --git "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/2022\345\271\2641\346\234\21012\346\227\245\351\200\232\350\256\257\351\223\276\350\267\257.txt" "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/2022\345\271\2641\346\234\21012\346\227\245\351\200\232\350\256\257\351\223\276\350\267\257.txt" new file mode 100644 index 0000000..9132024 --- /dev/null +++ "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/2022\345\271\2641\346\234\21012\346\227\245\351\200\232\350\256\257\351\223\276\350\267\257.txt" @@ -0,0 +1,26 @@ +[2022年1月12日] +[通讯链路] +1. 终端第一次启动(待注册) + i: 连接网关局域网 + ii: 初始化MQTT,订阅相关主题 + iii: 查询注册信息,返回未注册 + iv: 完成设备注册流程(待完成) +2. 终端第N次启动(已注册) + i: 连接网关局域网 + ii: 初始化MQTT,订阅相关主题 + iii: 查询注册信息,返回已注册 + v:进入正常在线工作状态 +3. 终端侧通信过程 + i:传感器采集数据(模拟) + ii:ESP32向网关请求时间戳 + iii:ESP32根据数据包结构对数据进行封装,之后上传 + iv:终端接受来自网关的数据,解析并打印 +4. 网关侧通信过程 + i:响应终端请求,发送时间戳 + ii:接收终端信息的,验证数据包结构的完整性 + iii:将接收到的终端信息转发服务器 + iv:将接收到的服务器信息分发终端 +5. 服务器侧通信过程 (略) + + + \ No newline at end of file diff --git "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" index a4a92d2..aa0567a 100644 --- "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" +++ "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" @@ -1,14 +1,31 @@ +[1鏈12鏃 + +鏃╀笂瀵规暟鎹簱娣诲姞浜嗕竴涓澶囪〃锛岀敤浜庡瓨鏀惧凡娉ㄥ唽璁惧鐨勭浉鍏充俊鎭紝瀛楁鍚嶆殏瀹氬嚑涓 + +| 瀛楁 | 瑙i噴 | +| -------------- | ---------------------- | +| id | 涓婚敭锛岃嚜澧瀒d | +| SNNo | 璁惧鍞竴SN鐮 | +| private_key | 鐢ㄤ簬绛惧悕鐨勭閽 | +| public_key | 鐢ㄤ簬绛惧悕鐨勫叕閽 | +| encryption_key | 鐢ㄤ簬鏁版嵁鍔犲瘑鐨勫绉板瘑閽 | +| register_time | 娉ㄥ唽鏃堕棿 | + +涓嬪崍鍦ㄦ敹淇℃伅鐨勯偅涓灞傚姞澶氫竴涓壌鍒澶囨槸鍚﹀凡娉ㄥ唽鐨勬祦绋嬶紝濡傛灉宸叉敞鍐屾墠鍙互閫氳繃锛屾病鏈夋敞鍐岀殑璇濋┏鍥 + [1鏈11鏃 鏃╀笂锛 瑙勮寖琛ュ厖浜嗕腑杞剼鏈殑浠g爜锛屼紭鍖栦簡鏁版嵁缁撴瀯 鍐欎簡鏈嶅姟鍣ㄧ殑鎺ュ彈鎺ュ彛锛岀畝鍗曡繑鍥炰簡閿欒淇℃伅 + 1. 瀹屾垚浜嗗鏁版嵁缁撴瀯鐨勮瘑鍒紝濡傛灉缁撴瀯鏈夎鍦ㄧ綉鍏冲鎷︽埅 [1鏈10鏃 -1. 浠婂ぉ涓昏瀵归綈浜嗕箣鍚庣殑璁″垝鍜屾椂闂磋妭鐐癸紝瀵瑰悗缁伐浣滄湁鍚堢悊鎬х殑瀹夋帓 -2. 缂栧啓浜嗕腑杞剼鏈殑绠鍗曠増銆傛槑澶╄鍒掑啓鏈嶅姟鍣ㄧ殑鎺ユ敹鎺ュ彛 +1. 浠婂ぉ涓昏瀵归綈浜嗕箣鍚庣殑璁″垝鍜屾椂闂磋妭鐐癸紝瀵瑰悗缁伐浣滄湁鍚堢悊鎬х殑瀹 +2. 鎺 +3. 缂栧啓浜嗕腑杞剼鏈殑绠鍗曠増銆傛槑澶╄鍒掑啓鏈嶅姟鍣ㄧ殑鎺ユ敹鎺ュ彛 [1鏈4鏃-1鏈7鏃 diff --git "a/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" "b/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" index 3cc40ee..dc5a823 100644 --- "a/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" +++ "b/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" @@ -1,19 +1,21 @@ # 寮鍙戝墠鍑嗗 + ## 1. 璁惧闇瑕佷笌鏈嶅姟鍣ㄤ氦鎹㈢殑瀛楁 + a. SN鐮佲斺斺斺旇澶囩殑鍞竴鏍囪瘑 b. 璁惧鐨勭被鍨 - - I. 浼犳劅鍣ㄥ瀷 - II. 闂ㄧ鍨 - III. 鏅鸿兘浜掕仈璁惧 + +``` +I. 浼犳劅鍣ㄥ瀷 +II. 闂ㄧ鍨 +III. 鏅鸿兘浜掕仈璁惧 +``` c. DH瀵嗛挜浜ゆ崲鈥斺斿緱鍒伴氫俊鐨勫绉板瘑閽 d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 - - ## 2. 娉ㄥ唽杩囩▼ 1. 璁惧涓诲姩鍚戞湇鍔″櫒鍙戣捣娉ㄥ唽璇锋眰 @@ -25,10 +27,10 @@ d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 7. 璁惧灏嗘湇鍔″櫒鍙戦佺殑鍏挜锛屼互鍙婅嚜宸辩殑绉侀挜锛屼互鍙婂緱鍒扮殑瀵圭О瀵嗛挜瀛樻斁璧锋潵銆 8. 鏈嶅姟鍣ㄥ皢璁惧鍙戦佺殑鍏挜锛屼互鍙婅嚜宸辩殑绉侀挜锛屼互鍙婂緱鍒扮殑瀵圭О瀵嗛挜瀛樻斁璧锋潵銆 - ## 3. 閫氫俊杩囩▼ 1. 缁勬垚娑堟伅浣撶殑鍩烘湰缁撴瀯 + ```json { "topic": "temperture", @@ -38,52 +40,55 @@ d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 } ``` -| 瀛楁鍚 | 绫诲瀷 | 娉ㄩ噴 | -| --- | --- | --- | -| topic | str | 涓婁紶娑堟伅鐨勪富棰 | -| payload | str | 娑堟伅鍐呭涓讳綋 | -| timestamp | int | 鏃堕棿鎴筹紙绉掔骇鍒殑锛 | -| SNNo | str | 璁惧鍞竴鏍囪瘑SN鐮 | +| 瀛楁鍚 | 绫诲瀷 | 娉ㄩ噴 | +| --------- | ---- | ------------------ | +| topic | str | 涓婁紶娑堟伅鐨勪富棰 | +| payload | str | 娑堟伅鍐呭涓讳綋 | +| timestamp | int | 鏃堕棿鎴筹紙绉掔骇鍒殑锛 | +| SNNo | str | 璁惧鍞竴鏍囪瘑SN鐮 | 2. 鍒╃敤瀵圭О瀵嗛挜瀵规秷鎭綋杩涜鍔犲瘑 3. 鍔犲瘑鍚庣殑娑堟伅鍐呭鍙栧搱甯屽悗鍒╃敤绉侀挜鍔犲瘑锛岀粨鍚堝姞瀵嗗悗鐨勬秷鎭唴瀹逛竴骞跺彂閫 + ```json { "plain": "鍔犲瘑鍚庣殑鍐呭", "sign": "绛惧悕鍚庣殑鍐呭" } ``` -4. 鎺ユ敹鏂瑰彇寰楁秷鎭悗楠岀,纭娑堟伅鍚堟硶鎬у悗锛屽湪鎵ц鍚庣画鎿嶄綔 +4. 鎺ユ敹鏂瑰彇寰楁秷鎭悗楠岀,纭娑堟伅鍚堟硶鎬у悗锛屽湪鎵ц鍚庣画鎿嶄綔 5. PS锛 鍙戦佹秷鎭椂锛孧QTT涓婚闇甯︿笂鑷繁鐨勮澶囧彿淇℃伅锛屼互渚涙帴鏀舵柟纭 -璁ゅ彂閫佹柟韬唤 - - 濡傝澶嘾evice001鍙戦佷俊鎭紝鍒欏彂甯冧富棰樺簲涓 /device001/message + 璁ゅ彂閫佹柟韬唤 + 濡傝澶嘾evice001鍙戦佷俊鎭紝鍒欏彂甯冧富棰樺簲涓 /device001/message 缃戝叧绔剼鏈細璇嗗埆鏁版嵁鏍煎紡瀵逛笉瀵癸紝濡傛灉涓嶅鐨勮瘽涔熷氨鍦ㄨ繖閲屽氨鎷︽埅浜嗭紝鑰屼笖涓嶄細鍐嶈浆鍙戝埌鏈嶅姟鍣ㄤ笂锛屽苟涓斾細鍙戦佷竴涓富棰樹负/{deviceId}/error 鐨勯敊璇俊鎭粰璁惧 鎵浠ヨ澶囪涓诲姩璁㈤槄/{deviceId}/callback/# 鐨勬秷鎭唴瀹 璁炬兂锛 - 杩欓噷鏄笉鏄彲浠ュ畾鍒朵竴涓猚allback涓婚锛岃缃戝叧澶勭悊瀹屾秷鎭箣鍚庡強鏃跺彂閫佸洖璋冪粰璁惧锛岃繖鏍疯澶囦篃鐭ラ亾鑷繁鐨勬秷鎭埌搴曞彂娌″彂鎴愬姛锛屽鏋滄病娉曟垚鍔熺殑璇濆湪鍝噷鍑虹幇浜嗛棶棰橈紝鎻愰珮浜や簰浣撻獙銆 +杩欓噷鏄笉鏄彲浠ュ畾鍒朵竴涓猚allback涓婚锛岃缃戝叧澶勭悊瀹屾秷鎭箣鍚庡強鏃跺彂閫佸洖璋冪粰璁惧锛岃繖鏍疯澶囦篃鐭ラ亾鑷繁鐨勬秷鎭埌搴曞彂娌″彂鎴愬姛锛屽鏋滄病娉曟垚鍔熺殑璇濆湪鍝噷鍑虹幇浜嗛棶棰橈紝鎻愰珮浜や簰浣撻獙銆 闂1锛 - 鍋囪涓棿浜哄湪杩欓噷鍋氫簡鎵嬭剼锛屽彂閫佷簡杩欐牱鐨勪富棰樼粰璁惧锛岃璁惧璇互涓烘秷鎭凡缁忓埌杈句簡鏈嶅姟鍣紝瀹為檯涓婅鎷︽埅涓嬫潵浜嗭紝鏄笉鏄瓨鍦ㄧ潃瀹夊叏鐨勯棶棰樸 - +鍋囪涓棿浜哄湪杩欓噷鍋氫簡鎵嬭剼锛屽彂閫佷簡杩欐牱鐨勪富棰樼粰璁惧锛岃璁惧璇互涓烘秷鎭凡缁忓埌杈句簡鏈嶅姟鍣紝瀹為檯涓婅鎷︽埅涓嬫潵浜嗭紝鏄笉鏄瓨鍦ㄧ潃瀹夊叏鐨勯棶棰樸 + ## 涓婚鏍煎紡瑙勮寖 璁惧绔笂鍙戠殑涓婚蹇呴』閬靛惊涓涓嬭瀹 + 1. 绗竴涓瓧娈靛繀椤绘槸鑷韩鐨刣eviceId 濡 /{deviceId}/ 2. 绗簩涓瓧娈垫槸鏀跺彂鐨勫瓧娈靛悕 -| 瀛楁 | 瑙i噴 | 鏄惁闇瑕佽澶囦富鍔ㄨ闃 | -| --- | --- | :---: | -| message | 姝e父浜や簰淇℃伅锛岃浇浣撳弬鑰3. 閫氫俊杩囩▼ | 鍚 | -| callback | 浜や簰杩斿洖淇℃伅 | 鏄 | -| system | 绯荤粺杩斿洖淇℃伅锛堝寘鎷涓娆℃敞鍐屾椂锛岄兘鏄敤杩欎釜涓婚锛 | 鏄 | +| 瀛楁 | 瑙i噴 | 鏄惁闇瑕佽澶囦富鍔ㄨ闃 | +| -------- | ------------------------------------------------ | :------------------: | +| message | 姝e父浜や簰淇℃伅锛岃浇浣撳弬鑰3. 閫氫俊杩囩▼ | 鍚 | +| callback | 浜や簰杩斿洖淇℃伅 | 鏄 | +| system | 绯荤粺杩斿洖淇℃伅锛堝寘鎷涓娆℃敞鍐屾椂锛岄兘鏄敤杩欎釜涓婚锛 | 鏄 | + +## 杩斿洖鐮佹槧灏勮〃 -## 閿欒鐮佹槧灏勮〃 鍥炶皟杩斿洖鏍煎紡 + ```json { "code": 200, @@ -91,9 +96,9 @@ d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 } ``` -| code | 瑙i噴 | 澶囨敞 | -| --- | :---: | --- | -| 200 | 鎴愬姛 | | -| 300 | 浼犻佹暟鎹粨鏋勪笉瀵癸紝鎴栬呯己灏戞煇涓瓧娈 | | -| 400 | 浼犺緭鍒版湇鍔″櫒鏃跺け璐 | 鏈夊彲鑳藉師鍥犳椂鏈嶅姟鍣ㄦ柇寮杩炴帴绛夐棶棰橈紝msg鏈夊叿浣撴姤閿欎俊鎭 | -| 500 | 鏃堕棿鎴抽潪娉 | 鏃堕棿鎴冲凡瓒呮椂鎴栬呮椂闂存埑澶т簬褰撳墠鏃堕棿 | +| code | 瑙i噴 | 澶囨敞 | +| ---- | :--------------------------------: | ----------------------------------------------------------------- | +| 200 | 鎴愬姛 | | +| 300 | 浼犻佹暟鎹粨鏋勪笉瀵癸紝鎴栬呯己灏戞煇涓瓧娈 | | +| 400 | 浼犺緭鍒版湇鍔″櫒鏃跺け璐 | 鏈夊彲鑳藉師鍥犳椂鏈嶅姟鍣ㄦ柇寮杩炴帴绛夐棶棰橈紝msg鏈夊叿浣撴姤閿欎俊鎭 | +| 500 | 鏃堕棿鎴抽潪娉 | 鏃堕棿鎴冲凡瓒呮椂鎴栬呮椂闂存埑澶т簬褰撳墠鏃堕棿锛岀洰鍓嶆椂闂存埑鏆傚畾瓒呮椂鏃堕棿涓1鍒嗛挓 | diff --git "a/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" "b/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" index 64a812c..55cfd54 100644 --- "a/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" +++ "b/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" @@ -2,7 +2,8 @@ import time import paho.mqtt.client as mqtt import json,requests -HOST = '192.168.238.131' +# HOST = '192.168.238.131' +HOST = '10.70.107.212' # Office 妗岄潰 # HOST = '192.168.31.240' # IoT 鏍戣帗娲剧殑鍦板潃 PORT = 1883 @@ -17,7 +18,7 @@ def on_message(client, userdata, msg): topic_split = msg.topic.split("/") deviceId = topic_split[1] message_type = topic_split[2] - if message_type == "message": # 鍒ゆ柇娑堟伅涓嶆槸鍥炶皟鍚﹀垯杩涘叆姝诲惊鐜 + if message_type == "message": # 鍒ゆ柇娑堟伅绫诲瀷 validate_result = validate_message(message, deviceId) print(validate_result) if validate_result == True: @@ -42,10 +43,8 @@ def message_handle(msg, deviceId): 'Content-Type': 'application/json' } callback = requests.post('http://localhost:8000/recieveMessage',data=msg,headers=headers).content.decode() - if callback == '"success"': - return_callback(200, "success", deviceId) - else: - return_callback(500, callback, deviceId) + callback = json.loads(callback) + return_callback(callback['code'], callback['msg'], deviceId) except Exception as e: print(str(e)) return_callback(400, str(e), deviceId) -- Gitee From 78871166ff34947e78f3f565b88987862e12a42d Mon Sep 17 00:00:00 2001 From: KC-Yu <944472692@qq.com> Date: Wed, 12 Jan 2022 17:36:30 +0800 Subject: [PATCH 2/4] 2022/1/12 --- .../Log_yjc.md" | 7 ++++--- ...212\347\226\221\351\227\256\351\233\206\345\220\210.md" | 6 +++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" index aa0567a..f84792b 100644 --- "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" +++ "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" @@ -13,6 +13,8 @@ 涓嬪崍鍦ㄦ敹淇℃伅鐨勯偅涓灞傚姞澶氫竴涓壌鍒澶囨槸鍚﹀凡娉ㄥ唽鐨勬祦绋嬶紝濡傛灉宸叉敞鍐屾墠鍙互閫氳繃锛屾病鏈夋敞鍐岀殑璇濋┏鍥 +閫氫俊鐨勮繃绋嬪ぇ鑷村畬鎴愶紝杩欏懆鍚庡崐鍛ㄥ彲浠ョ爺绌朵竴涓婱QTT SSL杩欓噷鎬庝箞鎼 + [1鏈11鏃 鏃╀笂锛 @@ -23,9 +25,8 @@ [1鏈10鏃 -1. 浠婂ぉ涓昏瀵归綈浜嗕箣鍚庣殑璁″垝鍜屾椂闂磋妭鐐癸紝瀵瑰悗缁伐浣滄湁鍚堢悊鎬х殑瀹 -2. 鎺 -3. 缂栧啓浜嗕腑杞剼鏈殑绠鍗曠増銆傛槑澶╄鍒掑啓鏈嶅姟鍣ㄧ殑鎺ユ敹鎺ュ彛 +1. 浠婂ぉ涓昏瀵归綈浜嗕箣鍚庣殑璁″垝鍜屾椂闂磋妭鐐癸紝瀵瑰悗缁伐浣滄湁鍚堢悊鎬х殑瀹夋帓 +2. 缂栧啓浜嗕腑杞剼鏈殑绠鍗曠増銆傛槑澶╄鍒掑啓鏈嶅姟鍣ㄧ殑鎺ユ敹鎺ュ彛 [1鏈4鏃-1鏈7鏃 diff --git "a/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" "b/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" index dc5a823..260ecfa 100644 --- "a/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" +++ "b/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" @@ -72,6 +72,10 @@ d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 闂1锛 鍋囪涓棿浜哄湪杩欓噷鍋氫簡鎵嬭剼锛屽彂閫佷簡杩欐牱鐨勪富棰樼粰璁惧锛岃璁惧璇互涓烘秷鎭凡缁忓埌杈句簡鏈嶅姟鍣紝瀹為檯涓婅鎷︽埅涓嬫潵浜嗭紝鏄笉鏄瓨鍦ㄧ潃瀹夊叏鐨勯棶棰樸 +## 4. 蹇冭烦鍖呮満鍒 + +鐤戦棶锛氬績璺冲寘搴旈伒寰浣曠殑瑙勮寖鍛紝鍙﹀蹇冭烦鍖呴鐜囧浣曞畾鍛紝闇瑕佸姞瀵嗗悧锛屽浣曢槻姝㈠埆浜哄啋鍏呰韩浠藉彂蹇冭烦鍖呭憿 + ## 涓婚鏍煎紡瑙勮寖 璁惧绔笂鍙戠殑涓婚蹇呴』閬靛惊涓涓嬭瀹 @@ -82,7 +86,7 @@ d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 | 瀛楁 | 瑙i噴 | 鏄惁闇瑕佽澶囦富鍔ㄨ闃 | | -------- | ------------------------------------------------ | :------------------: | | message | 姝e父浜や簰淇℃伅锛岃浇浣撳弬鑰3. 閫氫俊杩囩▼ | 鍚 | -| callback | 浜や簰杩斿洖淇℃伅 | 鏄 | +| callback | 浜や簰杩斿洖
淇℃伅 | 鏄 | | system | 绯荤粺杩斿洖淇℃伅锛堝寘鎷涓娆℃敞鍐屾椂锛岄兘鏄敤杩欎釜涓婚锛 | 鏄 | ## 杩斿洖鐮佹槧灏勮〃 -- Gitee From f4a50dd3ec1767f820e934621e28235b763c279c Mon Sep 17 00:00:00 2001 From: KC-Yu <944472692@qq.com> Date: Thu, 13 Jan 2022 18:00:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?1/13=E6=97=A5=20=E6=94=B6=E5=B7=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Log_yjc.md" | 14 ++++++++++++++ .../image/Log_yjc/1642066243429.png" | Bin 0 -> 117766 bytes ...221\351\227\256\351\233\206\345\220\210.md" | 13 +++++++++++++ .../index.py" | 14 ++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 "\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/image/Log_yjc/1642066243429.png" diff --git "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" index f84792b..aff1630 100644 --- "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" +++ "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" @@ -1,3 +1,17 @@ +[1鏈13鏃 + +鐤戦棶锛 + +``` +MQTT鐨凾LS鍔犲瘑鍒嗕负鍗曞悜璁よ瘉鍜屽弻鍚戣璇侊細閭d箞鎴戜滑杩欎釜搴旂敤闇瑕佺敤鍒板弻鍚戝姞瀵嗗悧 +``` + + +SSL/TLS鍗曞悜璁よ瘉锛氬鎴风浼氳璇佹湇鍔″櫒绔韩浠斤紝鏈嶅姟鍣ㄧ涓嶅瀹㈡埛绔繘琛岃璇 + +SSL/TLS鍙屽悜璁よ瘉锛氬鎴风鍜屾湇鍔$閮戒細浜掔浉璁よ瘉锛屽嵆鍙屽彂涔嬮棿瑕佽瘉涔︿氦鎹 + + [1鏈12鏃 鏃╀笂瀵规暟鎹簱娣诲姞浜嗕竴涓澶囪〃锛岀敤浜庡瓨鏀惧凡娉ㄥ唽璁惧鐨勭浉鍏充俊鎭紝瀛楁鍚嶆殏瀹氬嚑涓 diff --git "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/image/Log_yjc/1642066243429.png" "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/image/Log_yjc/1642066243429.png" new file mode 100644 index 0000000000000000000000000000000000000000..1dd10f296a97c5580d88408a59a4ec23e6e4680d GIT binary patch literal 117766 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 aULaar2b`;e5k~)gLQ+&tq(;af;Qs*3cyxmR literal 0 HcmV?d00001 diff --git "a/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" "b/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" index 260ecfa..836f9c6 100644 --- "a/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" +++ "b/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" @@ -76,6 +76,19 @@ d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 鐤戦棶锛氬績璺冲寘搴旈伒寰浣曠殑瑙勮寖鍛紝鍙﹀蹇冭烦鍖呴鐜囧浣曞畾鍛紝闇瑕佸姞瀵嗗悧锛屽浣曢槻姝㈠埆浜哄啋鍏呰韩浠藉彂蹇冭烦鍖呭憿 + +Version1 + +绗竴鐗堢殑蹇冭烦鍖呭凡澶ц嚧瀹屾垚锛屾病鏈夊姞鍏ュ姞瀵嗙殑鍗忚锛屽悗缁鏋滄湁鏃堕棿鍙互鍔狅紝鍚庣画瑕佸姞鐨勬椂鍊欏彲浠ュ湪蹇冭烦鍖呰浇浣撳姞涓婅嚜宸辩殑瀵嗛挜绛夋柟妗堬紝鐒跺悗瀵规瘮涓涓嬶紝鍐嶆洿鏂 + +鏂规硶锛 + +璁惧瀹氭椂鍙戦佷竴涓富棰樹负 /{deviceId}/heartbeat + +杞戒綋涓嶉檺 + +鏈嶅姟鍣ㄧ瀹氭椂鍘绘洿鏂發ast_online_time瀛楁 + ## 涓婚鏍煎紡瑙勮寖 璁惧绔笂鍙戠殑涓婚蹇呴』閬靛惊涓涓嬭瀹 diff --git "a/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" "b/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" index 55cfd54..51fca07 100644 --- "a/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" +++ "b/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" @@ -1,6 +1,7 @@ import time import paho.mqtt.client as mqtt import json,requests +import asyncio # HOST = '192.168.238.131' HOST = '10.70.107.212' # Office 妗岄潰 @@ -25,6 +26,8 @@ def on_message(client, userdata, msg): message_handle(message, deviceId) elif message_type == "clock": return_callback(200, int(time.time()), deviceId) + elif message_type == "heartbeat": + heartbeat(deviceId) def validate_message(msg, deviceId): keys = ['topic', 'payload', 'timestamp', 'SNNo'] @@ -37,6 +40,17 @@ def validate_message(msg, deviceId): return False return True +def heartbeat(deviceId): + try: + headers = { + 'Content-Type': 'application/json' + } + callback = requests.get('http://localhost:8000/heartbeat/'+deviceId).content + callback = json.loads(callback) + print(callback) + except Exception as e: + print(str(e)) + def message_handle(msg, deviceId): try: headers = { -- Gitee From f078e0c39f3bc42ecc384c8293845a0ecd649492 Mon Sep 17 00:00:00 2001 From: KC-Yu <944472692@qq.com> Date: Fri, 14 Jan 2022 14:41:53 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E6=9B=B4=E6=96=B0=E5=91=A8=E6=8A=A5=EF=BC=8C=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E4=BA=86=E5=A4=9A=E7=BA=BF=E7=A8=8B=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Log_yjc.md" | 5 +++++ ...21\351\227\256\351\233\206\345\220\210.md" | 18 ++++++++------- .../index.py" | 22 ++++++++++++++----- .../yibu.py" | 15 +++++++++++++ 4 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 "\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/yibu.py" diff --git "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" index aff1630..056396c 100644 --- "a/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" +++ "b/\345\233\275\346\260\221\345\267\245\344\275\234\350\277\233\345\261\225\345\221\250\346\212\245/Log_yjc.md" @@ -1,3 +1,7 @@ +[1鏈14鏃 + +1. 瑙e喅浜嗕箣鍓嶆彁鍒扮殑涓娆℃у彂閫佸鏉℃秷鎭絾鏄叾涓湁涓鏉℃秷鎭姤閿欐棤娉曞畾浣嶅摢涓鏉′俊鎭殑闂锛岃В鍐虫柟娉曟槸璁惧姣忔鍚戞湇鍔″櫒璇锋眰鏃讹紝璇锋眰浣撳鍔犱竴涓狹essageID鐨勫瓧娈碉紝杩斿洖鐨刢allback涔熶細澶氬甫涓涓繖鏍风殑瀛楁锛屾潵瀹氫綅閭d竴鏉′俊鎭 + [1鏈13鏃 鐤戦棶锛 @@ -11,6 +15,7 @@ SSL/TLS鍗曞悜璁よ瘉锛氬鎴风浼氳璇佹湇鍔″櫒绔韩浠斤紝鏈嶅姟鍣ㄧ涓嶅 SSL/TLS鍙屽悜璁よ瘉锛氬鎴风鍜屾湇鍔$閮戒細浜掔浉璁よ瘉锛屽嵆鍙屽彂涔嬮棿瑕佽瘉涔︿氦鎹 +浠婂ぉ涓昏鍋氫簡蹇冭烦鍖呯殑鏈哄埗锛岀洰鍓嶇殑蹇冭烦鍖呮殏鏃舵病鏈夊仛瀹夊叏鎺柦锛屽悗缁彲鑳藉啀鍋氬姞瀵嗗惂 [1鏈12鏃 diff --git "a/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" "b/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" index 836f9c6..2cc77a3 100644 --- "a/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" +++ "b/\345\274\200\345\217\221\346\211\213\345\206\214/\345\274\200\345\217\221\346\211\213\345\206\214\345\217\212\347\226\221\351\227\256\351\233\206\345\220\210.md" @@ -36,16 +36,19 @@ d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 "topic": "temperture", "payload": "35.8", "timestamp": 1641611982391, - "SNNo": "device001" + "SNNo": "device001", + "MessageID": "123456789" } ``` -| 瀛楁鍚 | 绫诲瀷 | 娉ㄩ噴 | -| --------- | ---- | ------------------ | -| topic | str | 涓婁紶娑堟伅鐨勪富棰 | -| payload | str | 娑堟伅鍐呭涓讳綋 | -| timestamp | int | 鏃堕棿鎴筹紙绉掔骇鍒殑锛 | -| SNNo | str | 璁惧鍞竴鏍囪瘑SN鐮 | +| 瀛楁鍚 | 绫诲瀷 | 娉ㄩ噴 | +| --------- | ---- | ------------------------------ | +| topic | str | 涓婁紶娑堟伅鐨勪富棰 | +| payload | str | 娑堟伅鍐呭涓讳綋 | +| timestamp | int | 鏃堕棿鎴筹紙绉掔骇鍒殑锛 | +| SNNo | str | 璁惧鍞竴鏍囪瘑SN鐮 | +| MessageID | str | 娑堟伅鐨勫敮涓鏍囪瘑锛屽缓璁敤UUID鐢熸垚 | + 2. 鍒╃敤瀵圭О瀵嗛挜瀵规秷鎭綋杩涜鍔犲瘑 3. 鍔犲瘑鍚庣殑娑堟伅鍐呭鍙栧搱甯屽悗鍒╃敤绉侀挜鍔犲瘑锛岀粨鍚堝姞瀵嗗悗鐨勬秷鎭唴瀹逛竴骞跺彂閫 @@ -76,7 +79,6 @@ d. 鐢ㄤ簬鍙屾柟鏁板瓧绛惧悕鐨勫叕閽 鐤戦棶锛氬績璺冲寘搴旈伒寰浣曠殑瑙勮寖鍛紝鍙﹀蹇冭烦鍖呴鐜囧浣曞畾鍛紝闇瑕佸姞瀵嗗悧锛屽浣曢槻姝㈠埆浜哄啋鍏呰韩浠藉彂蹇冭烦鍖呭憿 - Version1 绗竴鐗堢殑蹇冭烦鍖呭凡澶ц嚧瀹屾垚锛屾病鏈夊姞鍏ュ姞瀵嗙殑鍗忚锛屽悗缁鏋滄湁鏃堕棿鍙互鍔狅紝鍚庣画瑕佸姞鐨勬椂鍊欏彲浠ュ湪蹇冭烦鍖呰浇浣撳姞涓婅嚜宸辩殑瀵嗛挜绛夋柟妗堬紝鐒跺悗瀵规瘮涓涓嬶紝鍐嶆洿鏂 diff --git "a/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" "b/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" index 51fca07..37705ad 100644 --- "a/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" +++ "b/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/index.py" @@ -2,6 +2,7 @@ import time import paho.mqtt.client as mqtt import json,requests import asyncio +from threading import Thread # HOST = '192.168.238.131' HOST = '10.70.107.212' # Office 妗岄潰 @@ -14,6 +15,12 @@ def on_connect(client, userdata, flags, rc): print('Connected with result code ' + str(rc)) def on_message(client, userdata, msg): + # 澶氱嚎绋嬪鐞 + test = Thread(target=on_message1, args=(client, userdata, msg)) + test.start() + +# 娑堟伅澶勭悊鍑芥暟 +def on_message1(client, userdata, msg): message = msg.payload.decode("utf-8") print(msg.topic + "\n" + message) topic_split = msg.topic.split("/") @@ -30,7 +37,7 @@ def on_message(client, userdata, msg): heartbeat(deviceId) def validate_message(msg, deviceId): - keys = ['topic', 'payload', 'timestamp', 'SNNo'] + keys = ['topic', 'payload', 'timestamp', 'SNNo', 'MessageID'] try: json_data = json.loads(msg) for key in keys: @@ -46,8 +53,9 @@ def heartbeat(deviceId): 'Content-Type': 'application/json' } callback = requests.get('http://localhost:8000/heartbeat/'+deviceId).content - callback = json.loads(callback) + # callback = json.loads(callback) print(callback) + client.publish('/'+deviceId+'/callback/heartbeat',callback) except Exception as e: print(str(e)) @@ -56,18 +64,20 @@ def message_handle(msg, deviceId): headers = { 'Content-Type': 'application/json' } + json_msg = json.loads(msg) callback = requests.post('http://localhost:8000/recieveMessage',data=msg,headers=headers).content.decode() callback = json.loads(callback) - return_callback(callback['code'], callback['msg'], deviceId) + return_callback(callback['code'], callback['msg'], deviceId, json_msg["MessageID"]) except Exception as e: print(str(e)) - return_callback(400, str(e), deviceId) + return_callback(400, str(e), deviceId, json_msg["MessageID"]) # 鍥炶皟缁熶竴澶勭悊鍑芥暟 -def return_callback(code, msg, deviceId): +def return_callback(code, msg, deviceId, MessageID=""): body = { "code": code, - "msg": msg + "msg": msg, + "MessageID": MessageID } body = json.dumps(body) client.publish("/" + deviceId + "/callback", body, qos=0, retain=False) diff --git "a/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/yibu.py" "b/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/yibu.py" new file mode 100644 index 0000000..c16f493 --- /dev/null +++ "b/\346\240\221\350\216\223\346\264\276\344\270\255\350\275\254\350\204\232\346\234\254/yibu.py" @@ -0,0 +1,15 @@ +import asyncio +from aiohttp import ClientSession + + +tasks = [] +url = "https://www.baidu.com/{}" +async def hello(url): + async with ClientSession() as session: + async with session.get(url) as response: + response = await response.read() + print(response) + +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.run_until_complete(hello(url)) \ No newline at end of file -- Gitee