当前位置: 首页 > 知识库问答 >
问题:

Python从arduino读取串行输出

慕嘉茂
2023-03-14

我有一个Arduino与2个DS18B20温度传感器连接。我对python非常(非常)陌生。我正在寻找一种读取串行输入并将其解析到sqlite数据库的方法,但这已经超出了我的能力。为什么在尝试将串行端口定义为变量时出错?

首先<代码>sys.version

2.7.1 (r271:86832, Jul 31 2011, 19:30:53) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)]

我的当前,只是读取串行连接程序的输入。

from serial import serial
import time


# open serial port
ser = serial.Serial('/dev/tty.usbmodem621',9600,timeout=2) 
ser.open()


while True:
    print('dev 0' + ser.read())     
    pass

ser.close()

我目前无法编译它。我发现这个错误的大多数结果告诉添加从串行导入串行,但在这种情况下,它不起作用。

错误。

$ python ser.py
Traceback (most recent call last):
  File "ser.py", line 1, in <module>
    from serial import serial
  File "/Users/frankwiebenga/serial.py", line 8, in <module>
AttributeError: 'module' object has no attribute 'Serial'

另外,如果我只使用import serial,我会得到相同的错误

$ python ser.py
Traceback (most recent call last):
  File "ser.py", line 1, in <module>
    import serial
  File "/Users/frankwiebenga/serial.py", line 8, in <module>
AttributeError: 'module' object has no attribute 'Serial'

另外,根据评论。创建了名为的新文件。py并且无论使用导入串行还是从串行导入串行中使用,仍然会得到相同的错误。

$ python something.py 
Traceback (most recent call last):
  File "something.py", line 1, in <module>
    from serial import serial
ImportError: No module named serial

当运行bash脚本时,我得到一个有效的输出,因此我知道它不是Arduino代码。

输出:

Requesting temperatures...DONE
Device 0: 25.62
Device 1: 25.75
Requesting temperatures...DONE
Device 0: 25.62
Device 1: 25.81

猛击:

while true  # loop forever
do
   inputline="" # clear input

   # Loop until we get a valid reading from AVR
   until inputline=$(echo $inputline | grep -e "^temp: ")
   do
      inputline=$(head -n 1 < /dev/tty.usbmodem621)
   done
   echo "$inputline"
done 

共有2个答案

颛孙和悌
2023-03-14

你也可以这样做:

from serial import Serial

s = Serial(...)

或:

import serial

s = serial.Serial(...)

选择一个。

郜杰
2023-03-14

您需要使用import serialserial是模块的名称,它不包含名为serial的属性。

http://pyserial.sourceforge.net/shortintro.html#opening-串行端口

 类似资料:
  • 我试图在一些python代码和arduino代码之间来回“乒乓”信息。我想定期向arduino代码发送两个设定点(例如,在分钟内),在arduino上读取它们 现在,我无法获得可靠的信息来来回跳转。我在搜索中没有找到任何与此类似的内容,我试图修改的所有内容都不起作用。最接近我的是这个(实际上它并没有在发送和接收之间来回切换): python 阿杜伊诺: 我最终得到的只是重复的相同值(不是实际发送的

  • 问题内容: 我正在尝试在某些python代码和arduino代码之间来回“乒乓”信息。我想定期向arduino代码发送两个设定值(例如在分钟上),在arduino上读取它们并更新变量,然后定期(例如在30秒内)将状态信息从arduino发送回python。最终,python将从mySQL数据库发送信息并从中提取信息(后来的开发)。 现在,我无法获得可靠往返的信息。我没有在搜索中找到与此相近的任何内

  • 问题内容: 我有一个Java程序,必须读取Arduino发送的信息。我从这里获取了Java代码。现在,我不太了解它是如何工作的,但是我尝试对其进行修改,并且得到了以下信息: 我创建一个对象串行COM口,我需要在主程序,然后我使用和当我需要它。 效果很好,Arduino获取数据并将其显示在LCD显示屏中。问题是。程序运行时,它会不断从串行端口读取数据(大约每40毫秒一次),但这并不意味着Arduin

  • 我试图做一些非常简单的东西,按钮计数器,有一个按钮在我的HTML-php当我点击它我发送数据'按'到我的arduino和它使led闪烁,到目前为止,还不错,但然后我想发送信号,当我在arduino中按下按钮,我想让我的php读取字符串"点击次数: N"的串行端口,N是从arduio的推送计数。 这里的问题是,在arduino串行我可以看到他字符串,一切正常,但在PHP我做

  • 我做了一个python程序,从串行端口读取gps数据。GPS冰球流NMEA数据语句连续插入USB时。我的程序打开端口,然后尝试读取数据,解析它,然后将其与从Arduino提取的其他数据一起写入文本文件。 我遇到的问题是,当我第一次运行程序时,有时它无法读取数据。我放入了一些Try/Exception捕获,发现以某种方式无法从GPS串行端口读取数据 如果我点击Cntrl-C几次,这似乎可以解决它遇到

  • 我想做的是从我用Arudino制作的转速表电路中读取连续的数据流,然后将其输入处理;我已经使用下面的代码成功完成了: 我不确定如何处理数据,以便每当检测到某个值时,处理中都会发生事件。 编辑:有人建议关闭,所以我的问题是调用是一个阻塞调用,这意味着中的指令指针将保持在。指针将调用和,但永远不会到达启动串行端口的线路 建议的解决方案是将这些行移动到的顶部,并将作为的最后一行。我尝试了这个(我下面的代