小程序入門 MQTT物聯網協議 publish 和訂閱subscribe onenet 阿里雲 百度雲 基於GPRS模塊(SIM800C/SIM900A/SIM868等)和STM32主控芯片


本文基本公開了如何移植MQTT物聯網協議到STM32平台上,並結合GPRS模塊(SIM800C/SIM900A/SIM868等)實現publish和訂閱topic從onenet,阿里雲,百度雲等。如果不想移植,可以在如下淘寶鏈接中直接購買源代碼,全部源碼+資料300,全部源碼+資料包售后500元。

物聯網開發板裸板只要168,套餐可自己搭配。

淘寶鏈接:https://item.taobao.com/item.htm?spm=a2126o.11854294.0.0.120c4831Ic87Zt&id=598106907055

配套物聯網開發板鏈接:https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.29e71debNLqzWg&id=583890254748

當然,也承接定制開發,價格跟需求難度及開發周期相關,具體可小窗博主或淘寶咨詢。

一、代碼適用范圍

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即可。

        

        然后就可以編譯測試。

三、實現效果

1. 設備端:

  上電,開機設備初始化,聯網,tft屏顯示二維碼。

2. 服務器端:

  onenet/aliyun/baiduyun起到數據接收與轉發作用。

3. 手機端:

  打開小程序,顯示添加設備頁面。

  

  點擊添加設備后,會出現二維碼掃描頁面,掃描設備上的二維碼后,即可出現控制頁面:

  

  點擊按鈕即可控制設備端的繼電器開關,從而控制led或電機或風扇等的開關。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM