Nomar记录一段历史
通过串行连接访问 3D 打印机的温度传感器数据

我想通过串行连接访问 3D 打印机的床和喷嘴温度传感器数据。有人可以指导我正确的方向吗?

谢谢!

编辑:来自打印机的响应:

 Connecting to printer... Connection response from printer: 6R7�P)��h>L�JO� � ��V�\��`�r��T �� SK�<ʪ� �>�Vw^$���|���R n�I, o�!����H>�  mx�}M# �LYԣPh���^@ ��rp � TP�j�~1�� V6 6 � f� 6�k#���&�H".��k K2���ek�(��&��^K�k2����Ul�(� ���~N�ʈ*.�>Z��k#d$�����(� �� ��(� ��� v�� ��� Asking for temperatures (M105)... Temperature response from printer: ^CTraceback (most recent call last): File "printer_files/serialaccess.py", line 15, in <module> response = ser_printer.readline() File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 446, in read ready,_,_ = select.select([self.fd],[],[], self._timeout) KeyboardInterrupt

代码向打印机询问温度值后,终端上不再有输出。我等了一会儿,然后用 control+c 杀死了它。很明显打印机正在响应连接响应,但我不确定它为什么不返回温度值。再次,非常感谢您的帮助,Demetris!

这正在转向偏离主题的领域。这不再是关于 3D 打印机的工具和应用程序,而是关于为其编程和开发应用程序。

1个回答

假设您的打印机接受传统的 G 代码风格,可以通过串行端口发送M105来检索挤出机和床温。打印机将响应ok T:XXX.XB:XXX.X ,其中T是喷嘴温度, B是床温。

您可以在RepRap wiki 中阅读有关特定 G 代码的更多信息。

编辑:我正在编辑答案以包含使用简单的 python 脚本连接到打印机的信息。

以下脚本首先打开与打印机的串行连接。对于 Marlin 固件,当您第一次连接打印机时,需要一些时间来初始化和响应。这就是为什么在读取响应之前需要一些延迟。打印响应后,脚本发送M105命令,等待 100ms,然后读取串行缓冲区的响应并将其打印在屏幕上。

注意/dev/ttyUSB0是串行端口名称,在您的情况下它可能会有所不同。另外250000是连接的波特率; 250000是我的打印机的默认值,因此您需要将其替换为您的打印机使用的波特率。

 import serial import time ser_printer = serial.Serial('/dev/ttyUSB0', 250000) print "Connecting to printer..." time.sleep(30) # Allow time for response buffer_bytes = ser_printer.inWaiting() response = ser_printer.read(buffer_bytes) # Read data in the buffer print "Connection response from printer:" print response print "Asking for temperatures (M105)..." ser_printer.write('M105\n') time.sleep(0.1) # Allow time for response print "Temperature response from printer:" response = ser_printer.readline() print response
感谢您的及时回复!我在 RepRap wiki 页面中阅读了有关固件命令的信息。我不太确定如何与打印机连接以发送这些命令。我是这个领域的初学者。我真的很感谢你的帮助。
我编辑了答案以包含一些连接打印机的基本信息。
谢谢德米特里斯!我使用了你提供的那段代码。我正在用我收到的回复编辑问题。
我想访问 3D 打印机的床温。我能够使用串行连接获取温度。我现在面临的问题是,一旦我发出命令,我就会得到温度值,但是打印作业会停止。有办法解决吗?我想在打印作业进行时获取温度值。
这似乎是一个不同的问题。请创建一个新问题,详细描述您的问题。这将帮助您更有效地回答您的问题。

随机文章