五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【零基礎(chǔ)學(xué)物聯(lián)網(wǎng)】MQTT篇 1-8 ESP8266訂閱MQTT主題

2020-11-28 10:58 作者:太極創(chuàng)客  | 我要投稿

為了幫助您學(xué)習(xí),我們專門為本教程制作了視頻。

在上一節(jié)課程里,我們學(xué)習(xí)了如何使用ESP8266發(fā)布MQTT消息,在這節(jié)課里,我們將學(xué)習(xí)如何使用ESP8266來訂閱MQTT消息。我們將使用ESP8266實(shí)現(xiàn)以下訂閱MQTT消息的操作:

– 訂閱單個(gè)主題
– 訂閱多個(gè)主題
– 使用單級通配符訂閱主題
– 使用多級通配符訂閱主題

我們將針對以上列表中的每一項(xiàng)內(nèi)容提供一個(gè)示例程序。這些示例程序均配有視頻講解以幫助您更好的了解我們是如何實(shí)現(xiàn)每一項(xiàng)MQTT操作的。您可以點(diǎn)擊本文首部的視頻鏈接,打開講解視頻。

訂閱單個(gè)主題

/**********************************************************************

項(xiàng)目名稱/Project??????????: 零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)

程序名稱/Program name???? : subscribe_ranye_url

團(tuán)隊(duì)/Team????????????????: 太極創(chuàng)客團(tuán)隊(duì) / Taichi-Maker (www.taichi-maker.com)

作者/Author??????????????: CYNO朔

日期/Date(YYYYMMDD)???? : 20200708

程序目的/Purpose??????????:

本程序旨在演示如何使用PubSubClient庫使用ESP8266向MQTT服務(wù)器訂閱信息。

-----------------------------------------------------------------------

本示例程序?yàn)樘珮O創(chuàng)客團(tuán)隊(duì)制作的《零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)》中示例程序。

該教程為對物聯(lián)網(wǎng)開發(fā)感興趣的朋友所設(shè)計(jì)和制作。如需了解更多該教程的信息,請參考以下網(wǎng)頁:

http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/

***********************************************************************/

#include <ESP8266WiFi.h>

#include <PubSubClient.h>

?

// 設(shè)置wifi接入信息(請根據(jù)您的WiFi信息進(jìn)行修改)

const char* ssid = "taichimaker";

const char* password = "12345678";

const char* mqttServer = "test.ranye-iot.net";

// 如以上MQTT服務(wù)器無法正常連接,請前往以下頁面尋找解決方案

// http://www.taichi-maker.com/public-mqtt-broker/

?

WiFiClient wifiClient;

PubSubClient mqttClient(wifiClient);

?

void setup() {

??pinMode(LED_BUILTIN, OUTPUT);???? // 設(shè)置板上LED引腳為輸出模式

??digitalWrite(LED_BUILTIN, HIGH);??// 啟動(dòng)后關(guān)閉板上LED

??Serial.begin(9600);?????????????? // 啟動(dòng)串口通訊

??

??//設(shè)置ESP8266工作模式為無線終端模式

??WiFi.mode(WIFI_STA);

??

??// 連接WiFi

??connectWifi();

??

??// 設(shè)置MQTT服務(wù)器和端口號

??mqttClient.setServer(mqttServer, 1883);

??// 設(shè)置MQTT訂閱回調(diào)函數(shù)

??mqttClient.setCallback(receiveCallback);

?

??// 連接MQTT服務(wù)器

??connectMQTTserver();

}

?

void loop() {

??if (mqttClient.connected()) { // 如果開發(fā)板成功連接服務(wù)器

????mqttClient.loop();??????????// 處理信息以及心跳

??} else {??????????????????????// 如果開發(fā)板未能成功連接服務(wù)器

????connectMQTTserver();????????// 則嘗試連接服務(wù)器

??}

}

?

// 連接MQTT服務(wù)器并訂閱信息

void connectMQTTserver(){

??// 根據(jù)ESP8266的MAC地址生成客戶端ID(避免與其它ESP8266的客戶端ID重名)

??String clientId = "esp8266-" + WiFi.macAddress();

?

??// 連接MQTT服務(wù)器

??if (mqttClient.connect(clientId.c_str())) {

????Serial.println("MQTT Server Connected.");

????Serial.println("Server Address:");

????Serial.println(mqttServer);

????Serial.println("ClientId: ");

????Serial.println(clientId);

????subscribeTopic(); // 訂閱指定主題

??} else {

????Serial.print("MQTT Server Connect Failed. Client State:");

????Serial.println(mqttClient.state());

????delay(5000);

??}??

}

?

// 收到信息后的回調(diào)函數(shù)

void receiveCallback(char* topic, byte* payload, unsigned int length) {

??Serial.print("Message Received [");

??Serial.print(topic);

??Serial.print("] ");

??for (int i = 0; i < length; i++) {

????Serial.print((char)payload[i]);

??}

??Serial.println("");

??Serial.print("Message Length(Bytes) ");

??Serial.println(length);

?

??if ((char)payload[0] == '1') {???? // 如果收到的信息以“1”為開始

????digitalWrite(BUILTIN_LED, LOW);??// 則點(diǎn)亮LED。

????Serial.println("LED ON");

??} else {??????????????????????????

????digitalWrite(BUILTIN_LED, HIGH); // 否則熄滅LED。

????Serial.println("LED OFF");

??}

}

?

// 訂閱指定主題

void subscribeTopic(){

?

??// 建立訂閱主題。主題名稱以Taichi-Maker-Sub為前綴,后面添加設(shè)備的MAC地址。

??// 這么做是為確保不同設(shè)備使用同一個(gè)MQTT服務(wù)器測試消息訂閱時(shí),所訂閱的主題名稱不同

??String topicString = "Taichi-Maker-Sub-" + WiFi.macAddress();

??char subTopic[topicString.length() + 1];??

??strcpy(subTopic, topicString.c_str());

??

??// 通過串口監(jiān)視器輸出是否成功訂閱主題以及訂閱的主題名稱

??if(mqttClient.subscribe(subTopic)){

????Serial.println("Subscrib Topic:");

????Serial.println(subTopic);

??} else {

????Serial.print("Subscribe Fail...");

??}??

}

?

// ESP8266連接wifi

void connectWifi(){

?

??WiFi.begin(ssid, password);

??//等待WiFi連接,成功連接后輸出成功信息

??while (WiFi.status() != WL_CONNECTED) {

????delay(1000);

????Serial.print(".");

??}

??Serial.println("");

??Serial.println("WiFi Connected!");??

??Serial.println("");

}

訂閱多個(gè)主題

/**********************************************************************

項(xiàng)目名稱/Project??????????: 零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)

程序名稱/Program name???? : subscribe_multitopic_ranye_url

團(tuán)隊(duì)/Team????????????????: 太極創(chuàng)客團(tuán)隊(duì) / Taichi-Maker (www.taichi-maker.com)

作者/Author??????????????: CYNO朔

日期/Date(YYYYMMDD)???? : 20201125

程序目的/Purpose??????????:

本程序旨在演示如何使用PubSubClient庫使用ESP8266向MQTT服務(wù)器訂閱多個(gè)主題

-----------------------------------------------------------------------

本示例程序?yàn)樘珮O創(chuàng)客團(tuán)隊(duì)制作的《零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)》中示例程序。

該教程為對物聯(lián)網(wǎng)開發(fā)感興趣的朋友所設(shè)計(jì)和制作。如需了解更多該教程的信息,請參考以下網(wǎng)頁:

http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/

***********************************************************************/

#include <ESP8266WiFi.h>

#include <PubSubClient.h>

?

// 設(shè)置wifi接入信息(請根據(jù)您的WiFi信息進(jìn)行修改)

const char* ssid = "taichimaker";

const char* password = "12345678";

const char* mqttServer = "test.ranye-iot.net";

// 如以上MQTT服務(wù)器無法正常連接,請前往以下頁面尋找解決方案

// http://www.taichi-maker.com/public-mqtt-broker/

?

WiFiClient wifiClient;

PubSubClient mqttClient(wifiClient);

?

void setup() {

??pinMode(LED_BUILTIN, OUTPUT);???? // 設(shè)置板上LED引腳為輸出模式

??digitalWrite(LED_BUILTIN, HIGH);??// 啟動(dòng)后關(guān)閉板上LED

??Serial.begin(9600);?????????????? // 啟動(dòng)串口通訊

??

??//設(shè)置ESP8266工作模式為無線終端模式

??WiFi.mode(WIFI_STA);

??

??// 連接WiFi

??connectWifi();

??

??// 設(shè)置MQTT服務(wù)器和端口號

??mqttClient.setServer(mqttServer, 1883);

??mqttClient.setCallback(receiveCallback);

?

??// 連接MQTT服務(wù)器

??connectMQTTserver();

}

?

void loop() {

??if (mqttClient.connected()) { // 如果開發(fā)板成功連接服務(wù)器

????mqttClient.loop();??????????// 處理信息以及心跳

??} else {??????????????????????// 如果開發(fā)板未能成功連接服務(wù)器

????connectMQTTserver();????????// 則嘗試連接服務(wù)器

??}

}

?

// 連接MQTT服務(wù)器并訂閱信息

void connectMQTTserver(){

??// 根據(jù)ESP8266的MAC地址生成客戶端ID(避免與其它ESP8266的客戶端ID重名)

??String clientId = "esp8266-" + WiFi.macAddress();

?

??// 連接MQTT服務(wù)器

??if (mqttClient.connect(clientId.c_str())) {

????Serial.println("MQTT Server Connected.");

????Serial.println("Server Address:");

????Serial.println(mqttServer);

????Serial.println("ClientId: ");

????Serial.println(clientId);

????subscribeTopic(); // 訂閱指定主題

??} else {

????Serial.print("MQTT Server Connect Failed. Client State:");

????Serial.println(mqttClient.state());

????delay(5000);

??}??

}

?

// 收到信息后的回調(diào)函數(shù)

void receiveCallback(char* topic, byte* payload, unsigned int length) {

??Serial.print("Message Received [");

??Serial.print(topic);

??Serial.print("] ");

??for (int i = 0; i < length; i++) {

????Serial.print((char)payload[i]);

??}

??Serial.println("");

??Serial.print("Message Length(Bytes) ");

??Serial.println(length);

?

??if ((char)payload[0] == '1') {???? // 如果收到的信息以“1”為開始

????digitalWrite(BUILTIN_LED, LOW);??// 則點(diǎn)亮LED。

??} else {??????????????????????????

????digitalWrite(BUILTIN_LED, HIGH); // 否則熄滅LED。

??}

}

?

// 訂閱指定主題

void subscribeTopic(){

?

??// 建立訂閱主題1。主題名稱以Taichi-Maker-Sub為前綴,后面添加設(shè)備的MAC地址。

??// 這么做是為確保不同設(shè)備使用同一個(gè)MQTT服務(wù)器測試消息訂閱時(shí),所訂閱的主題名稱不同

??String topicString = "Taichi-Maker-Sub-" + WiFi.macAddress();

??char subTopic[topicString.length() + 1];??

??strcpy(subTopic, topicString.c_str());

??

??// 建立訂閱主題2

??String topicString2 = "Taichi-Maker-Sub2-" + WiFi.macAddress();

??char subTopic2[topicString2.length() + 1];??

??strcpy(subTopic2, topicString2.c_str());

??

??// 通過串口監(jiān)視器輸出是否成功訂閱主題1以及訂閱的主題1名稱

??if(mqttClient.subscribe(subTopic)){

????Serial.println("Subscrib Topic:");

????Serial.println(subTopic);

??} else {

????Serial.print("Subscribe Fail...");

??}??

?

??// 通過串口監(jiān)視器輸出是否成功訂閱主題2以及訂閱的主題2名稱

??if(mqttClient.subscribe(subTopic2)){

????Serial.println("Subscrib Topic:");

????Serial.println(subTopic2);

??} else {

????Serial.print("Subscribe Fail...");

??}????

}

?

// ESP8266連接wifi

void connectWifi(){

?

??WiFi.begin(ssid, password);

??//等待WiFi連接,成功連接后輸出成功信息

??while (WiFi.status() != WL_CONNECTED) {

????delay(1000);

????Serial.print(".");

??}

??Serial.println("");

??Serial.println("WiFi Connected!");??

??Serial.println("");

}

使用單級通配符訂閱主題

/**********************************************************************

項(xiàng)目名稱/Project??????????: 零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)

程序名稱/Program name???? : subscribe_single_level_wildcard_ranye

團(tuán)隊(duì)/Team????????????????: 太極創(chuàng)客團(tuán)隊(duì) / Taichi-Maker (www.taichi-maker.com)

作者/Author??????????????: CYNO朔

日期/Date(YYYYMMDD)???? : 20200813

程序目的/Purpose??????????:

本程序旨在演示ESP8266訂閱信息時(shí)的單極通配符+應(yīng)用。

?

-----------------------------------------------------------------------

本示例程序?yàn)樘珮O創(chuàng)客團(tuán)隊(duì)制作的《零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)》中示例程序。

該教程為對物聯(lián)網(wǎng)開發(fā)感興趣的朋友所設(shè)計(jì)和制作。如需了解更多該教程的信息,請參考以下網(wǎng)頁:

http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/

***********************************************************************/

#include <ESP8266WiFi.h>

#include <PubSubClient.h>

?

// 設(shè)置wifi接入信息(請根據(jù)您的WiFi信息進(jìn)行修改)

const char* ssid = "taichi-maker";

const char* password = "12345678";

const char* mqttServer = "test.ranye-iot.net";

// 如以上MQTT服務(wù)器無法正常連接,請前往以下頁面尋找解決方案

// http://www.taichi-maker.com/public-mqtt-broker/

?

WiFiClient wifiClient;

PubSubClient mqttClient(wifiClient);

?

void setup() {

??pinMode(LED_BUILTIN, OUTPUT);???? // 設(shè)置板上LED引腳為輸出模式

??digitalWrite(LED_BUILTIN, HIGH);??// 啟動(dòng)后關(guān)閉板上LED

??Serial.begin(9600);?????????????? // 啟動(dòng)串口通訊

??

??//設(shè)置ESP8266工作模式為無線終端模式

??WiFi.mode(WIFI_STA);

??

??// 連接WiFi

??connectWifi();

??

??// 設(shè)置MQTT服務(wù)器和端口號

??mqttClient.setServer(mqttServer, 1883);

??mqttClient.setCallback(receiveCallback);

?

??// 連接MQTT服務(wù)器

??connectMQTTserver();

}

?

void loop() {

??if (mqttClient.connected()) { // 如果開發(fā)板成功連接服務(wù)器

????mqttClient.loop();??????????// 處理信息以及心跳

??} else {??????????????????????// 如果開發(fā)板未能成功連接服務(wù)器

????connectMQTTserver();????????// 則嘗試連接服務(wù)器

??}

}

?

// 連接MQTT服務(wù)器并訂閱信息

void connectMQTTserver(){

??// 根據(jù)ESP8266的MAC地址生成客戶端ID(避免與其它ESP8266的客戶端ID重名)

??String clientId = "esp8266-" + WiFi.macAddress();

?

??// 連接MQTT服務(wù)器

??if (mqttClient.connect(clientId.c_str())) {

????Serial.println("MQTT Server Connected.");

????Serial.println("Server Address:");

????Serial.println(mqttServer);

????Serial.println("ClientId: ");

????Serial.println(clientId);

????subscribeTopic(); // 訂閱指定主題

??} else {

????Serial.print("MQTT Server Connect Failed. Client State:");

????Serial.println(mqttClient.state());

????delay(5000);

??}??

}

?

// 收到信息后的回調(diào)函數(shù)

void receiveCallback(char* topic, byte* payload, unsigned int length) {

??Serial.print("Message Received [");

??Serial.print(topic);

??Serial.print("] ");

??for (int i = 0; i < length; i++) {

????Serial.print((char)payload[i]);

??}

??Serial.println("");

??Serial.print("Message Length(Bytes) ");

??Serial.println(length);

?

??if ((char)payload[0] == '1') {???? // 如果收到的信息以“1”為開始

????digitalWrite(BUILTIN_LED, LOW);??// 則點(diǎn)亮LED。

??} else {??????????????????????????

????digitalWrite(BUILTIN_LED, HIGH); // 否則熄滅LED。

??}

}

?

// 訂閱指定主題

void subscribeTopic(){

?

??// 建立訂閱主題。主題名稱以Taichi-Maker-Sub為前綴,后面添加設(shè)備的MAC地址。

??// 這么做是為確保不同設(shè)備使用同一個(gè)MQTT服務(wù)器測試消息訂閱時(shí),所訂閱的主題名稱不同

??String topicString = "Taichi-Maker-Sub-" + WiFi.macAddress()+"/+/data";

??char subTopic[topicString.length() + 1];??

??strcpy(subTopic, topicString.c_str());

??

??// 通過串口監(jiān)視器輸出是否成功訂閱主題以及訂閱的主題名稱

??if(mqttClient.subscribe(subTopic)){

????Serial.println("Subscrib Topic:");

????Serial.println(subTopic);

??} else {

????Serial.print("Subscribe Fail...");

??}??

}

?

// ESP8266連接wifi

void connectWifi(){

?

??WiFi.begin(ssid, password);

??//等待WiFi連接,成功連接后輸出成功信息

??while (WiFi.status() != WL_CONNECTED) {

????delay(1000);

????Serial.print(".");

??}

??Serial.println("");

??Serial.println("WiFi Connected!");??

??Serial.println("");

}

使用多級通配符訂閱主題

/**********************************************************************

項(xiàng)目名稱/Project??????????: 零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)

程序名稱/Program name???? : subscribe_multi_level_wildcard_ranye

團(tuán)隊(duì)/Team????????????????: 太極創(chuàng)客團(tuán)隊(duì) / Taichi-Maker (www.taichi-maker.com)

作者/Author??????????????: CYNO朔

日期/Date(YYYYMMDD)???? : 20200813

程序目的/Purpose??????????:

本程序旨在演示ESP8266訂閱信息時(shí)的多極通配符#應(yīng)用。

-----------------------------------------------------------------------

本示例程序?yàn)樘珮O創(chuàng)客團(tuán)隊(duì)制作的《零基礎(chǔ)入門學(xué)用物聯(lián)網(wǎng)》中示例程序。

該教程為對物聯(lián)網(wǎng)開發(fā)感興趣的朋友所設(shè)計(jì)和制作。如需了解更多該教程的信息,請參考以下網(wǎng)頁:

http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/

***********************************************************************/

#include <ESP8266WiFi.h>

#include <PubSubClient.h>

?

// 設(shè)置wifi接入信息(請根據(jù)您的WiFi信息進(jìn)行修改)

const char* ssid = "taichi-maker";

const char* password = "12345678";

const char* mqttServer = "test.ranye-iot.net";

// 如以上MQTT服務(wù)器無法正常連接,請前往以下頁面尋找解決方案

// http://www.taichi-maker.com/public-mqtt-broker/

?

WiFiClient wifiClient;

PubSubClient mqttClient(wifiClient);

?

void setup() {

??pinMode(LED_BUILTIN, OUTPUT);???? // 設(shè)置板上LED引腳為輸出模式

??digitalWrite(LED_BUILTIN, HIGH);??// 啟動(dòng)后關(guān)閉板上LED

??Serial.begin(9600);?????????????? // 啟動(dòng)串口通訊

??

??//設(shè)置ESP8266工作模式為無線終端模式

??WiFi.mode(WIFI_STA);

??

??// 連接WiFi

??connectWifi();

??

??// 設(shè)置MQTT服務(wù)器和端口號

??mqttClient.setServer(mqttServer, 1883);

??mqttClient.setCallback(receiveCallback);

?

??// 連接MQTT服務(wù)器

??connectMQTTserver();

}

?

void loop() {

??if (mqttClient.connected()) { // 如果開發(fā)板成功連接服務(wù)器

????mqttClient.loop();??????????// 處理信息以及心跳

??} else {??????????????????????// 如果開發(fā)板未能成功連接服務(wù)器

????connectMQTTserver();????????// 則嘗試連接服務(wù)器

??}

}

?

// 連接MQTT服務(wù)器并訂閱信息

void connectMQTTserver(){

??// 根據(jù)ESP8266的MAC地址生成客戶端ID(避免與其它ESP8266的客戶端ID重名)

??String clientId = "esp8266-" + WiFi.macAddress();

?

??// 連接MQTT服務(wù)器

??if (mqttClient.connect(clientId.c_str())) {

????Serial.println("MQTT Server Connected.");

????Serial.println("Server Address:");

????Serial.println(mqttServer);

????Serial.println("ClientId: ");

????Serial.println(clientId);

????subscribeTopic(); // 訂閱指定主題

??} else {

????Serial.print("MQTT Server Connect Failed. Client State:");

????Serial.println(mqttClient.state());

????delay(5000);

??}??

}

?

// 收到信息后的回調(diào)函數(shù)

void receiveCallback(char* topic, byte* payload, unsigned int length) {

??Serial.print("Message Received [");

??Serial.print(topic);

??Serial.print("] ");

??for (int i = 0; i < length; i++) {

????Serial.print((char)payload[i]);

??}

??Serial.println("");

??Serial.print("Message Length(Bytes) ");

??Serial.println(length);

?

??if ((char)payload[0] == '1') {???? // 如果收到的信息以“1”為開始

????digitalWrite(BUILTIN_LED, LOW);??// 則點(diǎn)亮LED。

??} else {??????????????????????????

????digitalWrite(BUILTIN_LED, HIGH); // 否則熄滅LED。

??}

}

?

// 訂閱指定主題

void subscribeTopic(){

?

??// 建立訂閱主題。主題名稱以Taichi-Maker-Sub為前綴,后面添加設(shè)備的MAC地址。

??// 這么做是為確保不同設(shè)備使用同一個(gè)MQTT服務(wù)器測試消息訂閱時(shí),所訂閱的主題名稱不同

??String topicString = "Taichi-Maker-Sub-" + WiFi.macAddress()+"/sensor/#";

??char subTopic[topicString.length() + 1];??

??strcpy(subTopic, topicString.c_str());

??

??// 通過串口監(jiān)視器輸出是否成功訂閱主題以及訂閱的主題名稱

??if(mqttClient.subscribe(subTopic)){

????Serial.println("Subscrib Topic:");

????Serial.println(subTopic);

??} else {

????Serial.print("Subscribe Fail...");

??}??

}

?

// ESP8266連接wifi

void connectWifi(){

?

??WiFi.begin(ssid, password);

??//等待WiFi連接,成功連接后輸出成功信息

??while (WiFi.status() != WL_CONNECTED) {

????delay(1000);

????Serial.print(".");

??}

??Serial.println("");

??Serial.println("WiFi Connected!");??

??Serial.println("");

}

假如您也喜歡太極創(chuàng)客,希望您將本文“分享”給更多的人,讓更多朋友認(rèn)識(shí)我們。您的每一份點(diǎn)贊與投幣,都是對我們最溫暖的鼓勵(lì)與支持。

本文編輯制作:CYNO朔 (https://space.bilibili.com/415252426/)

【零基礎(chǔ)學(xué)物聯(lián)網(wǎng)】MQTT篇 1-8 ESP8266訂閱MQTT主題的評論 (共 條)

分享到微博請遵守國家法律
静乐县| 喀喇| 兰坪| 伊宁县| 远安县| 涞水县| 兴化市| 海原县| 昭觉县| 南投市| 宁安市| 平和县| 衡东县| 博爱县| 卫辉市| 峨眉山市| 永清县| 安阳县| 枣强县| 康乐县| 合水县| 昂仁县| 新安县| 青铜峡市| 巴林右旗| 霸州市| 新泰市| 肥乡县| 陆丰市| 江西省| 青铜峡市| 七台河市| 恩施市| 民丰县| 扬中市| 临城县| 盈江县| 保山市| 乌鲁木齐市| 遂溪县| 麻江县|