小程序入門 遠程控制 MQTT物聯網協議 publish 和訂閱subscribe onenet 阿里雲 百度雲 基於GPRS模塊和STM32

本文基本公開了如何移植MQTT物聯網協議到STM32平臺上,並結合GPRS模塊(SIM800C/SIM900A/SIM868等)實現publish和訂閱topic從onenet,阿里雲,百度雲等。

一、代碼適用範圍

1. 設備端:

  • 主控芯片爲STM32F103C8T6,但是兼容所有STM32芯片中。
  • 通信模塊爲sim800c或sim868,代碼兼容,868多個GPS 使能代碼和獲取GPS信息及解析代碼。
  • 主控與通信模塊連接4個引腳:GPS使能,GPRS使能,及串口3 TXD和RXD。串口3用於通信。

2. 服務器:

  • 支持onenet
  • 支持aliyun
  • 支持baiduyun

3. 手機端:

  • 小程序:目前已開發onenet,獲取數據流,數據點,topic訂閱與發佈,控制終端等功能。aliyun,baiduyun待開發。
  • app:用開源標準的mqtt 協議 apk。

二、MQTT 物聯網協議使用

1. MQTT協議簡介:

     MQTT(消息隊列遙測傳輸) 是基於 TCP/IP 協議棧而構建的,已成爲 IoT 通信的標準。

     初識 MQTT  IBM簡介的很好:我就不多分享了,有興趣的可以參考鏈接:

     https://www.ibm.com/developerworks/cn/iot/iot-mqtt-why-good-for-iot/index.html

2. 分享一個很好用的mqtt庫:Paho

     設備端的mqtt協議移植,就是參考https://github.com/eclipse/paho.mqtt.embedded-c移植而來。

     整體移植過程:

     下載src源碼:https://github.com/eclipse/paho.mqtt.embedded-c/tree/master/MQTTPacket/src

      

      添加到keil工程中。

      添加onenet、aliyun、baiduyun等調試接口,以及sim模塊,at指令控制部分,調試代碼。

      調試過程過於複雜且消耗時間,這裏就不詳細說明了。

      這裏貼一張移植後的目錄結構圖:

      

      測試aliyun,baiduyun,onenet驗證皆OK。

      設備端驗證代碼publish 穩定,測試三天未掉線。

3. 以onenet爲例:

      設備端連接onenet:只需修改:如下部分即可。分別對應onenet服務器端的設備id,產品id和api-key。

      

4. 小程序demo

      源程序實現如下功能:

  • 添加設備
  • 二維碼識別獲取設備id
  • 顯示繼電器狀態
  • 獲取設備數據流
  • 發送topic
  • 遠程控制繼電器

小程序需要修改部分:

  • appid:修改爲自己申請小程序後,生成的appid。

       

  • master-apikey,改爲onenet創建產品後生成的master-apikey即可。

        

        然後就可以編譯測試。

        如有疑問,歡迎評論或私聊詳聊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章