電路研究9.3.10——合宙Air780EP中的AT開發指南:阿里云應用指南

? ? ? ? 這個好像也用不到,不過可以先貼出來。簡單看了一下也沒深入分析,直接扒過來了,感覺涉及到了上位機的學習了。我這下位機的可能用不到,就是貼過來好了。

????????應用概述

????????使用 AT 方式連接阿里云分為一機一密和一型一密,其中一機一密又包含 HTTP 認證二
次連接和 MQTT 直連兩種方式。
????????步驟
????????1. 訓練波特率
????????2. 激活 PDP (之前也研究過了,也設置過了。下面再貼一遍過來吧。)

????????使用如下AT命令,激活了一路id為1、APN為自動獲取的默認APN的PDP承載(就是連接并開啟了相關通道,無需在擔心通訊了,算是設備本身的資料了)

????????AT+SAPBR=3,1,"CONTYPE","GPRS"

????????OK

????????AT+SAPBR=3,1,"APN",""

????????OK

????????AT+SAPBR=1,1

????????OK

????????AT+SAPBR=2,1

????????+SAPBR: 1,1,"10.55.40.48"

????????OK

????????3. 連接阿里云
? ? ? ? 這個本次研究就是這個了。
????????材料準備
????????準備設備證書及產品證書。
????????1.
????????--設備證書
????????{
????????"ProductKey": "a1qsHBbKtmc",
????????"DeviceName": "866714044533668",
????????"DeviceSecret": "c25262e140bb58d4ec3de5028a2cc836"
????????}--產品證書
????????{
????????"ProductSecret": "nNmPacH5aL8EViD4",
????????"ProductKey": "a1qsHBbKtmc"
????????}
????????阿里云操作
????????產品操作
????????打開阿里云找到物聯網平臺,開通業務后進入控制臺。
????????點開設備管理的產品頁面,點擊新建產品。根據需求和圖示說明創建產品。
????????具體詳細介紹見阿里云頁面(如何在物聯網平臺創建產品_物聯網平臺(IoT)-阿里云幫助中心
????????設備操作
????????創建產品完成后就可以進入設備頁面添加設備,在對應產品頁面進入設備管理,按照提示添
加設備 (在做正式產品時建議使用 imei devicename,方便后期維護)
????????阿里云設備創建
????????連接阿里云
????????一機一密 AT HTTP 鑒權連接
????????首先需要使用 HmacMD5 計算哈希值用于簽名,使用網址:計算工具
????????明文:
????????clientId866714044533668deviceName866714044533668productKeya1qsHBbKtmc
????????秘鑰: c25262e140bb58d4ec3de5028a2cc836
????????結果: 655d19e9c43e27d8c66419a6724eb56a
????????拼接 DOWNLOAD 參數
????????productKey=a1qsHBbKtmc&sign=655d19e9c43e27d8c66419a6724eb56a&clientId=866714044533668&deviceName=866714044533668
????????具體交互流程如下所示
????????[2021-05-21 20:24:55.620]# SEND ASCII>
????????AT+HTTPINIT
????????[2021-05-21 20:24:55.674]# RECV ASCII>
????????AT+HTTPINIT
????????OK
????????[2021-05-21 20:25:04.547]# SEND ASCII>
????????AT+HTTPPARA="URL",https://iot-auth.cn-shanghai.aliyuncs.com/auth/devicen
????????ame
????????[2021-05-21 20:25:04.601]# RECV ASCII>
????????AT+HTTPPARA="URL",https://iot-auth.cn-shanghai.aliyuncs.com/auth/devicen
????????ame
????????OK
????????[2021-05-21 20:25:11.724]# SEND ASCII>
????????AT+HTTPPARA="USER_DEFINED","Content-Type:
????????application/x-www-form-urlencoded"
????????[2021-05-21 20:25:11.776]# RECV ASCII>
????????AT+HTTPPARA="USER_DEFINED","Content-Type:
????????application/x-www-form-urlencoded"
????????OK
????????[2021-05-21 20:25:22.028]# SEND ASCII>
????????AT+HTTPDATA=120,20000
????????[2021-05-21 20:25:22.078]# RECV ASCII>
????????AT+HTTPDATA=120,20000
????????DOWNLOAD
????????[2021-05-21 20:25:29.643]# SEND ASCII>
????????productKey=a1qsHBbKtmc&sign=655d19e9c43e27d8c66419a6724eb56a&clientId=866714044533668&deviceName=866714044533668
????????[2021-05-21 20:25:42.079]# RECV ASCII>
????????OK
????????[2021-05-21 20:25:52.388]# SEND ASCII>
????????AT+HTTPACTION=1
????????[2021-05-21 20:25:52.450]# RECV ASCII>
????????AT+HTTPACTION=1
????????OK
????????[2021-05-21 20:25:53.034]# RECV ASCII>
????????+HTTPACTION: 1,200,124
????????[2021-05-21 20:25:59.556]# SEND ASCII>
????????AT+HTTPREAD
????????[2021-05-21 20:25:59.624]# RECV ASCII>
????????AT+HTTPREAD
????????+HTTPREAD: 124
????????{"code":200,"data":{"iotId":"8rCqP6OVgi90P5a479IC000000","iotToken":"^1^1621599952882^218a0a267fc6c36"},"message":"success"}
????????OK--收到服務器返回數據其中 iotId MQTT Client 的用戶名,iotToken 的值為 MQTT?Clientd 的密碼
????????[2021-05-21 20:29:48.876]# SEND ASCII>
????????AT+MCONFIG="866714044533668","8rCqP6OVgi90P5a479IC000000","^1^1621599952882^218a0a267fc6c36"
????????[2021-05-21 20:29:48.932]# RECV ASCII>
????????AT+MCONFIG="866714044533668","8rCqP6OVgi90P5a479IC000000","^1^1621599952882^218a0a267fc6c36"
????????OK
????????[2021-05-21 20:29:57.900]# SEND ASCII>
????????AT+SSLMIPSTART="a1qsHBbKtmc.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883
????????[2021-05-21 20:29:57.950]# RECV ASCII>
????????AT+SSLMIPSTART="a1qsHBbKtmc.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883
????????OK
????????[2021-05-21 20:29:58.474]# RECV ASCII>
????????CONNECT OK
????????[2021-05-21 20:30:03.332]# SEND ASCII>
????????AT+MCONNECT=1,120
????????[2021-05-21 20:30:03.383]# RECV ASCII>
????????AT+MCONNECT=1,120
????????OK
????????[2021-05-21 20:30:03.493]# RECV ASCII>
????????CONNACK OK
????????一機一密 AT 直連 MQTT
????????當設備屬于公共實例,使用一型一密預注冊認證方式時,動態注冊參數如下:
????????mqttClientId:clientId+"|securemode=3,signmethod=hmacsha1,timestamp=132323232|"
????????mqttUsername: deviceName+"&"+productKey
????????mqttPassword: sign_hmac(deviceSecret,content)
????????具體交互流程如下所示
????????[2021-05-21 21:26:59.670]# SEND ASCII>
????????AT+MCONFIG="866714044533668|securemode=3,signmethod=hmacmd5|","866714044533668&a1qsHBbKtmc","655d19e9c43e27d8c66419a6724eb56a"
????????[2021-05-21 21:26:59.725]# RECV ASCII>
????????AT+MCONFIG="866714044533668|securemode=3,signmethod=hmacmd5|","866714044533668&a1qsHBbKtmc","655d19e9c43e27d8c66419a6724eb56a"
????????OK
????????[2021-05-21 21:27:00.958]# SEND ASCII>
????????AT+SSLMIPSTART="a1qsHBbKtmc.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883
????????[2021-05-21 21:27:01.007]# RECV ASCII>
????????AT+SSLMIPSTART="a1qsHBbKtmc.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883
????????OK
????????[2021-05-21 21:27:01.567]# RECV ASCII>
????????CONNECT OK
????????[2021-05-21 21:27:02.333]# SEND ASCII>
????????AT+MCONNECT=1,120
????????[2021-05-21 21:27:02.385]# RECV ASCII>
????????AT+MCONNECT=1,120
????????OK
????????[2021-05-21 21:27:02.527]# RECV ASCII>
????????CONNACK OK
????????一型一密 AT 方式連接
????????一型一密與一機一密的主要區別在于第一次連接的時候需要根據協議請求秘鑰。首先需要在阿里云打開動態注冊開關如下圖所示。
????????用到的參數如下所示。
????????{
????????"ProductSecret": "nNmPacH5aL8EViD4",
????????"ProductKey": "a1qsHBbKtmc"
????????"DeviceName" "866714044533668"
????????}--random 為隨機數,長度不定
????????productKey=a1qsHBbKtmc&deviceName=866714044533668&random=123456&sign=073074d8b722eacb1f6d2054d99e9d64&signMethod=HmacMD5e10adc3949ba59abbe56e057f20f883e
????????明文:deviceName866714044533668productKeya1qsHBbKtmcrandom123456
????????秘鑰:nNmPacH5aL8EViD4
????????HmacMD5 計算結果:073074d8b722eacb1f6d2054d99e9d64d8d847e2558c6382fc35d2c91f626501a1qsHBbKtmcnNmPacH5aL8EViD4
????????ProductKey = b1KCi45LcCP
????????ProductSecret = VWll9fiYWKiwraBk
????????DeviceName = 862991419835241
????????productKey=a1qsHBbKtmc&deviceName=866714044533668&random=123456&sign=073074d8b722eacb1f6d2054d99e9d64&signMethod=HmacMD5deviceName866714044533668productKeya1qsHBbKtmcrandom123456nNmPacH5aL8EViD4073074d8b722eacb1f6d2054d99e9d64
當設備屬于公共實例,使用一型一密預注冊認證方式時,動態注冊參數如下:
????????mqttClientId:
????????clientId+"|securemode=2,authType=xxxx,random=xxxx,signmethod=xxxx|"
????????mqttUserName: deviceName+"&"+productKey
????????mqttPassword: sign_hmac(productSecret,content)
????????AT 交互流程如下
????????[21:37:43.379]AT+HTTPINIT
[21:37:43.383]AT+HTTPINIT
????????OK
????????[21:37:48.704]
????????→◇AT+HTTPPARA="URL","https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device"
[21:37:48.713]
????????←◆AT+HTTPPARA="URL","https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device"
????????OK
????????[21:37:55.164]AT+HTTPPARA="USER_DEFINED","Content-Type:application/x-www-form-urlencoded"
???????? [21:37:55.170]AT+HTTPPARA="USER_DEFINED","Content-Type:application/x-www-form-urlencoded"
????????OK
????????[21:38:00.207]AT+HTTPDATA=120,20000
[21:38:00.215]AT+HTTPDATA=120,20000
????????DOWNLOAD
????????[21:38:07.980]
????????→◇productKey=a1qsHBbKtmc&deviceName=867435054361274&random=123456&sign=f25999d2e8ff8f5854b95d0ea9e0cd0c&signMethod=HmacMD5
[21:38:07.989]
????????OK
????????[21:38:17.459]AT+HTTPACTION=1
[21:38:17.467]AT+HTTPACTION=1
????????OK
????????[21:38:18.931]
????????+HTTPACTION: 1,200,149
????????[21:38:23.636]AT+HTTPREAD
????????[21:38:23.645]AT+HTTPREAD
????????+HTTPREAD: 149
????????{"code":200,"data":{"deviceName":"867435054361274","deviceSecret":"82cdb125154973a7c9fac52be5b757c2","productKey":"a1qsHBbKtmc"},"message":"success"}
????????OK
????????發布與訂閱消息
????????發布
????????[2021-05-21 23:02:04.961]# RECV ASCII>
????????CONNACK OK
????????[2021-05-21 23:02:16.503]# SEND ASCII>
????????AT+MPUB="/a1qsHBbKtmc/866714044533668/user/update",0,0,"HelloWorld"
????????[2021-05-21 23:02:16.554]# RECV ASCII>
????????AT+MPUB="/a1qsHBbKtmc/866714044533668/user/update",0,0,"HelloWorld"
????????OK
????????訂閱
????????[2021-05-21 23:04:59.487]# SEND ASCII>
????????AT+MSUB="/a1qsHBbKtmc/866714044533668/user/get",0
????????[2021-05-21 23:04:59.603]# RECV ASCII>
????????AT+MSUB="/a1qsHBbKtmc/866714044533668/user/get",0
????????OK
????????[2021-05-21 23:04:59.725]# RECV ASCII>
????????SUBACK
????????[2021-05-21 23:05:16.759]# SEND ASCII>
????????AT+MQTTMSGSET=0
????????[2021-05-21 23:05:16.808]# RECV ASCII>
????????AT+MQTTMSGSET=0
????????OK
????????[2021-05-21 23:05:41.965]# RECV ASCII>
????????+MSUB: "/a1qsHBbKtmc/866714044533668/user/get",7 byte,Hello!!
補:完全扒過來的,因為我不是很熟,就不深入分析了。
再補:實際上大差不差的,也就是AT指令的運行,如果用到了,可以也就會熟悉吧。不過最近動力不太足,這里暫時沒氣力了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90380.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90380.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90380.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[Backlog] 核心協調器 | 終端用戶界面(TUI)實現 | 多分支任務沖突解決 | 測試驗證體系

第8章 核心協調器 歡迎回到Backlog.md! 在上一章文件系統操作中,我們深入了解了數據物理存儲層面的讀寫機制。本章將聚焦系統的神經中樞——核心協調器。 核心協調器的本質(中央決策引擎) 如果將Backlog.md視為項目管理團隊&a…

車載以太網-TC8測試-UT(Upper Tester)

目錄 一、技術原理:指令體系與協議適配1. **指令格式與傳輸機制**2. **協議棧交互邏輯**3. **規范遵循與版本演進**二、測試應用:TC8測試場景與案例1. **TCP協議棧深度驗證**2. **ARP協議健壯性測試**3. **SOME/IP服務動態管理**三、實現挑戰與解決方案1. **實時性要求**2. *…

扣子Coze純前端部署多Agents

純前端網頁搭建,無需任何后端代碼,方便快捷! 就像公司前臺的多功能控制臺,員工可以通過按鈕快速呼叫不同的AI助手。具備多設備適配、智能對話等基礎能力。 支持添加多個智能體 配置方式 添加智能體信息,data-bot為智…

STM32中I2C協議詳解

前言 在嵌入式系統中,設備間的短距離通信協議中,I2C(Inter-Integrated Circuit,集成電路互連)以其信號線少、布線簡單、支持多從機等特點,被廣泛應用于傳感器、EEPROM、OLED屏等中低速外設的通信場景。與SP…

解鎖Spring Boot多項目共享Redis:優雅Key命名結構指南

引言Redis 基礎與 Spring Boot 集成Redis 簡介Redis,即 Remote Dictionary Server,是一個開源的基于內存的數據結構存儲系統,可用作數據庫、緩存和消息中間件 。它具備諸多顯著特性,使其在現代軟件開發中占據重要地位。Redis 的讀…

《重構項目》基于Apollo架構設計的項目重構方案(多種地圖、多階段、多任務、狀態機管理)

1. 項目結構設計project/ ├── config/ # 配置文件(定義 Scenario、Stage、Task 的映射) ├── src/ │ ├── base/ # 抽象基類定義 │ │ ├── scenario_base.h/.cpp │ │ ├── stage_base.h/.cpp…

動手學深度學習13.6. 目標檢測數據集-筆記練習(PyTorch)

以下內容為結合李沐老師的課程和教材補充的學習筆記,以及對課后練習的一些思考,自留回顧,也供同學之人交流參考。 本節課程地址:數據集_嗶哩嗶哩_bilibili 本節教材地址:13.6. 目標檢測數據集 — 動手學深度學習 2.0…

Unity3D游戲內存優化指南

前言 Unity3D 游戲的內存控制是保證游戲流暢運行(尤其在移動端和主機平臺)和避免崩潰的關鍵挑戰。以下是核心策略和常見問題的解決方案: 對惹,這里有一個游戲開發交流小組,希望大家可以點擊進來一起交流一下開發經驗…

git學習:首次創建倉庫

文章目錄前言:1、首次創建倉庫并上傳數據1.1 創建倉庫,1.2 命令上傳1.3 首次代碼上傳至倉庫的步驟:2、分支操作2.1 分支的刪除2.2 切換分支2.3 查看分支2.4 同步其他分支的修改3、查看電腦的配置文件4、遠程倉庫命令 git remote5、其他后語前…

C++并行計算:OpenMP與MPI全解析

在高性能計算領域,充分利用硬件資源的并行計算技術已成為剛需。從單節點多核到跨節點集群,開發者需要掌握不同的并行編程模型。本文將系統講解兩種主流并行技術:OpenMP(共享內存多核并行)與MPI(分布式內存集…

TCP 動態選路協議全面研究:OSPF、BGP 與 IS-IS 的比較與應用分析

一、引言:動態選路協議概述 在現代計算機網絡中,路由選擇是數據傳輸的核心功能,它決定了數據包從源到目的地的路徑選擇。隨著網絡規模的不斷擴大和復雜性的增加,靜態路由已經無法滿足網絡動態變化的需求,動態路由協議…

OpenCV 圖像哈希類cv::img_hash::AverageHash

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 cv::img_hash::AverageHash是OpenCV中用于圖像哈希(Image Hashing)的一個類,屬于opencv_img_hash模塊。它實現了…

【Python-網絡爬蟲】爬蟲的基礎概念介紹

目錄 一、爬蟲的介紹 1.1 爬蟲的概念 1.2 爬蟲的作用 1. 搜索引擎數據索引 2. 商業數據采集與分析 3. 輿情監控與社交分析 4. 學術研究與數據挖掘 5. 信息聚合與服務優化 二、爬蟲的分類 三、爬蟲的基本流程 3.1 基本流程 3.2 Robots協議 一、爬蟲的介紹 1.1 爬蟲的…

力扣-31.下一個排列

題目鏈接 31.下一個排列 class Solution {public void nextPermutation(int[] nums) {//1.從右往左找第一個非逆序的數aint left nums.length - 2; //這里是為了找不到順序對的時候正好停在-1while (left > 0 && nums[left] > nums[left 1]) { //一定要取等號…

Python爬蟲實戰:研究python-nameparser庫相關技術

1. 引言 在當今數字化時代,姓名作為個人身份的重要標識,在許多領域都有著廣泛的應用需求。例如,在客戶關系管理系統中,準確解析姓名可以幫助企業更好地了解客戶背景;在學術研究中,分析作者姓名分布有助于發現研究團隊的地域特征;在社交網絡分析中,姓名信息可以輔助進行…

Android中MVI架構詳解

博主前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住也分享一下給大家 ??點擊跳轉到教程 什么是 MVI 架構? MVI (Model-View-Intent) 是一種單向數據流的架構模式,它源于響應式編程思想。在 MVI 中: 架構圖: 1、Model: 代表的是UI 狀態,它包含了…

AutoGen-AgentChat-3-人機交互

import os from dotenv import load_dotenvload_dotenv()True人機交互 在上一節“團隊”中,我們了解了如何創建、觀察和控制代理團隊。本節將重點介紹如何在應用程序中與團隊進行交互,并向團隊提供人工反饋。 您可以通過兩種主要方式從您的應用程序與團隊…

Flink Db2 CDC 環境配置與驗證

一、DB2 數據庫核心配置 1. 啟用數據庫日志記錄與CDC支持 -- 以DB2管理員身份連接數據庫 CONNECT TO mydb USER db2inst1 USING password;-- 啟用數據庫歸檔日志模式(CDC依賴) UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 DISK:/db2log/archive…

初識單例模式

文章目錄場景通點定義實現思路六種 Java 實現餓漢式懶漢式synchronized 方法雙重檢查鎖 Double Check Lock Volatile靜態內部類 Singleton Holder枚舉單例單例運用場景破解單例模式參考場景通點 資源昂貴:數據庫連接池、線程池、日志組件,只需要一份全…