【NUC980开发板DIY项目大挑战】串口服务器
本文由RT-Thread論壇用戶@SINE_9692原創(chuàng)發(fā)布:https://club.rt-thread.org/ask/article/2476aa2ab99aee50.html
一,項(xiàng)目描述
有一些設(shè)備。不具備聯(lián)網(wǎng)功能。對(duì)外進(jìn)油一個(gè)串口。為了讓設(shè)備能夠接入互聯(lián)網(wǎng),串口服務(wù)器是一個(gè)不錯(cuò)的選擇。也有稱之為dtu的。nuc980支持網(wǎng)口,并且支持10個(gè)串口。是做串口服務(wù)器的絕佳選擇。計(jì)劃參考市場(chǎng)上的一些dtu,做出一個(gè)功能類似的串口服務(wù)器。
二,DIY過(guò)程
1.工程創(chuàng)建
開發(fā)工具使用rtthread stdio(2.2.3),基于開發(fā)板,選擇NK-980IOt。新安裝的需要在RT-Thread SDK管理器中安裝板卡的bsp
安裝完成后選擇基于開發(fā)板創(chuàng)建工程。如下圖所示
點(diǎn)擊完成。即可創(chuàng)建。
2. 工程設(shè)置以及所需軟件包添加
- 雙擊RT_Thread Setting。并點(diǎn)擊下圖中藍(lán)圈位置
- 在軟件包中找到webnet軟件包進(jìn)行如下設(shè)置
因?yàn)槲覀兊膆tml頁(yè)面將放在sd卡上。所以Server root directory需要設(shè)置為
/mnt/sd1/webnet - 點(diǎn)擊硬件如下圖所示
板子引出了串口1,串口4和串口5.這里我們把串口1和串口4使能。使用串口1和串口4來(lái)作為串口服務(wù)器的多串口。致辭設(shè)置完畢。保存。編譯。 - 在內(nèi)存卡根目錄下創(chuàng)建webnet目錄。在webnet目錄下創(chuàng)建admin,upload,download三個(gè)目錄。并把index.html的文件放在webnet目錄下。如下圖所示
3.模塊說(shuō)明
- 代碼地址
串口服務(wù)器 - 串口模塊
負(fù)責(zé)接收串口數(shù)據(jù),并轉(zhuǎn)發(fā)給與自己綁定的socket - 配置模塊
基于cjson編寫。保存串口與網(wǎng)絡(luò)的相關(guān)參數(shù) - 網(wǎng)絡(luò)模塊
負(fù)責(zé)接收網(wǎng)絡(luò)數(shù)據(jù),并轉(zhuǎn)發(fā)給與自己綁定的串口 - web模塊
提供一個(gè)可視化的配置前端
4.中間遇到問題以及解決辦法
- thread pri status sp stack size max used left tick error
這個(gè)問題是在編寫tcp server過(guò)程中遇到到。主要是由于select進(jìn)行操作時(shí),socket數(shù)值超過(guò)了設(shè)置的select最大的socket嵌套字導(dǎo)致的。只要注意在select函數(shù)第一個(gè)參數(shù)比所有需要監(jiān)聽的scoket都大就行了。
- 文件操作失敗
文件存放在sd卡上,這個(gè)問題是main函數(shù)執(zhí)行時(shí)。sd卡還沒掛載導(dǎo)致的。在main函數(shù)前面增加一個(gè)500ms的延時(shí)就可以了??赡芨桃残小]試。
5.前端頁(yè)面操作說(shuō)明
因?yàn)槲业那岸怂讲桓?。所以做的很low,只用到了超鏈接,文本框和按鈕。操作很簡(jiǎn)單??匆谎劬兔靼?。貼圖如下。
三,心得體會(huì)
首先感謝rtthread這次活動(dòng)。這次在做這個(gè)小東西的過(guò)程中,深刻體驗(yàn)到的rtthread的便利。好多軟件包開箱即用,大大縮短了開發(fā)時(shí)間。這次這個(gè)小項(xiàng)目做的也很倉(cāng)促,可能有很多不太完善的地方,后面看大家的反饋在完善吧。
四,拍個(gè)小視頻
9daa05b276a7e6af781d135d5fc76ff7.mp4
總結(jié)
以上是生活随笔為你收集整理的【NUC980开发板DIY项目大挑战】串口服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电信运营商移动互联网发展分析
- 下一篇: Unity webGl 鼠标手指触屏控制