pythonプログラムに問題があります。arduinoからRaspberryPi sqliteデータベースにデータ(温度)を取得するプログラムを作成しましたが、line4(import serial)でエラーが発生します。 )「ImportError:シリアルという名前のモジュールはありません」と言っています。python3を使用していて、すでにpyserialを更新しています。pythonで新しいので、いくつかの間違いを犯しています...
#!/ussr/bin/python
# -*- coding: utf-8 -*-
import serial
import datetime
import sqlite3 as lite
import sys
import time
ser = serial.Serial('/dev/ttyACM1', 9600, timeout=1)
ser.open()
count = 0
con = lite.connect('realtime_data.db')
try:
while 1:
indata = ser.readline()
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
count = count + 1
print (count)
with con:
cur = con.cursor()
cur.execute("INSERT INTO Temperatures VALUES( ?, ?, ? )", (count, current_time, indata))
if count > 100:
cur.execute("DELETE FROM Temperatures")
count = 0
# time.sleep(3) #upload to database every 5 seconds
except KeyboardInterrupt:
ser.close()
Python 3? でpipをインストールする方法。その後、pip
を使用してpyserial
互換をインストールできます。次のように、python-3.xを使用します。
$ Sudo pip3 install pyserial
これが doc python-3.xと互換性のあるソースコードを使用してpyserial
をインストールする方法についてです
PS:Arch Linuxのように、プラットフォームにpython-2.xとpython-3.xの両方がある場合、いくつかのパッケージをインストールするときは、どちらのpythonパッケージのバージョンは互換性があり、pip2
またはpip3
を使用してこれらのパッケージを取得してインストールする必要があります。
保存したファイル名がモジュール名と同じ場合は、エラーが発生します。たとえば、ファイル名が「serial.py」で、インポートシリアルがある場合、最初に、宣言したメソッドをserial.pyでチェックインします。