我有一个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()
我目前无法编译。我发现此错误的大部分结果都告诉我添加from serial import serial
,但在这种情况下它没有用。
错误。
$ 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'
另外,每条评论。创建了名为something.py
的新文件,无论使用import serial
还是from serial import serial
,仍然会收到相同的错误。
$ 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
答案 0 :(得分:2)
您需要使用import serial
。 serial
是模块的名称,不包含名称为serial
的属性。
http://pyserial.sourceforge.net/shortintro.html#opening-serial-ports
答案 1 :(得分:2)
你可以这样做:
from serial import Serial
s = Serial(...)
OR:
import serial
s = serial.Serial(...)
选择一个。