分享一个Web版的串口助手
本帖最后由 XIVN1987 于 2018-2-3 14:49 编辑之前分享过一个PyQt版的串口助手:分享Python实现的串口助手,可显示波形、有源码!!
跟帖中有坛友说想要个Web版的,,正好周末没事儿,所以就做了个简单的Demo{:lol:}
只需要安装Python3.6、pyserial,双击main.py,然后在浏览器中输入 http://localhost:8080/ 即可看到界面
还可以在树莓派上运行这个程序,然后在笔记本浏览器里就可以控制树莓派的串口了{:lol:}
之前上传的程序只在Windows上跑通了,,在NanoPi上跑了下发现不少问题,修改后终于可以用了,,效果如下:
在NanoPi上运行的方法在main.py最下面的注释中有详细说明,如下:
只需要将下面两行替换上面两行,,并如说明中说到的把sers的值修改了即可
修改好的程序:
树莓派上运行这个程序,手机浏览器控制树莓派的串口也可以吧? tim 发表于 2018-2-3 13:00
树莓派上运行这个程序,手机浏览器控制树莓派的串口也可以吧?
可以啊,只要是浏览器就可以打开这个页面
如果树莓派有public IP,那只要有互联网任何地方都可以访问!! 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不行吗? 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 XIVN1987 发表于 2018-2-3 13:46
额,我上面说错了,,需要安装pyserial包,,另外必须python3,我用的3.6
哦哦{:smile:} 搞个服务器版本的,大家一起玩玩 python花样好多,好像很好玩的样子 楼主厉害,能玩 里面的http服务模块和flask好像,感觉更加好用哦! 本帖最后由 avr-arm 于 2018-2-4 10:18 编辑
666!就喜欢这种的,收藏了,可以放到板子中跑,再搞个内网穿透,就全世界各地“远程”调试了 这个有创意,很有意思 webserial,风靡世界 这就是Python强大威力的地方啊 牛了,学习! 楼主牛,我要拿出我的树莓派来玩玩了
感谢楼主分享 厉害厉害! 下载学习,谢谢 本帖最后由 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)
请问是什么问题? bigrocks 发表于 2018-2-4 22:17
楼主你好,我在学习你的代码,我的系统版本是ubuntu16.04,python版本是3.6.2,安装过pyserial,运行python ...
报错信息不全,看不出来,,
看着像是端口被占了,,或者你没权限操作端口??用管理员权限试试 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: 以一种访问权限不允许的方式做了访问套接字的尝试
但是我win7和ubuntu都是用的管理员账户
哎,哪里设置错误呢
AttributeError: 'Serial' object has no attribute 'is_open'
这个问题应该是pyserial版本的问题,2.x版本里没有is_open,只有isOpen(),,你可以更新下pyserial版本,,或者把is_open都改成isOpen()试试
OSError: 以一种访问权限不允许的方式做了访问套接字的尝试
这个查了下都说是端口被占了,你改下程序用的端口试试,比如改成8081,注意改了这个访问的网址也要改成http://localhost:8081/
另外也可能是你的防火墙把8080端口改禁止了,,或者python.exe不是以管理员权限运行的
楼主,请教一下,web后台是用啥写的,怎么调用python ele-madman 发表于 2018-2-4 23:19
楼主,请教一下,web后台是用啥写的,怎么调用python
用的单文件的web framework bottle,,网址:http://www.bottlepy.org/docs/0.12/ 楼主真能玩,把Python玩出花来了{:lol:} 厉害了,楼主~~~~~~~~~ 一直想学python,,,没有使用的地方,学不起来怎么办 myxiaonia 发表于 2018-2-6 11:59
一直想学python,,,没有使用的地方,学不起来怎么办
没地方用肯定学不起来,不用强迫自己,,
比如我学嵌入式Linux也学不起来,因为没地方用,,买过十多个Linux的开发板、都是不到一个月就半价处理了,到如今都还没入门呢{:dizzy:}
不过作为单片机工程师的话,不可能一点儿上位机的需求都没有,,所以上位机编程肯定要学一个的,Python、C#、JAVA、NodeJS、VB、Delphi甚至Labview、Matlab都有坛友在用做上位机编程语言,,选一个自己喜欢用的即可。。
另外一般来说有一个用就够了,毕竟又不是专业开发上位机程序的,也没必要学好几个,, 一直想把常用的小工具,搞成web版放虚拟主机上,再也不怕那些个老软件系统不兼容{:titter:}{:titter:}{:titter:}
楼主有心了,谢谢 这个版本够方便 为什么我下载提示有危险,因此chrome已将其拦截? 只能点击放弃 。 换ie可以了 厉害啊,向你学习。 为了把note3余热发挥,前一段时间玩了玩Qpython+kivy,蓝牙和USB串口都很好用。就是现在不知怎么在win下编译成APK。 本帖最后由 vipcff 于 2018-2-8 09:05 编辑
我在PYTHON2.7.14 +win7 下测试楼主最新的版本 运行也没有报错
目前没有串口硬件测试。
感谢楼主的无私奉献 gmyu 发表于 2018-2-8 08:38
为了把note3余热发挥,前一段时间玩了玩Qpython+kivy,蓝牙和USB串口都很好用。就是现在不知怎么在win下编 ...
以前也玩儿过QPython+Kivy,,
希望QPython越来越成熟吧,早日达到比较完善的程度
web前端一直不会写{:cry:}
非常好用,感谢楼主 运行一段时间会爆错 ericdai 发表于 2018-2-10 10:14
运行一段时间会爆错
额,从这个报错上看不出问题的原因,,我晚上回去试试看能不能重现{:handshake:} LZ你前端用了bootstrap,element,这俩不都是UI框架吗,为什么要用两个? MAD_FISH 发表于 2018-7-14 08:42
LZ你前端用了bootstrap,element,这俩不都是UI框架吗,为什么要用两个?
因为我不会前端开发,,如果不用这种框架,自己用HTML、CSS和JavaScript做出类似效果的话,,难度要高很多、而且要学很多东西、很长时间才能做到 XIVN1987 发表于 2018-7-14 08:53
因为我不会前端开发,,如果不用这种框架,自己用HTML、CSS和JavaScript做出类似效果的话,,难度要高很 ...
不是我的意思是bootstrap和element这俩都是UI框架,重复了,应该用一个就可以 MAD_FISH 发表于 2018-7-14 09:02
不是我的意思是bootstrap和element这俩都是UI框架,重复了,应该用一个就可以 ...
偶,抱歉,,理解错了。。我好像用两个UI库各写过一遍,,看哪个更简单些,, XIVN1987 发表于 2018-7-14 09:13
偶,抱歉,,理解错了。。我好像用两个UI库各写过一遍,,看哪个更简单些,, ...
厉害,之前了解点html,js,但是看了你写的页面一点看不懂
搜了下,里面又是bootstrap有是element,vue啥的全是新知识,哎.. MAD_FISH 发表于 2018-7-14 09:44
厉害,之前了解点html,js,但是看了你写的页面一点看不懂
搜了下,里面又是bootstrap有是element,vue啥 ...
建议你学下bootstrap,比自己用HTML、css、js做界面简单,,就学下概念、然后用的时候复制教程里的演示代码然后修改就行 推荐给一个客户 他们喜欢的不得了,坐在办公室 可以调机了,可以考虑做成系列产品 启动之后,怎么关掉呢 大概是我没跑起来win7 64位,Unable to create process using "c:\python36\python.exe main.py" Access Error: 404 -- Not Found
Cannot locate document: / 现在,在学HTML5,
请教HTML5怎样控制串口等硬件? xunke 发表于 2018-7-26 22:15
现在,在学HTML5,
请教HTML5怎样控制串口等硬件?
这个我也不知道
我不是通过HTML5控制串口的,我是用Python控制串口,网页与后台的Python代码交互间接控制串口!! 不错不错 我也做了一个wieb版的串口,与楼主不同的是基于esp8266的,esp8266建立web服务,通过websocket与模块串口通讯,来实现无线串口功能
zljcat3721 发表于 2018-8-22 13:54
我也做了一个wieb版的串口,与楼主不同的是基于esp8266的,esp8266建立web服务,通过websocket与模块串口通 ...
功能齐全、外观美观,,很赞!!
你ESP8266用什么写的程序??C、Lua、MicroPython?? 用的esp8266原生sdk+arduino混编+javascript+H5,所有代码保存在esp8266内,
但esp8266内存不够用,一个H5页面不能超过15K超过了会有各种题,只能用原生js代码写,不能用框架
没有楼主用PyQt写方便,有些功用js实现比较困难,如传输hex文件功还没有实现
楼主是通网页操控电脑的串口,我是通过网页操控esp8266的串口
esp8266搞成一个简单web服务器(类似于路由器的界面),实现B/S架构对esp8266的操控,无需客户端,只要一个支持主流浏览器设备,就可以操作esp8266的串口了,硬件上与操作客户端完全隔离
刚刚学会了pyqt的串口,就又来了web版的,想学习啊。。。请问是要怎么入门啊,从flask开始还是Django啊? connor888 发表于 2019-2-15 15:49
刚刚学会了pyqt的串口,就又来了web版的,想学习啊。。。请问是要怎么入门啊,从flask开始还是Django啊? ...
如果只是顶楼这样简单的网页,,不要说flask、django,,就是单文件的bottle都够用了
做这种网页程序,,后端其实很简单,,麻烦的是前端,,尤其是对于我这种不懂前端的,,80%的时间都花费在前端了,,
前端建议用bootstrap或element-ui,,对不懂前端的比较友好,,
页:
[1]