RTT小师弟 · 2022年05月18日

【NUC980开发板DIY项目大挑战】串口服务器

本文由RT-Thread论坛用户@SINE_9692原创发布:https://club.rt-thread.org/as...

一,项目描述

有一些设备。不具备联网功能。对外进油一个串口。为了让设备能够接入互联网,串口服务器是一个不错的选择。也有称之为dtu的。nuc980支持网口,并且支持10个串口。是做串口服务器的绝佳选择。计划参考市场上的一些dtu,做出一个功能类似的串口服务器。

二,DIY过程

1.工程创建

开发工具使用rtthread stdio(2.2.3),基于开发板,选择NK-980IOt。新安装的需要在RT-Thread SDK管理器中安装板卡的bsp
捕获.PNG
安装完成后选择基于开发板创建工程。如下图所示
捕获1.PNG
点击完成。即可创建。

2. 工程设置以及所需软件包添加

  • 双击RT_Thread Setting。并点击下图中蓝圈位置
    捕获2.PNG
  • 在软件包中找到webnet软件包进行如下设置
    捕获3.PNG
    因为我们的html页面将放在sd卡上。所以Server root directory需要设置为
    /mnt/sd1/webnet
  • 点击硬件如下图所示
    捕获4.PNG
    板子引出了串口1,串口4和串口5.这里我们把串口1和串口4使能。使用串口1和串口4来作为串口服务器的多串口。致辞设置完毕。保存。编译。
  • 在内存卡根目录下创建webnet目录。在webnet目录下创建admin,upload,download三个目录。并把index.html的文件放在webnet目录下。如下图所示
    捕获7.PNG

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,只用到了超链接,文本框和按钮。操作很简单。看一眼就明白。贴图如下。
捕获5.PNG
捕获6.PNG

三,心得体会

首先感谢rtthread这次活动。这次在做这个小东西的过程中,深刻体验到的rtthread的便利。好多软件包开箱即用,大大缩短了开发时间。这次这个小项目做的也很仓促,可能有很多不太完善的地方,后面看大家的反馈在完善吧。

四,拍个小视频

9daa05b276a7e6af781d135d5fc76ff7.mp4

推荐阅读
关注数
8072
内容数
181
小而美的物联网操作系统,经过14年的累积发展,RT-Thread 已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过4亿台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息