4

DS18B202つの温度センサーに接続されたArduinoがあります。私は非常に(非常に)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 serialfrom 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 
4

2 に答える 2

2

次のいずれかを実行できます。

from serial import Serial

s = Serial(...)

また:

import serial

s = serial.Serial(...)

1 つ選択します。

于 2012-08-24T23:22:04.300 に答える
2

を使用する必要がありますimport serialserialはモジュールの名前であり、 name の属性は含まれていませんserial

http://pyserial.sourceforge.net/shortintro.html#opening-serial-ports

于 2012-08-24T23:02:28.353 に答える