伴隨著網(wǎng)絡(luò)技術(shù),各種通訊技術(shù),傳感器技術(shù)的飛速發(fā)展,物聯(lián)網(wǎng)技術(shù)成為了當(dāng)今技術(shù)領(lǐng)域發(fā)展為迅速的技術(shù)。而物聯(lián)網(wǎng)技術(shù)的核心仍然是以互聯(lián)網(wǎng)技術(shù)為基礎(chǔ)的,物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,也是信息化時(shí)代的重要發(fā)展階段。物聯(lián)網(wǎng)通過智能感知、識(shí)別技術(shù)與普適計(jì)算等通信感知技術(shù),廣泛應(yīng)用于網(wǎng)絡(luò)的融合中,也因此被稱為繼計(jì)算機(jī)、互聯(lián)網(wǎng)之后世界信息產(chǎn)業(yè)發(fā)展的第三次浪潮。
本設(shè)計(jì)的模型來源于物流、礦山、高速公路等場(chǎng)合,車輛稱重地螃的智能化升級(jí)要求,設(shè)計(jì)基于物聯(lián)網(wǎng)的智能在線稱重方案,開發(fā)智能稱重控制器,合理選擇部署多個(gè)重量傳感器和必要的算法、通過WIFF通信模塊、GPS定位模塊,采集車輛重?cái)?shù)據(jù)一地理位置信息,并通過網(wǎng)絡(luò)發(fā)送至云平臺(tái),設(shè)計(jì)圖形化UI界面展示稱重、地圖位置等重要信息,實(shí)現(xiàn)對(duì)稱重系統(tǒng)的遠(yuǎn)程監(jiān)測(cè)。
隨著物聯(lián)網(wǎng)技術(shù)的逐步發(fā)展和日趨成熟,物聯(lián)網(wǎng)技術(shù)是一個(gè)大而廣的應(yīng)用技術(shù),并非僅僅局限于延伸應(yīng)用。相信對(duì)地磅來說必然會(huì)有更多創(chuàng)新的應(yīng)用實(shí)踐??偟膩碚f,地磅現(xiàn)代化、信息化、智能化一定緊隨物聯(lián)網(wǎng)技術(shù)的發(fā)展,而物聯(lián)網(wǎng)技術(shù)的發(fā)展也必將促使地磅興起新的技術(shù)革命。
設(shè)計(jì)的技術(shù)與硬件選項(xiàng)總結(jié):
(1)云端通信模塊采用ESP8266-WIFI
(2)聯(lián)網(wǎng)通信模塊采用:ESP8266
(3)GPS模塊:采用ATGM336H雙模GPS模塊
(4)電子秤模塊:用于稱重
(5)物聯(lián)網(wǎng)云平臺(tái):采用華為云物聯(lián)網(wǎng)平臺(tái)
設(shè)計(jì)總結(jié):
(1)采用ESP8266連接OneNet上傳稱重?cái)?shù)據(jù)和GPS數(shù)據(jù)到云端(采用HTTP協(xié)議)
云端上顯示2個(gè)數(shù)據(jù):GPS定位數(shù)據(jù)–地圖顯示,稱重傳感器的數(shù)據(jù)值
(2)3個(gè)稱重傳感器接一個(gè)秤面稱重計(jì)算平均值
(3)本地OLED顯示屏顯示GPS經(jīng)緯度數(shù)據(jù)、稱重傳感器的數(shù)據(jù)值。
(4)OLED設(shè)計(jì)一個(gè)頁面顯示并設(shè)置當(dāng)前的報(bào)警上限。通過按鍵進(jìn)行加減
當(dāng)稱重的閥值超出了設(shè)置閥值,蜂鳴器報(bào)警。
2. 硬件選型
2.1 STM32F103C8T6
STM32F103C8T6是一款基于ARM Cortex-M 內(nèi)核STM32系列的32位的微控制器,程序存儲(chǔ)器容量是64KB,需要電壓2V~3.6V,工作溫度為-40°C ~ 85°C。
2.2 電子秤傳感器
HX711 是一款專為高精度稱重傳感器而設(shè)計(jì)的24位A/D 轉(zhuǎn)換器芯片。
2.3 ESP8266-wifi
2.4 GPS模塊
2.5 蜂鳴器
3. 創(chuàng)建云端產(chǎn)品與設(shè)備
3.1 創(chuàng)建產(chǎn)品
地址:https://www.huaweicloud.com/?locale=zh-cn
3.2 創(chuàng)建設(shè)備
地址: https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/device/all-device
3.3 自定義模型數(shù)據(jù)
鏈接:https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-dev/all-product/7211833377cf435c8c0580de390eedbe/product-detail/6277d70223aaf461a0f72a56
這個(gè)模型數(shù)據(jù)就是設(shè)備要上傳的數(shù)據(jù)。
{
"device_id": "6277d70223aaf461a0f72a56_weigh",
"secret": "12345678"
}
服務(wù)ID: weigh
屬性名稱 數(shù)據(jù)類型 訪問方式 描述
weigh int(整型) 可讀 重量
GPS string(字符串) 可讀 GPS定位信息
3.4 MQTT密匙生成
創(chuàng)建完產(chǎn)品、設(shè)備之后,接下來就需要知道如何通過MQTT協(xié)議登陸華為云服務(wù)器。
官方的詳細(xì)介紹在這里:
https://support.huaweicloud.com/devg-iothub/iot_01_2127.html#ZH-CN_TOPIC_0240834853__zh-cn_topic_0251997880_li365284516112
屬性上報(bào)格式:
https://support.huaweicloud.com/api-iothub/iot_06_v5_3010.html
MQTT設(shè)備登陸密匙生成地址: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/
DeviceId 6277d70223aaf461a0f72a56_weigh
DeviceSecret 12345678
ClientId 6277d70223aaf461a0f72a56_weigh_0_0_2022050814
Username 6277d70223aaf461a0f72a56_weigh
Password 0a3d097c6449b8526a562006a74c8c5e61ce63d6c831ea291560736a3332cf77
華為云物聯(lián)網(wǎng)平臺(tái)的域名是: 161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com
華為云物聯(lián)網(wǎng)平臺(tái)的IP地址是:121.36.42.100
在軟件里參數(shù)填充正確之后,就看到設(shè)備已經(jīng)連接成功了。
接下來打開設(shè)備頁面,可以看到設(shè)備已經(jīng)在線了。
3.5 主題訂閱與發(fā)布
//訂閱主題: 平臺(tái)下發(fā)消息給設(shè)備
$oc/devices/6277d70223aaf461a0f72a56_weigh/sys/messages/down
//設(shè)備上報(bào)數(shù)據(jù)
$oc/devices/6277d70223aaf461a0f72a56_weigh/sys/properties/report
//上報(bào)的屬性消息 (一次可以上報(bào)多個(gè)屬性,在json里增加就行了)
{"services": [{"service_id": "weigh","properties":{"GPS":"lat:12.345,lng:45.678"}}]}
通過MQTT客戶端軟件模擬上報(bào)測(cè)試:
查看控制臺(tái)頁面,數(shù)據(jù)已經(jīng)上傳成功了。
3.6 應(yīng)用側(cè)開發(fā)
為了更方便的展示設(shè)備數(shù)據(jù),與設(shè)備完成交互,還需要開發(fā)一個(gè)配套的上位機(jī),官方提供了應(yīng)用側(cè)開發(fā)的API接口、SDK接口,為了方便通用一點(diǎn),我這里采用了API接口完成數(shù)據(jù)交互,上位機(jī)軟件采用QT開發(fā)。
幫助文檔地址: https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html
設(shè)備屬性就是設(shè)備上傳的傳感器狀態(tài)數(shù)據(jù)信息,應(yīng)用側(cè)提供了API接口,可以主動(dòng)向設(shè)備端下發(fā)請(qǐng)求指令;設(shè)備端收到指令之后需要按照約定的數(shù)據(jù)格式上報(bào)數(shù)據(jù);所以,要實(shí)現(xiàn)應(yīng)用層與設(shè)備端的數(shù)據(jù)交互,需要應(yīng)用層與設(shè)備端配合才能完成。
在使用接口時(shí),最好先使用華為自己的調(diào)試接口測(cè)試。
https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ListProperties
上位機(jī)軟件采用Qt框架設(shè)計(jì),Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架。Qt是一個(gè)1991年由Qt Company開發(fā)的跨平臺(tái)C++圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)GUI程序,也可用于開發(fā)非GUI程序,比如控制臺(tái)工具和服務(wù)器。簡(jiǎn)單來說,QT可以很輕松的幫你做帶界面的軟件,甚至不需要你投入很大精力。
QT官網(wǎng): https://www.qt.io/
4. STM32設(shè)備端開發(fā)
4.1 程序下載
4.2 原理圖
4.3 硬件接線
(1)OLED顯示屏接線:
D0----(SCK)------------------->>PB14
D1----(MOSI)------------------>>PB13
RES—(復(fù)位腳低電平有效)-------->>PB12
DC--(數(shù)據(jù)和命令控制管腳)------>>PB1
CS--(片選引腳)---------------->>PA7
GND--------------------------->>GND
VCC--------------------------->>3.3V或者5V
(2)ATK-ESP8266 WIFI接線
PA2(TX)--RXD 模塊接收腳
PA3(RX)--TXD 模塊發(fā)送腳
GND---GND 地
VCC---VCC 電源(3.3V~5.0V)
(3)外接蜂鳴器模塊: 高電平響
BEEP----->PB8
(4)外接按鍵:
KEY1 -PB3 按下是低電平 清零
KEY2 -PB2 按下是低電平 翻頁
KEY3 -PB6 按下是低電平 加
KEY4 -PB7 按下是低電平 減
(5)外接LED燈模塊:
LED1-PB4 低電平亮
LED2-PB5 低電平亮
(6)稱重傳感器1
VCC--->5V
SCK--->PA4 時(shí)序控制腳--對(duì)STM32--輸出模式
DT---->PA5 輸出輸出腳-對(duì)STM32--輸入模式
GND--->GND
(7)稱重傳感器2
VCC--->5V
SCK--->PA11 時(shí)序控制腳--對(duì)STM32--輸出模式
DT---->PA12 輸出輸出腳-對(duì)STM32--輸入模式
GND--->GND
(8)稱重傳感器3
VCC--->5V
SCK--->PA6 時(shí)序控制腳--對(duì)STM32--輸出模式
DT---->PA8 輸出輸出腳-對(duì)STM32--輸入模式
GND--->GND
(9)GPS模塊接線說明
GND----GND
VCC---3.3V
PB11----GPS_TX
PB10----GPS_RX
(--)板載LED燈:低電平亮
LED1--PC13
BEEP2--PC14
(--)板載按鍵:
KEY1--PA0 按下為高電平
4.4 MQTT連接代碼
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "key.h"
#include "usart.h"
#include
#include "timer.h"
#include "bluetooth.h"
#include "esp8266.h"
#include "mqtt.h"
//華為物聯(lián)網(wǎng)服務(wù)器的設(shè)備信息
#define MQTT_ClientID "61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510"
#define MQTT_UserName "61b9ba3a2b2aa20288c1e7f1_QQ1126626497"
#define MQTT_PassWord "385ce91dfe7da5b7431868d5d87e7998163c493344040935d5a00024d6324242"
//訂閱與發(fā)布的主題
#define SET_TOPIC "$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/messages/down" //訂閱
#define POST_TOPIC "$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/properties/report" //發(fā)布
char mqtt_message[200];//上報(bào)數(shù)據(jù)緩存區(qū)
int main()
{
u32 time_cnt=0;
u32 i;
u8 key;
LED_Init();
BEEP_Init();
KEY_Init();
USART1_Init(115200);
TIMER1_Init(72,20000); //超時(shí)時(shí)間20ms
USART2_Init(9600);//串口-藍(lán)牙
TIMER2_Init(72,20000); //超時(shí)時(shí)間20ms
USART3_Init(115200);//串口-WIFI
TIMER3_Init(72,20000); //超時(shí)時(shí)間20ms
USART1_Printf("正在初始化WIFI請(qǐng)稍等.\n");
if(ESP8266_Init())
{
USART1_Printf("ESP8266硬件檢測(cè)錯(cuò)誤.\n");
}
else
{
//非加密端口
USART1_Printf("WIFI:%d\n",ESP8266_STA_TCP_Client_Mode("CMCC-Cqvn","99pu58cb","121.36.42.100",1883,1));
}
//2. MQTT協(xié)議初始化
MQTT_Init();
//3. 連接華為服務(wù)器
while(MQTT_Connect(MQTT_ClientID,MQTT_UserName,MQTT_PassWord))
{
USART1_Printf("服務(wù)器連接失敗,正在重試...\n");
delay_ms(500);
}
USART1_Printf("服務(wù)器連接成功.\n");
//3. 訂閱主題
if(MQTT_SubscribeTopic(SET_TOPIC,0,1))
{
USART1_Printf("主題訂閱失敗.\n");
}
else
{
USART1_Printf("主題訂閱成功.\n");
}
.........
4.5 ESP8266代碼
#include "esp8266.h"
u8 ESP8266_IP_ADDR[16]; //255.255.255.255
u8 ESP8266_MAC_ADDR[18]; //硬件地址
/*
函數(shù)功能: ESP8266命令發(fā)送函數(shù)
函數(shù)返回值:0表示成功 1表示失敗
*/
u8 ESP8266_SendCmd(char *cmd)
{
u8 i,j;
for(i=0;i<10;i++) //檢測(cè)的次數(shù)--發(fā)送指令的次數(shù)
{
USARTx_StringSend(USART3,cmd);
for(j=0;j<100;j++) //等待的時(shí)間
{
delay_ms(50);
if(USART3_RX_FLAG)
{
USART3_RX_BUFFER[USART3_RX_CNT]='\0';
USART3_RX_FLAG=0;
USART3_RX_CNT=0;
if(strstr((char*)USART3_RX_BUFFER,"OK"))
{
return 0;
}
}
}
}
return 1;
}
/*
函數(shù)功能: ESP8266硬件初始化檢測(cè)函數(shù)
函數(shù)返回值:0表示成功 1表示失敗
*/
u8 ESP8266_Init(void)
{
//退出透?jìng)髂J? USARTx_StringSend(USART3,"+++");
delay_ms(50);
return ESP8266_SendCmd("AT\r\n");
}
/*
函數(shù)功能: 一鍵配置WIFI為AP+TCP服務(wù)器模式
函數(shù)參數(shù):
char *ssid 創(chuàng)建的熱點(diǎn)名稱
char *pass 創(chuàng)建的熱點(diǎn)密碼 (最少8位)
u16 port 創(chuàng)建的服務(wù)器端口號(hào)
函數(shù)返回值: 0表示成功 其他值表示對(duì)應(yīng)錯(cuò)誤值
*/
u8 ESP8266_AP_TCP_Server_Mode(char *ssid,char *pass,u16 port)
{
char *p;
u8 i;
char ESP8266_SendCMD[100]; //組合發(fā)送過程中的命令
/*1. 測(cè)試硬件*/
if(ESP8266_SendCmd("AT\r\n"))return 1;
/*2. 關(guān)閉回顯*/
if(ESP8266_SendCmd("ATE0\r\n"))return 2;
/*3. 設(shè)置WIFI模式*/
if(ESP8266_SendCmd("AT+CWMODE=2\r\n"))return 3;
/*4. 復(fù)位*/
ESP8266_SendCmd("AT+RST\r\n");
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
/*5. 關(guān)閉回顯*/
if(ESP8266_SendCmd("ATE0\r\n"))return 5;
/*6. 設(shè)置WIFI的AP模式參數(shù)*/
sprintf(ESP8266_SendCMD,"AT+CWSAP=\"%s\",\"%s\",1,4\r\n",ssid,pass);
if(ESP8266_SendCmd(ESP8266_SendCMD))return 6;
/*7. 開啟多連接*/
if(ESP8266_SendCmd("AT+CIPMUX=1\r\n"))return 7;
/*8. 設(shè)置服務(wù)器端口號(hào)*/
sprintf(ESP8266_SendCMD,"AT+CIPSERVER=1,%d\r\n",port);
if(ESP8266_SendCmd(ESP8266_SendCMD))return 8;
/*9. 查詢本地IP地址*/
if(ESP8266_SendCmd("AT+CIFSR\r\n"))return 9;
//提取IP地址
p=strstr((char*)USART3_RX_BUFFER,"APIP");
if(p)
{
p+=6;
for(i=0;*p!='"';i++)
{
ESP8266_IP_ADDR[i]=*p++;
}
ESP8266_IP_ADDR[i]='\0';
}
//提取MAC地址
p=strstr((char*)USART3_RX_BUFFER,"APMAC");
if(p)
{
p+=7;
for(i=0;*p!='"';i++)
{
ESP8266_MAC_ADDR[i]=*p++;
}
ESP8266_MAC_ADDR[i]='\0';
}
//打印總體信息
USART1_Printf("當(dāng)前WIFI模式:AP+TCP服務(wù)器\n");
USART1_Printf("當(dāng)前WIFI熱點(diǎn)名稱:%s\n",ssid);
USART1_Printf("當(dāng)前WIFI熱點(diǎn)密碼:%s\n",pass);
USART1_Printf("當(dāng)前TCP服務(wù)器端口號(hào):%d\n",port);
USART1_Printf("當(dāng)前TCP服務(wù)器IP地址:%s\n",ESP8266_IP_ADDR);
USART1_Printf("當(dāng)前TCP服務(wù)器MAC地址:%s\n",ESP8266_MAC_ADDR);
return 0;
}
/*
函數(shù)功能: TCP服務(wù)器模式下的發(fā)送函數(shù)
發(fā)送指令:
*/
u8 ESP8266_ServerSendData(u8 id,u8 *data,u16 len)
{
u8 i,j,n;
char ESP8266_SendCMD[100]; //組合發(fā)送過程中的命令
for(i=0;i<10;i++)
{
sprintf(ESP8266_SendCMD,"AT+CIPSEND=%d,%d\r\n",id,len);
USARTx_StringSend(USART3,ESP8266_SendCMD);
for(j=0;j<10;j++)
{
delay_ms(50);
if(USART3_RX_FLAG)
{
USART3_RX_BUFFER[USART3_RX_CNT]='\0';
USART3_RX_FLAG=0;
USART3_RX_CNT=0;
if(strstr((char*)USART3_RX_BUFFER,">"))
{
//繼續(xù)發(fā)送數(shù)據(jù)
USARTx_DataSend(USART3,data,len);
//等待數(shù)據(jù)發(fā)送成功
for(n=0;n<200;n++)
{
delay_ms(50);
if(USART3_RX_FLAG)
{
USART3_RX_BUFFER[USART3_RX_CNT]='\0';
USART3_RX_FLAG=0;
USART3_RX_CNT=0;
if(strstr((char*)USART3_RX_BUFFER,"SEND OK"))
{
return 0;
}
}
}
}
}
}
}
return 1;
}
/*
函數(shù)功能: 配置WIFI為STA模式+TCP客戶端模式
函數(shù)參數(shù):
char *ssid 創(chuàng)建的熱點(diǎn)名稱
char *pass 創(chuàng)建的熱點(diǎn)密碼 (最少8位)
char *p 將要連接的服務(wù)器IP地址
u16 port 將要連接的服務(wù)器端口號(hào)
u8 flag 1表示開啟透?jìng)髂J?0表示關(guān)閉透?jìng)髂J?函數(shù)返回值:0表示成功 其他值表示對(duì)應(yīng)的錯(cuò)誤
*/
u8 ESP8266_STA_TCP_Client_Mode(char *ssid,char *pass,char *ip,u16 port,u8 flag)
{
char ESP8266_SendCMD[100]; //組合發(fā)送過程中的命令
//退出透?jìng)髂J? //USARTx_StringSend(USART3,"+++");
//delay_ms(50);
/*1. 測(cè)試硬件*/
if(ESP8266_SendCmd("AT\r\n"))return 1;
/*2. 關(guān)閉回顯*/
if(ESP8266_SendCmd("ATE0\r\n"))return 2;
/*3. 設(shè)置WIFI模式*/
if(ESP8266_SendCmd("AT+CWMODE=1\r\n"))return 3;
/*4. 復(fù)位*/
ESP8266_SendCmd("AT+RST\r\n");
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
/*5. 關(guān)閉回顯*/
if(ESP8266_SendCmd("ATE0\r\n"))return 5;
/*6. 配置將要連接的WIFI熱點(diǎn)信息*/
sprintf(ESP8266_SendCMD,"AT+CWJAP=\"%s\",\"%s\"\r\n",ssid,pass);
if(ESP8266_SendCmd(ESP8266_SendCMD))return 6;
/*7. 設(shè)置單連接*/
if(ESP8266_SendCmd("AT+CIPMUX=0\r\n"))return 7;
/*8. 配置要連接的TCP服務(wù)器信息*/
sprintf(ESP8266_SendCMD,"AT+CIPSTART=\"TCP\",\"%s\",%d\r\n",ip,port);
if(ESP8266_SendCmd(ESP8266_SendCMD))return 8;
/*9. 開啟透?jìng)髂J?/
if(flag)
{
if(ESP8266_SendCmd("AT+CIPMODE=1\r\n"))return 9; //開啟
if(ESP8266_SendCmd("AT+CIPSEND\r\n"))return 10; //開始透?jìng)? if(!(strstr((char*)USART3_RX_BUFFER,">")))
{
return 11;
}
//如果想要退出發(fā)送: "+++"
}
//打印總體信息
USART1_Printf("當(dāng)前WIFI模式:STA+TCP客戶端\n");
USART1_Printf("當(dāng)前連接的WIFI熱點(diǎn)名稱:%s\n",ssid);
USART1_Printf("當(dāng)前連接的WIFI熱點(diǎn)密碼:%s\n",pass);
USART1_Printf("當(dāng)前連接的TCP服務(wù)器端口號(hào):%d\n",port);
USART1_Printf("當(dāng)前連接的TCP服務(wù)器IP地址:%s\n",ip);
return 0;
}
/*
函數(shù)功能: TCP客戶端模式下的發(fā)送函數(shù)
發(fā)送指令:
*/
u8 ESP8266_ClientSendData(u8 *data,u16 len)
{
u8 i,j,n;
char ESP8266_SendCMD[100]; //組合發(fā)送過程中的命令
for(i=0;i<10;i++)
{
sprintf(ESP8266_SendCMD,"AT+CIPSEND=%d\r\n",len);
USARTx_StringSend(USART3,ESP8266_SendCMD);
for(j=0;j<10;j++)
{
delay_ms(50);
if(USART3_RX_FLAG)
{
USART3_RX_BUFFER[USART3_RX_CNT]='\0';
USART3_RX_FLAG=0;
USART3_RX_CNT=0;
if(strstr((char*)USART3_RX_BUFFER,">"))
{
//繼續(xù)發(fā)送數(shù)據(jù)
USARTx_DataSend(USART3,data,len);
//等待數(shù)據(jù)發(fā)送成功
for(n=0;n<200;n++)
{
delay_ms(50);
if(USART3_RX_FLAG)
{
USART3_RX_BUFFER[USART3_RX_CNT]='\0';
USART3_RX_FLAG=0;
USART3_RX_CNT=0;
if(strstr((char*)USART3_RX_BUFFER,"SEND OK"))
{
return 0;
}
}
}
}
}
}
}
return 1;
}
審核編輯:湯梓紅
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2902文章
44116瀏覽量
370415 -
STM32
+關(guān)注
關(guān)注
2264文章
10858瀏覽量
354384 -
稱重系統(tǒng)
+關(guān)注
關(guān)注
0文章
17瀏覽量
7965 -
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
44758 -
華為云
+關(guān)注
關(guān)注
3文章
2392瀏覽量
17253
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論