阿里云國際站經銷商,主營阿里云,騰訊云,華為云,亞馬遜aws,谷歌云gcp,微軟云az,免費開戶,代充值優惠大,聯系客服飛機@jkkddd
使用前必讀
本文操作步驟以普通用戶權限為例。如果您在操作過程中涉及到管理員權限才能執行的操作,可嘗試使用sudo命令執行。
前提條件
已在物聯網平臺控制臺,對應實例下,創建產品和設備,并獲取MQTT接入域名和設備證書信息(ProductKey、DeviceName和DeviceSecret)。具體操作,請參見:
查看實例終端節點。
創建產品。
創建設備。
準備開發環境
本示例使用Ubuntu 16.04-LTS作為開發環境。執行以下命令構建開發環境。
下載C語言Paho MQTT庫
執行以下命令,克隆C語言版本的Paho MQTT庫。
Paho嵌入式C工程提供了以下三個子項目:
MQTTPacket:提供MQTT數據包的序列化與反序列化,以及部分輔助函數。
MQTTClient:封裝MQTTPacket生成的高級別C++客戶端程序。
MQTTClient-C:封裝MQTTPacket生成的高級別C客戶端程序。
samples目錄提供FreeRTOS和Linux兩個例程,分別支持FreeRTOS和Linux系統。
src目錄提供MQTTClient的代碼實現能力,以及用于移植到FreeRTOS、cc3200和Linux的網絡驅動。
了解Paho MQTT的更多API細節,可以查看MQTTClient.h。
接入物聯網平臺
單擊打開aiot_mqtt_sign.c,復制阿里云提供的計算MQTT連接參數所需的源碼,然后粘貼保存為本地的aiot_mqtt_sign.c文件。
aiot_mqtt_sign.c文件定義了函數aiotMqttSign(),函數說明如下:
原型:
int aiotMqttSign(const char *productKey, const char *deviceName, const char *deviceSecret,
char clientId[150], char username[65], char password[65]);功能:
用于計算設備接入物聯網平臺的MQTT連接參數username、password和clientid。
添加實現設備接入物聯網平臺的程序文件。
您需編寫程序調用aiot_mqtt_sign.c中的aiotMqttSign()函數計算MQTT連接參數,實現接入物聯網平臺和通信。
開發說明和示例代碼如下:
調用aiotMqttSign()接口,生成連接MQTT服務端的三個建連參數clientId、username和password。
接入物聯網平臺。
需配置以下內容:
調用NetworkInit和NetworkConnect建立TCP連接。
調用MQTTClientInit初始化MQTT客戶端。
配置MQTT建連參數結構體MQTTPacket_connectData。
發布消息。
調用MQTTPublish()接口,向指定的自定義Topic發布自定義格式消息。
通信Topic介紹,請參見什么是Topic。
示例代碼
使用Demo代碼程序接入物聯網平臺。
下載Demo包,并解壓縮。
在aiot_c_demo.c中,將設備信息修改為您的設備信息。
替換以下代碼中EXAMPLE_PRODUCT_KEY、EXAMPLE_DEVICE_NAME和EXAMPLE_DEVICE_SECRET后的值為您的設備證書信息。
修改代碼char *host = EXAMPLE_PRODUCT_KEY".iot-as-mqtt.cn-shanghai.aliyuncs.com"中的值為對應接入域名。
公共實例和企業版實例接入域名的格式說明,請參見查看實例終端信息。
將aiot_mqtt_sign.c和已修改的aiot_c_demo.c文件放到Paho工程的目錄../paho.mqtt.embedded-c/MQTTClient-C/samples/linux中。
編譯工程,并運行程序。
有兩種方法可以編譯出可執行的程序:
使用CMake。
在/paho.mqtt.embedded-c/MQTTClient-C/samples/linux目錄下的CMakeLists.txt文件中,增加aiot_c_demo.c和aiot_mqtt_sign.c。
修改后的CMakeLists.txt文件內容如下。
使用build.sh。
打開/paho.mqtt.embedded-c/MQTTClient-C/samples/linux目錄下的build.sh文件。
將build.sh中的stdoutsub.c替換為aiot_mqtt_sign.c aiot_c_demo.c,-o stdoutsub替換為-o aiot_c_demo,然后保存build.sh。
修改完成后,在/paho.mqtt.embedded-c/MQTTClient-C/samples/linux目錄下,執行命令./build.sh,完成編譯。
完成編譯后,生成aiot_c_demo可執行文件。
執行命令./aiot_c_demo,運行程序。
相關查詢
溫馨提示:尊敬的[]站點管理員,將本頁鏈接加入您的網站友情鏈接,下次可以快速來到這里更新您的站點信息哦!每天更新您的[阿里云國際賬號注冊,阿里云國際站]站點信息,可以排到首頁最前端的位置,讓更多人看到您站點的信息哦。
