搜索
bottom↓
回复: 59

分享一个Web版的串口助手

  [复制链接]

出0入25汤圆

发表于 2018-2-3 12:54:14 | 显示全部楼层 |阅读模式
本帖最后由 XIVN1987 于 2018-2-3 14:49 编辑

之前分享过一个PyQt版的串口助手:分享Python实现的串口助手,可显示波形、有源码!!

跟帖中有坛友说想要个Web版的,,正好周末没事儿,所以就做了个简单的Demo




只需要安装Python3.6、pyserial,双击main.py,然后在浏览器中输入 http://localhost:8080/ 即可看到界面

还可以在树莓派上运行这个程序,然后在笔记本浏览器里就可以控制树莓派的串口了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入25汤圆

 楼主| 发表于 2018-2-7 23:38:52 | 显示全部楼层

之前上传的程序只在Windows上跑通了,,在NanoPi上跑了下发现不少问题,修改后终于可以用了,,效果如下:


在NanoPi上运行的方法在main.py最下面的注释中有详细说明,如下:

只需要将下面两行替换上面两行,,并如说明中说到的把sers的值修改了即可

修改好的程序:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入93汤圆

发表于 2018-2-3 13:00:04 | 显示全部楼层
树莓派上运行这个程序,手机浏览器控制树莓派的串口也可以吧?

出0入25汤圆

 楼主| 发表于 2018-2-3 13:02:06 | 显示全部楼层
tim 发表于 2018-2-3 13:00
树莓派上运行这个程序,手机浏览器控制树莓派的串口也可以吧?


可以啊,只要是浏览器就可以打开这个页面

如果树莓派有public IP,那只要有互联网任何地方都可以访问!!

出10入0汤圆

发表于 2018-2-3 13:39:56 | 显示全部楼层
C:\WebSER>main.py
Traceback (most recent call last):
  File "C:\WebSER\main.py", line 14, in <module>
    from serial import Serial
ImportError: No module named serial

python 是2.6不行吗?

出0入25汤圆

 楼主| 发表于 2018-2-3 13:46:33 来自手机 | 显示全部楼层
casterbn 发表于 2018-2-3 13:39
C:\WebSER>main.py
Traceback (most recent call last):
  File "C:\WebSER\main.py", line 14, in

额,我上面说错了,,需要安装pyserial包,,另外必须python3,我用的3.6

出10入0汤圆

发表于 2018-2-3 21:30:49 | 显示全部楼层
XIVN1987 发表于 2018-2-3 13:46
额,我上面说错了,,需要安装pyserial包,,另外必须python3,我用的3.6

哦哦

出0入0汤圆

发表于 2018-2-3 22:54:27 来自手机 | 显示全部楼层
搞个服务器版本的,大家一起玩玩

出0入0汤圆

发表于 2018-2-3 23:49:58 | 显示全部楼层
python花样好多,好像很好玩的样子

出0入4汤圆

发表于 2018-2-4 03:12:26 来自手机 | 显示全部楼层
楼主厉害,能玩

出0入0汤圆

发表于 2018-2-4 08:52:56 来自手机 | 显示全部楼层
里面的http服务模块和flask好像,感觉更加好用哦!

出0入0汤圆

发表于 2018-2-4 10:08:42 | 显示全部楼层
本帖最后由 avr-arm 于 2018-2-4 10:18 编辑

666!就喜欢这种的,收藏了,可以放到板子中跑,再搞个内网穿透,就全世界各地“远程”调试了

出0入0汤圆

发表于 2018-2-4 10:08:44 | 显示全部楼层
这个有创意,很有意思

出0入0汤圆

发表于 2018-2-4 10:30:34 来自手机 | 显示全部楼层
webserial,风靡世界

出235入235汤圆

发表于 2018-2-4 10:31:35 | 显示全部楼层
这就是Python强大威力的地方啊

出0入0汤圆

发表于 2018-2-4 10:35:25 | 显示全部楼层
牛了,学习!

出0入0汤圆

发表于 2018-2-4 11:41:46 | 显示全部楼层
楼主牛,我要拿出我的树莓派来玩玩了

出0入0汤圆

发表于 2018-2-4 19:44:00 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2018-2-4 19:52:07 | 显示全部楼层
厉害厉害!

出0入0汤圆

发表于 2018-2-4 22:16:51 | 显示全部楼层
下载学习,谢谢

出0入0汤圆

发表于 2018-2-4 22:17:15 | 显示全部楼层
本帖最后由 bigrocks 于 2018-2-4 22:18 编辑

楼主你好,我在学习你的代码,我的系统版本是ubuntu16.04,python版本是3.6.2,安装过pyserial,运行python3 main.py的时候,报错,
Traceback (most recent call last):
  File "main.py", line 101, in <module>
    ser = SerialServer(websocket_server_port=9978)
  File "main.py", line 42, in __init__
    self.ws = WebsocketServer(port=websocket_server_port)
  File "/home/iten/WebSER/websocket_server.py", line 123, in __init__
    TCPServer.__init__(self, (host, port), WebSocketHandler)
  File "/usr/lib/python3.6/socketserver.py", line 453, in __init__
    self.server_bind()
  File "/usr/lib/python3.6/socketserver.py", line 467, in server_bind
    self.socket.bind(self.server_address)
请问是什么问题?

出0入25汤圆

 楼主| 发表于 2018-2-4 22:26:28 | 显示全部楼层
bigrocks 发表于 2018-2-4 22:17
楼主你好,我在学习你的代码,我的系统版本是ubuntu16.04,python版本是3.6.2,安装过pyserial,运行python ...


报错信息不全,看不出来,,

看着像是端口被占了,,或者你没权限操作端口??用管理员权限试试

出0入0汤圆

发表于 2018-2-4 22:39:59 | 显示全部楼层
XIVN1987 发表于 2018-2-4 22:26
报错信息不全,看不出来,,

看着像是端口被占了,,或者你没权限操作端口??用管理员权限试试 ...

我用的就是管理员权限,win7下也报错,
$ python main.py
Bottle v0.12.13 server starting up (using WSGIRefServer())...
Listening on http://localhost:8080/
Hit Ctrl-C to quit.

Exception in thread Thread-2:
Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\threading.py", line 916, in _bootstrap_inn                                                                                                                er
    self.run()
  File "C:\Program Files\Python36\lib\threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "main.py", line 84, in ser_receive
    if self.ser.is_open:
AttributeError: 'Serial' object has no attribute 'is_open'

Traceback (most recent call last):
  File "D:\WebSER\bottle.py", line 3123, in run
    server.run(app)
  File "D:\WebSER\bottle.py", line 2781, in run
    srv = make_server(self.host, self.port, app, server_cls, handler_cls)
  File "C:\Program Files\Python36\lib\wsgiref\simple_server.py", line 153, in ma                                                                                                                ke_server
    server = server_class((host, port), handler_class)
  File "C:\Program Files\Python36\lib\socketserver.py", line 453, in __init__
    self.server_bind()
  File "C:\Program Files\Python36\lib\wsgiref\simple_server.py", line 50, in ser                                                                                                                ver_bind
    HTTPServer.server_bind(self)
  File "C:\Program Files\Python36\lib\http\server.py", line 136, in server_bind
    socketserver.TCPServer.server_bind(self)
  File "C:\Program Files\Python36\lib\socketserver.py", line 467, in server_bind
    self.socket.bind(self.server_address)
OSError: [WinError 10013] 以一种访问权限不允许的方式做了访问套接字的尝试

但是我win7和ubuntu都是用的管理员账户
哎,哪里设置错误呢

出0入25汤圆

 楼主| 发表于 2018-2-4 22:51:22 | 显示全部楼层

AttributeError: 'Serial' object has no attribute 'is_open'

这个问题应该是pyserial版本的问题,2.x版本里没有is_open,只有isOpen(),,你可以更新下pyserial版本,,或者把is_open都改成isOpen()试试


OSError: [WinError 10013] 以一种访问权限不允许的方式做了访问套接字的尝试

这个查了下都说是端口被占了,你改下程序用的端口试试,比如改成8081,注意改了这个访问的网址也要改成http://localhost:8081/
另外也可能是你的防火墙把8080端口改禁止了,,或者python.exe不是以管理员权限运行的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-2-4 23:19:13 来自手机 | 显示全部楼层
楼主,请教一下,web后台是用啥写的,怎么调用python

出0入25汤圆

 楼主| 发表于 2018-2-4 23:26:45 | 显示全部楼层
ele-madman 发表于 2018-2-4 23:19
楼主,请教一下,web后台是用啥写的,怎么调用python


用的单文件的web framework bottle,,网址:http://www.bottlepy.org/docs/0.12/

出0入0汤圆

发表于 2018-2-6 08:59:42 | 显示全部楼层
楼主真能玩,把Python玩出花来了

出0入17汤圆

发表于 2018-2-6 09:02:50 | 显示全部楼层
厉害了,楼主~~~~~~~~~

出0入0汤圆

发表于 2018-2-6 11:59:07 | 显示全部楼层
一直想学python,,,没有使用的地方,学不起来怎么办

出0入25汤圆

 楼主| 发表于 2018-2-6 12:10:11 | 显示全部楼层
myxiaonia 发表于 2018-2-6 11:59
一直想学python,,,没有使用的地方,学不起来怎么办


没地方用肯定学不起来,不用强迫自己,,

比如我学嵌入式Linux也学不起来,因为没地方用,,买过十多个Linux的开发板、都是不到一个月就半价处理了,到如今都还没入门呢

不过作为单片机工程师的话,不可能一点儿上位机的需求都没有,,所以上位机编程肯定要学一个的,Python、C#、JAVA、NodeJS、VB、Delphi甚至Labview、Matlab都有坛友在用做上位机编程语言,,选一个自己喜欢用的即可。。

另外一般来说有一个用就够了,毕竟又不是专业开发上位机程序的,也没必要学好几个,,

出0入0汤圆

发表于 2018-2-6 12:32:46 | 显示全部楼层
一直想把常用的小工具,搞成web版放虚拟主机上,再也不怕那些个老软件系统不兼容

楼主有心了,谢谢

出0入0汤圆

发表于 2018-2-6 12:59:14 | 显示全部楼层
这个版本够方便

出0入0汤圆

发表于 2018-2-6 20:11:10 | 显示全部楼层
为什么我下载提示有危险,因此chrome已将其拦截? 只能点击  放弃 。

出0入0汤圆

发表于 2018-2-6 20:22:26 | 显示全部楼层
换ie可以了

出0入0汤圆

发表于 2018-2-8 08:01:43 | 显示全部楼层
厉害啊,向你学习。

出0入4汤圆

发表于 2018-2-8 08:38:09 | 显示全部楼层
为了把note3余热发挥,前一段时间玩了玩Qpython+kivy,蓝牙和USB串口都很好用。就是现在不知怎么在win下编译成APK。

出0入0汤圆

发表于 2018-2-8 09:03:55 | 显示全部楼层
本帖最后由 vipcff 于 2018-2-8 09:05 编辑

我在PYTHON2.7.14 +win7 下测试楼主最新的版本 运行也没有报错
目前没有串口硬件测试。
感谢楼主的无私奉献

出0入25汤圆

 楼主| 发表于 2018-2-8 09:36:21 | 显示全部楼层
gmyu 发表于 2018-2-8 08:38
为了把note3余热发挥,前一段时间玩了玩Qpython+kivy,蓝牙和USB串口都很好用。就是现在不知怎么在win下编 ...


以前也玩儿过QPython+Kivy,,

希望QPython越来越成熟吧,早日达到比较完善的程度

出0入0汤圆

发表于 2018-2-8 22:54:22 | 显示全部楼层
web前端一直不会写

出0入0汤圆

发表于 2018-2-10 10:10:57 | 显示全部楼层

非常好用,感谢楼主

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-2-10 10:14:59 | 显示全部楼层
运行一段时间会爆错

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入25汤圆

 楼主| 发表于 2018-2-10 10:45:02 | 显示全部楼层
ericdai 发表于 2018-2-10 10:14
运行一段时间会爆错


额,从这个报错上看不出问题的原因,,我晚上回去试试看能不能重现

出0入4汤圆

发表于 2018-7-14 08:42:34 | 显示全部楼层
LZ你前端用了bootstrap,element,这俩不都是UI框架吗,为什么要用两个?

出0入25汤圆

 楼主| 发表于 2018-7-14 08:53:00 来自手机 | 显示全部楼层
MAD_FISH 发表于 2018-7-14 08:42
LZ你前端用了bootstrap,element,这俩不都是UI框架吗,为什么要用两个?

因为我不会前端开发,,如果不用这种框架,自己用HTML、CSS和JavaScript做出类似效果的话,,难度要高很多、而且要学很多东西、很长时间才能做到

出0入4汤圆

发表于 2018-7-14 09:02:09 | 显示全部楼层
XIVN1987 发表于 2018-7-14 08:53
因为我不会前端开发,,如果不用这种框架,自己用HTML、CSS和JavaScript做出类似效果的话,,难度要高很 ...

不是我的意思是bootstrap和element这俩都是UI框架,重复了,应该用一个就可以

出0入25汤圆

 楼主| 发表于 2018-7-14 09:13:51 来自手机 | 显示全部楼层
MAD_FISH 发表于 2018-7-14 09:02
不是我的意思是bootstrap和element这俩都是UI框架,重复了,应该用一个就可以 ...

偶,抱歉,,理解错了。。我好像用两个UI库各写过一遍,,看哪个更简单些,,

出0入4汤圆

发表于 2018-7-14 09:44:26 | 显示全部楼层
XIVN1987 发表于 2018-7-14 09:13
偶,抱歉,,理解错了。。我好像用两个UI库各写过一遍,,看哪个更简单些,, ...

厉害,之前了解点html,js,但是看了你写的页面一点看不懂
搜了下,里面又是bootstrap有是element,vue啥的全是新知识,哎..

出0入25汤圆

 楼主| 发表于 2018-7-14 09:49:12 来自手机 | 显示全部楼层
MAD_FISH 发表于 2018-7-14 09:44
厉害,之前了解点html,js,但是看了你写的页面一点看不懂
搜了下,里面又是bootstrap有是element,vue啥 ...

建议你学下bootstrap,比自己用HTML、css、js做界面简单,,就学下概念、然后用的时候复制教程里的演示代码然后修改就行

出0入0汤圆

发表于 2018-7-17 17:28:45 | 显示全部楼层
推荐给一个客户 他们喜欢的不得了,坐在办公室 可以调机了,可以考虑做成系列产品

出0入4汤圆

发表于 2018-7-26 18:46:57 | 显示全部楼层
启动之后,怎么关掉呢

出0入4汤圆

发表于 2018-7-26 19:02:21 | 显示全部楼层
大概是我没跑起来win7 64位,Unable to create process using "c:\python36\python.exe main.py"

出0入4汤圆

发表于 2018-7-26 19:18:56 | 显示全部楼层
Access Error: 404 -- Not Found
Cannot locate document: /

出0入112汤圆

发表于 2018-7-26 22:15:25 | 显示全部楼层
现在,在学HTML5,
请教HTML5怎样控制串口等硬件?

出0入25汤圆

 楼主| 发表于 2018-7-26 22:36:07 | 显示全部楼层
xunke 发表于 2018-7-26 22:15
现在,在学HTML5,
请教HTML5怎样控制串口等硬件?


这个我也不知道

我不是通过HTML5控制串口的,我是用Python控制串口,网页与后台的Python代码交互间接控制串口!!

出0入0汤圆

发表于 2018-7-27 05:17:28 | 显示全部楼层
不错不错

出0入0汤圆

发表于 2018-8-22 13:54:03 | 显示全部楼层
我也做了一个wieb版的串口,与楼主不同的是基于esp8266的,esp8266建立web服务,通过websocket与模块串口通讯,来实现无线串口功能

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入25汤圆

 楼主| 发表于 2018-8-22 17:36:54 | 显示全部楼层
zljcat3721 发表于 2018-8-22 13:54
我也做了一个wieb版的串口,与楼主不同的是基于esp8266的,esp8266建立web服务,通过websocket与模块串口通 ...


功能齐全、外观美观,,很赞!!

你ESP8266用什么写的程序??C、Lua、MicroPython??

出0入0汤圆

发表于 2018-8-27 14:55:48 | 显示全部楼层
用的esp8266原生sdk+arduino混编+javascript+H5,所有代码保存在esp8266内,
但esp8266内存不够用,一个H5页面不能超过15K超过了会有各种题,只能用原生js代码写,不能用框架
没有楼主用PyQt写方便,有些功用js实现比较困难,如传输hex文件功还没有实现
楼主是通网页操控电脑的串口,我是通过网页操控esp8266的串口
esp8266搞成一个简单web服务器(类似于路由器的界面),实现B/S架构对esp8266的操控,无需客户端,只要一个支持主流浏览器设备,就可以操作esp8266的串口了,硬件上与操作客户端完全隔离

出0入0汤圆

发表于 2019-2-15 15:49:35 | 显示全部楼层
刚刚学会了pyqt的串口,就又来了web版的,想学习啊。。。请问是要怎么入门啊,从flask开始还是Django啊?

出0入25汤圆

 楼主| 发表于 2019-2-15 15:57:45 | 显示全部楼层
connor888 发表于 2019-2-15 15:49
刚刚学会了pyqt的串口,就又来了web版的,想学习啊。。。请问是要怎么入门啊,从flask开始还是Django啊? ...


如果只是顶楼这样简单的网页,,不要说flask、django,,就是单文件的bottle都够用了

做这种网页程序,,后端其实很简单,,麻烦的是前端,,尤其是对于我这种不懂前端的,,80%的时间都花费在前端了,,

前端建议用bootstrap或element-ui,,对不懂前端的比较友好,,
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 07:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表