那曲檬骨新材料有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>STM32 + SIM800C 實現MQTT協議資料下載

STM32 + SIM800C 實現MQTT協議資料下載

2021-04-19 | pdf | 264.15KB | 次下載 | 5積分

資料介紹

一、本教程中說明的內容 先說說本文化的適用范圍吧: 一、使用的芯片STM32F103C8T6,但是并沒有任何與平臺相關的代碼,應該在所有STM32芯片中都是可以用的。 二、本文使用的是SIM800C模塊,驅動是用C 實現的,基于ARM mbed平臺寫的。但是從原理上來講,C和C 差別不大,本文的代碼經過修改也可以直接用于其他平臺的使用。 三、本文數據傳輸使用的是“透傳模式”,對于所有的透傳模塊,本文都有很大的參考意義。 二、MQTT的使用 首先,推薦一個MQTT的庫:Paho,這個庫支持非常多的平臺,當然也包括了嵌入式平臺:GitHub – paho.mqtt.embedded-c。將該庫中的MQTTPacket文件夾下載下來,MQTTPacket文件夾下面主要有三個文件夾,我們使用的文件主要集中在src文件夾和samples文件夾中。 src文件夾中存放著MQTT核心功能的代碼,而samples中存放著三個例子:pub00sub1、pub0sub1_nc、qos0pub和網絡驅動(transport.c和transport.h)。 由于三個驅動都有一個main函數,所以無法同時存在,本文中只使用了pub0sub,所以將此文件夾內容精減到只有pub0sub1.c、transport.c、transport.h三個文件。 當然,在實現使用時可能會改變目錄結構,使目錄結構更加清楚,可以根據自己的喜好來進行更改,并不影響使用。 將transport.h的內容精減到以下內容: 主要的工作有: 1、為了方便表示,刪除了版權信息,有實際使用時請保留。 2、沒有使用pub0sub1_nc這個例子,所以將transport_getdatanb方法去除。 3、透傳模塊中使用不到socket,所以將與socket相關的參數去掉。 這些方法實現的主要功能是: 1、transport_open的作用是初始化模塊連網的信息、transport_close作用是關閉鏈接。 2、transport_sendPacketBuffer用于發送數據、transport_getdata用于接收數據。 然后用transport.c來實現transport.h中聲明的4個函數。 三、在ARM mbed中使用MQTT 首先說句題外話,自我感覺mbed是一個非常不錯的平臺,很大程度上提高了代碼的可重用性。但也有一個問題,就是其支持是以開發板為單位的,所以并不是對每一種芯片的支持都很好。 首先介紹一個例子,HelloMQTT – a mercurial repository | mbed。但這個例子其中有很多不完善的地方,而且該例子使用的網絡驅動也不是GPRS模塊。 如果要用不同的連網方式,那么就寫一個驅動,驅動中至少要包含以下兩個方法: 這兩個方法會在MQTTClient中自動調用,timeout表示毫秒。返回值為讀或寫的字節數。 對此,我寫了驅動程序: MQTTGRPSEthernet.h #pragma once #if !defined(MQTTGPRSETHERNET_H) #define MQTTGPRSETHERNET_H #define DEFAULT_GPRS_TIMEOUT 6000000 //6s #define SERIAL_BUFFER_SIZE 256 #include "mbed.h" class MQTTGPRSEthernet { public: MQTTGPRSEthernet(PinName tx, PinName rx, int baudrate = 115200); ~MQTTGPRSEthernet(); bool initNet(const char* apn, const char* userName = "", const char* passWord = "", int timeout = DEFAULT_GPRS_TIMEOUT, bool isReconnect = false); bool connect(char* hostname, int port, int timeout = DEFAULT_GPRS_TIMEOUT); int read_line(char* buffer, int timeout = DEFAULT_GPRS_TIMEOUT); int read(unsigned char* buffer, int len, int timeout = DEFAULT_GPRS_TIMEOUT); int write(unsigned char* buffer, int len, int timeout = DEFAULT_GPRS_TIMEOUT); bool disconnect(); private: bool initNet(); Serial eth; bool command(const char* cmd, const char* ack = ""); bool connected = false; bool initialized = false; char* localIP; const char *_apn; const char *_passWord; const char *_userName; }; #endif MQTTGRPSEthernet.cpp 主程序 lient的yield函數中用調用messageArrived函數,之前的示例給出的是100,可能是由于間太短的緣故,總是調用不了回調函數,所以我將其改的非常大,便于調試。實際使用時可以使用1000。 四、總結 其實paho embeded-c用起來還是挺方便的,但是代碼的重要性不高,所以移植起來往往會讓人無從下手。但深放研究就會發現其實使用起來是非常簡單的。 轉載自TsonTec:測量解決方案提供者 (mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統的設計與實現
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
木星百家乐官网的玩法技巧和规则| 优博开户| 全讯网历史回顾| 路劲太阳城样板间| 威尼斯人娱乐场送1688元礼金领取lrm| 如何赢百家乐的玩法技巧和规则| 赌博百家乐玩法| 机器百家乐作弊| 天津水果机定位器| 大发888娱乐登录| 澳盈| 真人轮盘| 新闻| 百家乐官网视频百家乐官网| 克拉克百家乐官网下载| 百家乐官网投注外挂| 百家乐官网赌场破解| 最佳场百家乐官网的玩法技巧和规则 | 百家乐官网游戏平台架设| 澳门百家乐官网技巧皇冠网| sz新全讯网新112| 六合彩官方| 百家乐官网专打和局| 买百家乐官网程序| 澳门百家乐赢钱| 百家乐特殊技巧| 大发888完整客户端| 吉首市| 澳门百家乐官网娱乐城送体验金| 百家乐官网娱乐网代理佣金| 做生意的风水朝向| 百家乐现金网最好的系统哪里有可靠吗| 百盛百家乐官网的玩法技巧和规则| 大发888dafabet| 利高娱乐| 现金百家乐官网技巧| 百家乐的必赢方法| 乐天百家乐的玩法技巧和规则| 香港六合彩开| 皇冠百家乐官网代理网址| 百家乐重要心态|