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

三,心得体会

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

四,拍个小视频

9daa05b276a7e6af781d135d5fc76ff7.mp4

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

  1. NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号

    NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号 1. EC20模块连接 2. Linux内核配置 3. 交叉编译PPP 4. 拨号脚本 5. 进行拨号 1. EC20模块连接 在 ...

  2. proteus仿真micropython_[MicroPython]TurniBit开发板DIY自动窗帘模拟系统

    一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48) 一个 ü步进电机驱动板(ULN2003APG) 一块 ü光敏传感器 一个 üTurnipBit ...

  3. [MicroPython]TurniBit开发板DIY自动窗帘模拟系统

    一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48) 一个 ü步进电机驱动板(ULN2003APG) 一块 ü光敏传感器 一个 üTurnipBit ...

  4. MicroPython开发实例之TurniBit开发板DIY自动窗帘模拟系统

    2019独角兽企业重金招聘Python工程师标准>>> 一.准备工作     üTurnipBit 开发板 一块     ü下载数据线 一条     ü微型步进电机(28BYJ-48 ...

  5. 超便利!教你用ESP32开发板DIY掌上网页服务器!

    本文作者:默.默是铁熊的创客好友,经常与铁熊分享创意项目. 前段时间有个老师对我说:每到开学季,学校就要印刷学生的录取名单并进行张贴,为此学校每年都要耗费大量的人力物力.学校里面教学活动很多,传统的通 ...

  6. JAVA窗帘_利用TurniBit开发板DIY一套自动窗帘模拟系统

    一.准备工作TurnipBit 开发板 一块 下载数据线 一条 微型步进电机(28BYJ-48) 一个 步进电机驱动板(ULN2003APG) 一块 光敏传感器 一个 TurnipBit 扩展板 一块 ...

  7. micropython控制板_MicroPython开发实例之TurniBit开发板DIY自动窗帘模拟系统

    一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48) 一个 ü步进电机驱动板(ULN2003APG) 一块 ü光敏传感器 一个 üTurnipBit ...

  8. micropython stm32f407 以太网_[MicroPython]STM32F407开发板DIY声光控开关

    1.实验目的 1. 学习在PC机系统中扩展简单I/O 接口的方法. 2. 进一步学习编制数据输出程序的设计方法. 3. 学习光敏模块的工作原理. 4. 学习声音的工作原理. 5. 学习F40 7Mic ...

  9. [MicroPython]STM32F407开发板DIY声光控开关

    2019独角兽企业重金招聘Python工程师标准>>> 1.实验目的 1. 学习在PC机系统中扩展简单I/O 接口的方法.     2. 进一步学习编制数据输出程序的设计方法.   ...

  10. 在类树莓派的ARM开发板上组建大数据集群

    2019独角兽企业重金招聘Python工程师标准>>> 先上效果: 这是由三块pine64+开发板搭建的mini集群,网上有用树莓派搭建Hadoop文章,不过由于树莓派的性能实在太差 ...

最新文章

  1. 批处理,%~d0 cd %~dp0 代表什么意思
  2. Redis运行流程源码解析--转载
  3. 【项目管理】采购管理
  4. CF735D-Taxes【数学,数论】
  5. java实现redis客户端_windows下java swt实现操作redis的客户端工具
  6. exc导入mysql phpcms_PHP如何将EXCEL导入MYSQL,急!!!急!!哪位大师能帮帮忙啊,给个详细代码...
  7. Learn For Flutter
  8. 如何成为一名推荐系统工程师
  9. 搜狗站长平台没有sitemap的接口无法提交sitemap?该怎么提交?【已解决】
  10. 如何申请微信公众号及使用操作方法说明
  11. 证明:在N维欧式空间中,两两互成钝角的非零向量不多于N+1个
  12. 计算机输入法如何显示在桌面快捷方式,电脑桌面输入法图标不见了怎么办
  13. UG8.5 正式版安装方法
  14. php mysqli操作数据库
  15. C语言中free函数如何确定释放的空间大小
  16. Java培训出身,今获阿里Android岗offer,大专学渣的“登天”之路!
  17. 简讯:明道云近期荣获的三项荣誉
  18. 物联网普及率目前第一是韩国
  19. 解析全国省市区Json数据
  20. 高级商务办公软件应用【8】

热门文章

  1. js拆分百分数_计算百分比Javascript
  2. 服务器防火墙如何开放端口?常见的服务器端口有哪些?
  3. 没有CCTV-5也不用慌的世界杯观战指南
  4. c语言中元音字母对应的的值,c语言输入一个字符串,统计这个字符串的元音字母...
  5. 投票问题 python
  6. 已知直线方程,计算直线对应的向量
  7. 有限元:什么是有限元分析法
  8. pid倒立摆matlab,基于MATLAB的直线一级倒立摆的PID控制研究
  9. React表格内容换行并用省略号显示
  10. python汉语叫什么意思_Python是什么-百度经验