前言
本篇文章將會(huì)帶大家在ubantu和ARM中使用MQTT。
源碼地址已經(jīng)告訴大家了,大家可以去git上面將源碼下載下來。
一、在ubantu中使用MQTT
1.安裝cmake
使用sudo apt-get install cmake g++命令來安裝cmake。
2.編譯MQTT庫
使用./build.sh命令執(zhí)行腳本編譯MQTT的庫:
在build/bin目錄下生成了4個(gè)可執(zhí)行程序:
使用這些可執(zhí)行程序可以連接到阿里云,百度云,emqx,onenet等云平臺(tái)。
使用./build/bin/emqx執(zhí)行程序可以連接到emqx。
二、在ARM中使用MQTT
創(chuàng)建文件arm-linux.cmake
在文件中添加:
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER arm-buildroot-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-buildroot-linux-gnueabihf-g++)
修改build.sh:
cmake .. "-DCMAKE_TOOLCHAIN_FILE=../arm-linux.cmake"
執(zhí)行:
./build.sh
這樣我們就生成了對(duì)應(yīng)ARM平臺(tái)上的可執(zhí)行文件了:
使用file命令可以查看到文件的格式
三、使用自己的服務(wù)器
安裝mosquitto軟件:
這個(gè)軟件安裝是非常簡單的,只需要點(diǎn)擊下一步即可安裝成功。
修改配置文件設(shè)置端口號(hào):
啟動(dòng)MQTT服務(wù)器:
.\mosquitto.exe -c mosquitto.conf -v
四、ARM板 服務(wù)器 MQTTX三者關(guān)系
ARM Linux可以發(fā)布消息給服務(wù)器(例如:傳感器的數(shù)據(jù)),也可以訂閱消息(控制LED,風(fēng)扇等模塊的開啟關(guān)閉)
MQTTX也可以作為一個(gè)客戶端,訂閱來自開發(fā)板上的傳感器數(shù)據(jù),也可以發(fā)布控制模塊開關(guān)的消息。
五、MQTTX的使用
首先需要安裝MQTTX,安裝步驟很簡單,一直點(diǎn)擊下一步即可,這里就不做介紹。
做完下面的配置后點(diǎn)擊連接即可連接上服務(wù)器:
在這里我們可以添加訂閱和發(fā)布一些消息:
這里可以添加訂閱的主題和服務(wù)的質(zhì)量:
這里也可以選擇發(fā)布消息的格式和服務(wù)的質(zhì)量:
六、ARM使用MQTT的方法
1.修改MQTT源碼
將端口號(hào)和IP地址進(jìn)行對(duì)應(yīng)的修改:
修改對(duì)應(yīng)的發(fā)布主題線程和訂閱主題:
修改完成后將源碼上傳到mqtt的源碼當(dāng)中:
執(zhí)行./build.sh命令重新編譯源碼并上傳到開發(fā)板:
這樣就可以運(yùn)行程序了。
2.使用庫
直接修改源碼的方式是非常方便,但是這是在別人的代碼寫來寫程序的,我們需要編寫出屬于自己的程序,那么這個(gè)時(shí)候我們可以使用庫的方式來完成。
使用./make-libmqttclient.sh編譯出庫文件:
這里生成了這個(gè)庫文件我們把庫文件放到ubantu中的庫文件目錄和板子上的lib目錄下。
同時(shí)還需要將頭文件放入ubantu中的頭文件目錄下:
使用下面的命令查看頭文件和庫文件的目錄:
echo 'main(){}'| arm-buildroot-linux-gnueabihf-gcc -E -v -
將include 和 lib文件都放入對(duì)應(yīng)的目錄即可。
將庫文件拷貝到板子:
那么這樣的話就可以脫離MQTT源碼進(jìn)行編譯和執(zhí)行了。
3.把MQTT源碼加入到自己的工程
當(dāng)我們需要對(duì)程序進(jìn)行調(diào)試的時(shí)候上面的兩種方法都不是很適合的,那么這個(gè)時(shí)候就需要將MQTT的源碼加入自己的工程當(dāng)中,這樣就方便我們進(jìn)行代碼的調(diào)試。
那么這里的話我就使用Makefile來進(jìn)行項(xiàng)目代碼的管理(不熟悉Makefile的同學(xué)可以去看百問網(wǎng)的視頻或者看我之前寫的文章)
從mqtt源碼中留下一些有用的代碼,刪除不需要的代碼:
在makefile中需要指定對(duì)應(yīng)的庫和頭文件:
完成移植后就可以將整個(gè)工程上傳到虛擬機(jī)進(jìn)行編譯了。
最后編譯成功就可以上傳到開發(fā)板進(jìn)行測(cè)試了。文章來源:http://www.zghlxwxcb.cn/news/detail-694252.html
總結(jié)
這篇文章就講解到這里,那么下篇文章我們將講解如何添加各種傳感器模塊。文章來源地址http://www.zghlxwxcb.cn/news/detail-694252.html
到了這里,關(guān)于Linux MQTT智能家居(ubantu和ARM中使用MQTT)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!