單芯片解決方案,開(kāi)啟全新體驗(yàn)——W55MH32 高性能以太網(wǎng)單片機(jī)
W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機(jī),它為用戶帶來(lái)前所未有的集成化體驗(yàn)。這顆芯片將強(qiáng)大的組件集于一身,具體來(lái)說(shuō),一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲(chǔ)與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨(dú)立的32KB以太網(wǎng)收發(fā)緩存,可供8個(gè)獨(dú)立硬件socket使用。如此配置,真正實(shí)現(xiàn)了All-in-One解決方案,為開(kāi)發(fā)者提供極大便利。
在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN100和QFN68。
W55MH32L采用QFN100封裝版本,尺寸為12x12mm,其資源豐富,專為各種復(fù)雜工控場(chǎng)景設(shè)計(jì)。它擁有66個(gè)GPIO、3個(gè)ADC、12通道DMA、17個(gè)定時(shí)器、2個(gè)I2C、5個(gè)串口、2個(gè)SPI接口(其中1個(gè)帶I2S接口復(fù)用)、1個(gè)CAN、1個(gè)USB2.0以及1個(gè)SDIO接口。如此豐富的外設(shè)資源,能夠輕松應(yīng)對(duì)工業(yè)控制中多樣化的連接需求,無(wú)論是與各類傳感器、執(zhí)行器的通信,還是對(duì)復(fù)雜工業(yè)協(xié)議的支持,都能游刃有余,成為復(fù)雜工控領(lǐng)域的理想選擇。同系列還有QFN68封裝的W55MH32Q版本,該版本體積更小,僅為8x8mm,成本低,適合集成度高的網(wǎng)關(guān)模組等場(chǎng)景,軟件使用方法一致。更多信息和資料請(qǐng)進(jìn)入http://www.w5500.com/網(wǎng)站或者私信獲取。
此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及 MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。
為助力開(kāi)發(fā)者快速上手與深入開(kāi)發(fā),基于W55MH32L這顆芯片,WIZnet精心打造了配套開(kāi)發(fā)板。開(kāi)發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實(shí)現(xiàn)調(diào)試、下載以及串口打印日志等功能。開(kāi)發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開(kāi)發(fā)者全面評(píng)估芯片性能。
若您想獲取芯片和開(kāi)發(fā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價(jià)格等,歡迎訪問(wèn)官方網(wǎng)頁(yè):http://www.w5500.com/,我們期待與您共同探索W55MH32的無(wú)限可能。

第二十三章 W55MH32 MQTT_OneNET示例
本篇文章,我們將詳細(xì)介紹如何在W55MH32芯片上面實(shí)現(xiàn)MQTT協(xié)議。并通過(guò)實(shí)戰(zhàn)例程,為大家講解如何使用W55MH32的MQTT協(xié)議連接OneNET平臺(tái),實(shí)現(xiàn)與OneNET物模型的數(shù)據(jù)交互。
該例程用到的其他網(wǎng)絡(luò)協(xié)議,例如DHCP和DNS,請(qǐng)參考相關(guān)章節(jié)。有關(guān)W55MH32的初始化過(guò)程,請(qǐng)參考Network Install章節(jié),這里將不再贅述。
1 MQTT簡(jiǎn)介
MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議)是一種輕量級(jí)的、基于發(fā)布/訂閱模式的消息傳輸協(xié)議,廣泛應(yīng)用于物聯(lián)網(wǎng)(IoT)領(lǐng)域,尤其是在網(wǎng)絡(luò)帶寬受限、設(shè)備資源有限的環(huán)境中。它由IBM在1999年提出,主要用于遠(yuǎn)程監(jiān)控和控制系統(tǒng)中的設(shè)備通信。MQTT協(xié)議具有低帶寬、低功耗、低延遲等優(yōu)點(diǎn),特別適用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備的通信。
2 MQTT特點(diǎn)
輕量級(jí):MQTT協(xié)議采用極簡(jiǎn)的協(xié)議頭,減少了消息頭的大小,適合帶寬有限和計(jì)算資源有限的設(shè)備。
可靠性:MQTT支持三種服務(wù)質(zhì)量(QoS)級(jí)別,能夠確保數(shù)據(jù)可靠送達(dá)。
實(shí)時(shí)性:MQTT適合低延遲應(yīng)用場(chǎng)景,消息會(huì)盡可能地實(shí)時(shí)推送到訂閱者。
保留消息:MQTT支持“保留消息”功能,代理會(huì)保存最后一條發(fā)布的消息,當(dāng)有新設(shè)備訂閱某個(gè)主題時(shí),代理會(huì)立即發(fā)送保留的消息。
持久會(huì)話:MQTT允許客戶端在斷開(kāi)后恢復(fù)會(huì)話狀態(tài),斷開(kāi)期間的消息可以在客戶端重新連接后繼續(xù)接收。
3 MQTT應(yīng)用場(chǎng)景
工業(yè)自動(dòng)化:在工業(yè)環(huán)境中,生產(chǎn)設(shè)備、傳感器、控制器等都需要進(jìn)行數(shù)據(jù)交換,MQTT協(xié)議適用于在復(fù)雜的工業(yè)自動(dòng)化系統(tǒng)中提供實(shí)時(shí)通信。
智能電網(wǎng):智能電網(wǎng)應(yīng)用中,電力設(shè)備(如變電站、智能電表、開(kāi)關(guān)設(shè)備等)通過(guò)以太網(wǎng)與控制中心進(jìn)行實(shí)時(shí)數(shù)據(jù)交換,使用MQTT協(xié)議進(jìn)行遠(yuǎn)程監(jiān)控和控制。
遠(yuǎn)程設(shè)備監(jiān)控與管理:適用于需要遠(yuǎn)程監(jiān)控和管理的設(shè)備,如遠(yuǎn)程氣象站、環(huán)境監(jiān)測(cè)設(shè)備等。通過(guò)MQTT協(xié)議實(shí)時(shí)獲取設(shè)備的傳感器數(shù)據(jù)。
4 MQTT發(fā)布/訂閱模式
發(fā)布訂閱模式(Publish-Subscribe Pattern)是一種消息傳遞模式,它將發(fā)送消息的客戶端(發(fā)布者)與接收消息的客戶端(訂閱者)解耦,使得兩者不需要建立直接的聯(lián)系也不需要知道對(duì)方的存在。
MQTT發(fā)布/訂閱模式的精髓在于由一個(gè)被稱為代理(Broker)的中間角色負(fù)責(zé)所有消息的路由和分發(fā)工作,發(fā)布者將帶有主題的消息發(fā)送給代理,訂閱者則向代理訂閱主題來(lái)接收感興趣的消息。
在 MQTT中,主題和訂閱無(wú)法被提前注冊(cè)或創(chuàng)建,所以代理也無(wú)法預(yù)知某一個(gè)主題之后是否會(huì)有訂閱者,以及會(huì)有多少訂閱者,所以只能將消息轉(zhuǎn)發(fā)給當(dāng)前的訂閱者,如果當(dāng)前不存在任何訂閱,那么消息將被直接丟棄。
MQTT發(fā)布/訂閱模式有 4個(gè)主要組成部分:發(fā)布者、訂閱者、代理和主題。
發(fā)布者(Publisher):負(fù)責(zé)將消息發(fā)布到主題上,發(fā)布者一次只能向一個(gè)主題發(fā)送數(shù)據(jù),發(fā)布者發(fā)布消息時(shí)也無(wú)需關(guān)心訂閱者是否在線。
訂閱者(Subscriber):訂閱者通過(guò)訂閱主題接收消息,且可一次訂閱多個(gè)主題。
代理(Broker):負(fù)責(zé)接收發(fā)布者的消息,并將消息轉(zhuǎn)發(fā)至符合條件的訂閱者。另外,代理也需要負(fù)責(zé)處理客戶端發(fā)起的連接、斷開(kāi)連接、訂閱、取消訂閱等請(qǐng)求。
主題(Topic):主題是 MQTT進(jìn)行消息路由的基礎(chǔ),它類似 URL路徑,使用斜杠/進(jìn)行分層,比如sensor/1/temperature。一個(gè)主題可以有多個(gè)訂閱者,代理會(huì)將該主題下的消息轉(zhuǎn)發(fā)給所有訂閱者;一個(gè)主題也可以有多個(gè)發(fā)布者,代理將按照消息到達(dá)的順序轉(zhuǎn)發(fā)。
MQTT協(xié)議的通信流程如下圖:

5 MQTT QoS詳解
QoS 0:消息最多傳遞一次,可能會(huì)丟失,且不做重試。這是最基本的QoS級(jí)別,不保證消息的傳送或順序。
使用場(chǎng)景:實(shí)時(shí)傳輸?shù)母聰?shù)據(jù),如溫度、濕度等,消息丟失對(duì)應(yīng)用的影響較小。
QoS 1:消息至少傳送一次。為了確保消息到達(dá),發(fā)送方會(huì)重復(fù)發(fā)送消息,直到收到接收方的確認(rèn)應(yīng)答(PUBACK)。可能會(huì)導(dǎo)致消息重復(fù)接收。
使用場(chǎng)景:電力監(jiān)測(cè)數(shù)據(jù),或需要確保狀態(tài)信息準(zhǔn)確傳輸?shù)膽?yīng)用場(chǎng)景。
QoS 2:確保消息只能被傳遞一次,且只傳遞一次。該級(jí)別保證了消息的可靠性、唯一性和順序性。通過(guò)四次握手過(guò)程確保消息不丟失、不會(huì)重復(fù)。
適用場(chǎng)景:高安全要求的應(yīng)用,如支付系統(tǒng)、重要的設(shè)備控制等,不能容忍消息重復(fù)或丟失。
6 MQTT消息
在 MQTT中,客戶端可以在連接時(shí)在服務(wù)端中注冊(cè)一個(gè)遺囑消息,與普通消息類似,我們可以設(shè)置遺囑消息的主題、有效載荷等等。當(dāng)該客戶端意外斷開(kāi)連接,服務(wù)端就會(huì)向其他訂閱了相應(yīng)主題的客戶端發(fā)送此遺囑消息。這些接收者也因此可以及時(shí)地采取行動(dòng)。這一特性通常用于檢測(cè)和響應(yīng)客戶端故障或掉線事件,特別適合在需要高可靠性的物聯(lián)網(wǎng)系統(tǒng)和實(shí)時(shí)監(jiān)控場(chǎng)景中使用。
有關(guān)MQTT協(xié)議的報(bào)文,可以參考:Introduction · MQTT協(xié)議中文版,本文不再贅述。
7 OneNET物聯(lián)網(wǎng)平臺(tái)簡(jiǎn)介
OneNET是由中國(guó)移動(dòng)打造的物聯(lián)網(wǎng)開(kāi)放平臺(tái),在物聯(lián)網(wǎng)應(yīng)用和真實(shí)設(shè)備之間搭建高效、穩(wěn)定安全的應(yīng)用平臺(tái)。該平臺(tái)支持適配各種網(wǎng)絡(luò)環(huán)境和協(xié)議類型,可實(shí)現(xiàn)各種傳感器和智能硬件的快速接提供豐富的 API和應(yīng)用模板以支撐各類行業(yè)應(yīng)用和智能硬件的開(kāi)發(fā)。
8 OneNET物模型介紹
物模型是物聯(lián)網(wǎng)平臺(tái)中用于描述和管理設(shè)備能力的抽象模型,它定義了設(shè)備的屬性、行為和事件,使設(shè)備與平臺(tái)、應(yīng)用之間的交互更加標(biāo)準(zhǔn)化和統(tǒng)一。在OneNET平臺(tái)中,物模型是設(shè)備管理與數(shù)據(jù)交互的核心概念,通過(guò)物模型,開(kāi)發(fā)者可以方便地對(duì)設(shè)備進(jìn)行建模、管理和使用。
9 MQTT連接OneNET收發(fā)數(shù)據(jù)流程
1.準(zhǔn)備階段
注冊(cè)與實(shí)名認(rèn)證:用戶需要在OneNET平臺(tái)注冊(cè)賬號(hào),并完成實(shí)名認(rèn)證。
創(chuàng)建產(chǎn)品和添加物模型:登錄阿里云物聯(lián)網(wǎng)平臺(tái),創(chuàng)建產(chǎn)品并在產(chǎn)品下添加以下物模型功能。

創(chuàng)建設(shè)備:在剛剛創(chuàng)建的產(chǎn)品下創(chuàng)建一個(gè)設(shè)備。
2.記錄參數(shù)
連接參數(shù):可在OneNET - 中國(guó)移動(dòng)物聯(lián)網(wǎng)開(kāi)放平臺(tái)官方文檔中找到MQTT協(xié)議所需的連接參數(shù),從中可得:
服務(wù)器地址及端口和安全認(rèn)證三要素:


clientld為我們創(chuàng)建的設(shè)備名,usemame為我們創(chuàng)建產(chǎn)品后平臺(tái)分配的產(chǎn)品ID,password則需使用token生成工具生成,工具說(shuō)明及下載鏈接:OneNET - 中國(guó)移動(dòng)物聯(lián)網(wǎng)開(kāi)放平臺(tái)。
發(fā)布主題:$sys/{pid}/{device-name}/thing/property/post(屬性上報(bào)消息主題)
訂閱主題:$sys/{pid}/{device-name}/thing/property/post/reply(屬性上報(bào)響應(yīng)主題)
訂閱主題:$sys/{pid}/{device-name}/thing/property/set(設(shè)置主題)
注意:上面兩個(gè)主題中的{pid}需要替換成產(chǎn)品ID,{device-name}替換成設(shè)備名。

3.連接、訂閱和發(fā)布消息
接著我們可以使用上面記錄的連接參數(shù)進(jìn)行連接,當(dāng)連接成功后,訂閱上面的訂閱主題。并通過(guò)發(fā)布主題上報(bào)物模型數(shù)據(jù)。
在OneNET平臺(tái),如果產(chǎn)品創(chuàng)建階段選擇的數(shù)據(jù)格式為OneJson格式時(shí),接收和發(fā)送數(shù)據(jù)格式都會(huì)遵守下面這個(gè)格式:
{
"id":"123",
"version":"1.0",
"params":{
"Power":{
"value":"on",
"time":1524448722123
},
"WF":{
"value":23.6,
"time":1524448722123
}
},
"method":"thing.{功能類型}.{方法}"
}
字段id是請(qǐng)求的唯一標(biāo)識(shí)符,值為"123",用于跟蹤請(qǐng)求的響應(yīng);version表示OneJSON數(shù)據(jù)格式的版本號(hào),這里為"1.0";params字段包含設(shè)備的屬性數(shù)據(jù),包含了屬性標(biāo)識(shí)符、對(duì)應(yīng)的值和時(shí)間戳;method字段指定設(shè)備執(zhí)行的操作類型,這里是thing.{功能類型}.{方法},用于指明設(shè)備進(jìn)行的操作。
4.接收消息處理
接收消息:當(dāng)接收到消息時(shí),我們只需要按照上面的json格式進(jìn)行解析,然后進(jìn)行相應(yīng)的處理即可。
10實(shí)現(xiàn)過(guò)程
接下來(lái),我們看看在W55MH32上如何實(shí)現(xiàn)MQTT連接OneNET,并進(jìn)行訂閱、發(fā)布消息以及接收消息處理。
注意:因?yàn)楸臼纠枰L問(wèn)互聯(lián)網(wǎng),請(qǐng)確保W55MH32的網(wǎng)絡(luò)環(huán)境及配置能夠正常訪問(wèn)互聯(lián)網(wǎng)。
步驟一:初始化MQTT客戶端
mqttconn mqtt_params = {
.mqttHostUrl = "mqtts.heclouds.com",
.server_ip = {
0,
}, /*Define the Connection Server IP*/
.port = 1883, /*Define the connection service port number*/
.clientid = "W5100S_W5500", /*Define the client ID*/
.username = "70TwP2gxl5", /*Define the user name*/
.passwd = "version=2018-10-31&res=products%2F70TwP2gxl5%2Fdevices%2FW5100S_W5500&et=1791400694&method=sha1&sign=0SchVg6Y2MRYn%2B9zItNZwt%2F%2FN4Y%3D", /*Define user passwords*/
.pubtopic = "$sys/70TwP2gxl5/W5100S_W5500/thing/property/post", /*Define the publication message*/
.pubtopic_reply = "$sys/70TwP2gxl5/W5100S_W5500/thing/property/post/reply",
.subtopic = "$sys/70TwP2gxl5/W5100S_W5500/thing/property/set", /*Define subscription messages*/
.subtopic_reply = "$sys/70TwP2gxl5/W5100S_W5500/thing/property/set_reply",
.pubQoS = QOS0, /*Defines the class of service for publishing messages*/
.willtopic = "/wizchip/will", /*Define the topic of the will*/
.willQoS = QOS0, /*Defines the class of service for Will messages*/
.willmsg = "wizchip offline!", /*Define a will message*/
.subQoS = QOS0, /*Defines the class of service for subscription messages*/
};
/**
* @brief Initializing the MQTT client side
*
* Initialize the MQTT client side with the given parameters, including network configuration and MQTT connection parameters.
*
* @param sn socket number
* @param send_buf send buffer pointer
* @param recv_buf recv buffer pointer
*/
void mqtt_init(uint8_t sn, uint8_t *send_buf, uint8_t *recv_buf)
{
wiz_NetInfo get_info = {0};
wizchip_getnetinfo(&get_info);
/* DNS parsing */
if (do_dns(send_buf, (uint8_t *)mqtt_params.mqttHostUrl, mqtt_params.server_ip))
{
while (1)
{
}
}
NewNetwork(&n, sn); /*Obtain network configuration information*/
ConnectNetwork(&n, mqtt_params.server_ip, mqtt_params.port); /*Connect to the MQTT server*/
MQTTClientInit(&c, &n, 1000, send_buf, MQTT_ETHERNET_MAX_SIZE, recv_buf, MQTT_ETHERNET_MAX_SIZE);
data.willFlag = 0; /* will flag: If the will annotation bit is 0, the following will-related settings are invalid*/
willdata.qos = mqtt_params.willQoS; /* will QoS */
willdata.topicName.lenstring.data = mqtt_params.willtopic; /* will topic */
willdata.topicName.lenstring.len = strlen(willdata.topicName.lenstring.data); /* will topic len */
willdata.message.lenstring.data = mqtt_params.willmsg; /* will message */
willdata.message.lenstring.len = strlen(willdata.message.lenstring.data); /* will message len */
willdata.retained = 0;
willdata.struct_version = 3;
data.will = willdata;
data.MQTTVersion = 4;
data.clientID.cstring = mqtt_params.clientid;
data.username.cstring = mqtt_params.username;
data.password.cstring = mqtt_params.passwd;
data.keepAliveInterval = 30;
data.cleansession = 1;
}
修改為自己平臺(tái)的clientid和username以及passwd,還包括pubtopic和subtopic的產(chǎn)品和設(shè)備名的更改。
步驟二:主循環(huán),處理MQTT相關(guān)操作(連接、發(fā)送、接收等)
while(1)
{
do_mqtt();
}
步驟三:進(jìn)入do_mqtt()函數(shù)
void do_mqtt(void)
{
uint8_t ret;
switch (run_status)
{
case CONN:
{
// 連接到MQTT服務(wù)器
ret = MQTTConnect(&c, &data);
printf("Connect to the MQTT server: %d.%d.%d.%d:%drn",
mqtt_params.server_ip[0], mqtt_params.server_ip[1],
mqtt_params.server_ip[2], mqtt_params.server_ip[3],
mqtt_params.port);
printf("Connected:%srnrn", ret == SUCCESSS ? "success" : "failed");
if (ret != SUCCESSS)
{
run_status = ERR;
}
else
{
run_status = SUB;
}
break;
}
case SUB:
{
// 訂閱第一個(gè)主題
ret = MQTTSubscribe(&c, mqtt_params.subtopic, mqtt_params.subQoS, messageArrived);
printf("Subscribing to %srn", mqtt_params.subtopic);
printf("Subscribed:%srnrn", ret == SUCCESSS ? "success" : "failed");
if (ret != SUCCESSS)
{
run_status = ERR;
}
else
{
run_status = PUB_MESSAGE;
}
// 訂閱第二個(gè)主題(回復(fù)主題)
ret = MQTTSubscribe(&c, mqtt_params.pubtopic_reply, mqtt_params.subQoS, messageArrived);
printf("Subscribing to %srn", mqtt_params.pubtopic_reply);
printf("Subscribed:%srnrn", ret == SUCCESSS ? "success" : "failed");
if (ret != SUCCESSS)
{
run_status = ERR;
}
else
{
run_status = PUB_MESSAGE;
}
break;
}
case PUB_MESSAGE:
{
// 配置發(fā)布消息參數(shù)
pubmessage.qos = QOS0;
pubmessage.payload = "{"id":"123","version":"1.0","params":{"CurrentTemperature":{"value":26.6}}}";
pubmessage.payloadlen = strlen(pubmessage.payload);
// 發(fā)布消息
ret = MQTTPublish(&c, (char *)&(mqtt_params.pubtopic), &pubmessage);
if (ret != SUCCESSS)
{
run_status = ERR;
}
else
{
printf("publish:%s,%srnrn", mqtt_params.pubtopic, (char *)pubmessage.payload);
run_status = KEEPALIVE;
}
break;
}
case KEEPALIVE:
{
// 維持MQTT連接(心跳)
if (MQTTYield(&c, 30) != SUCCESSS)
{
run_status = ERR;
}
delay_ms(100);
break;
}
case RECV:
{
// 處理接收到的消息
if (mqtt_recv_flag)
{
mqtt_recv_flag = 0;
json_decode(mqtt_recv_msg); // 解析接收到的JSON消息
}
delay_ms(100);
break;
}
case ERR: /* 運(yùn)行錯(cuò)誤狀態(tài) */
printf("system ERROR!");
delay_ms(1000);
break;
default:
break;
}
}
進(jìn)入該函數(shù)后,程序首先嘗試連接到指定的MQTT服務(wù)器。如果連接成功,則進(jìn)入訂閱狀態(tài);如果連接失敗,則直接進(jìn)入錯(cuò)誤狀態(tài)并打印錯(cuò)誤信息。
在訂閱狀態(tài)中,訂閱兩個(gè)主題:一個(gè)是用于接收消息的訂閱主題,另一個(gè)是用于發(fā)布回復(fù)的發(fā)布主題。如果這兩個(gè)主題都成功訂閱,則進(jìn)入發(fā)布消息狀態(tài);如果訂閱過(guò)程中出現(xiàn)失敗,則進(jìn)入錯(cuò)誤狀態(tài)并打印錯(cuò)誤信息。
進(jìn)入發(fā)布消息狀態(tài)后,構(gòu)建一條消息并嘗試發(fā)布。如果發(fā)布成功,則進(jìn)入保持連接狀態(tài);如果發(fā)布失敗,則進(jìn)入錯(cuò)誤狀態(tài)并打印錯(cuò)誤信息。
在保持連接狀態(tài)中,持續(xù)接收消息并檢查是否有需要處理的消息。如果有接收到需要處理的消息,則進(jìn)行相應(yīng)的處理。
在任何步驟中,如果發(fā)生錯(cuò)誤,都會(huì)立即進(jìn)入錯(cuò)誤狀態(tài),并打印出詳細(xì)的錯(cuò)誤信息。
11運(yùn)行結(jié)果
燒錄例程運(yùn)行后,首先進(jìn)行了PHY鏈路檢測(cè),接著是通過(guò)DHCP獲取網(wǎng)絡(luò)地址信息和DNS解析服務(wù)器域名,然后連接服務(wù)器和訂閱主題,最后發(fā)送物模型數(shù)據(jù),隨后就接收到OneNET平臺(tái)響應(yīng)的上報(bào)成功的信息,此時(shí)查看平臺(tái)物模型數(shù)據(jù)已經(jīng)得到更新顯示。如下圖所示:

然后我們使用ONENET平臺(tái)的在線設(shè)備調(diào)試功能,調(diào)試LWDSwish狀態(tài),下發(fā)數(shù)據(jù),此時(shí)W55MH32就接收到下發(fā)的消息并進(jìn)行響應(yīng)操作了,如下執(zhí)行LED OFF:

12總結(jié)
本文講解了如何在 W55MH32芯片上實(shí)現(xiàn) MQTT協(xié)議并連接 OneNET平臺(tái),通過(guò)實(shí)戰(zhàn)例程展示了從準(zhǔn)備工作、連接配置到消息訂閱、發(fā)布及接收處理的完整過(guò)程。文章詳細(xì)介紹了 MQTT協(xié)議的概念、特點(diǎn)、應(yīng)用場(chǎng)景、發(fā)布 /訂閱模式、QoS級(jí)別,以及 OneNET物聯(lián)網(wǎng)平臺(tái)和物模型相關(guān)知識(shí),幫助讀者理解其在物聯(lián)網(wǎng)設(shè)備與云端數(shù)據(jù)交互中的實(shí)際應(yīng)用價(jià)值。
下一篇文章將講解如何在 W55MH32上實(shí)現(xiàn)多路 Socket設(shè)置為 TCP客戶端模式,并進(jìn)行連接同一個(gè)服務(wù)器測(cè)試,解析多路 Socket連接的核心原理及應(yīng)用,同時(shí)講解在 W55MH32上實(shí)現(xiàn)該功能的具體步驟與要點(diǎn),敬請(qǐng)期待!
WIZnet是一家無(wú)晶圓廠半導(dǎo)體公司,成立于 1998年。產(chǎn)品包括互聯(lián)網(wǎng)處理器 iMCU?,它采用 TOE(TCP/IP卸載引擎)技術(shù),基于獨(dú)特的專利全硬連線 TCP/IP。iMCU?面向各種應(yīng)用中的嵌入式互聯(lián)網(wǎng)設(shè)備。
WIZnet在全球擁有 70多家分銷(xiāo)商,在香港、韓國(guó)、美國(guó)設(shè)有辦事處,提供技術(shù)支持和產(chǎn)品營(yíng)銷(xiāo)。
香港辦事處管理的區(qū)域包括:澳大利亞、印度、土耳其、亞洲(韓國(guó)和日本除外)。
審核編輯 黃宇
-
嵌入式
+關(guān)注
關(guān)注
5192文章
20271瀏覽量
331654 -
以太網(wǎng)
+關(guān)注
關(guān)注
41文章
5965瀏覽量
180170 -
MQTT
+關(guān)注
關(guān)注
5文章
730瀏覽量
24930
發(fā)布評(píng)論請(qǐng)先 登錄
科技賦能推動(dòng)綠色低碳發(fā)展 第二十三屆高交會(huì)“環(huán)?!绷咙c(diǎn)看這里!
第二十三章 IWDG——獨(dú)立看門(mén)狗
火力發(fā)電廠水汽分析方法 第二十三部分:化學(xué)耗氧量的測(cè)定(重鉻
第二十三講 異步計(jì)數(shù)器
模擬電路網(wǎng)絡(luò)課件 第二十三節(jié):乙類雙電源互補(bǔ)對(duì)稱功率放大電路
2017中國(guó)西部微波射頻技術(shù)研討會(huì)暨第二十三屆國(guó)際電子測(cè)試測(cè)量研討會(huì)
【正點(diǎn)原子FPGA連載】第二十三章RGB-LCD字符和圖片顯示實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開(kāi)發(fā)指南_V2.1
烽火通信光纖技術(shù)獲“第二十三屆中國(guó)專利獎(jiǎng)”銀獎(jiǎng)
中國(guó)電子科技集團(tuán)公司第二十三研究所選購(gòu)我司炭黑含量測(cè)試儀
第十三章 W55MH32 UPnP端口轉(zhuǎn)發(fā)示例
第二十一章 W55MH32 PHY配置示例
第二十二章 W55MH32 MQTT&Aliyun示例
第二十六章 W55MH32?上位機(jī)搜索和配置示例
第二十七章 W55MH32?Interrupt示例
第二十九章 W55MH32 Modbus_TCP_Server示例
第二十三章 W55MH32 MQTT_OneNET示例
評(píng)論