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