On 2018-03-14 00:23, Dhileepan Kumar wrote:
#!/usr/bin/python
import serial
import MySQLdb
while True:
#establish connection to MySQL. You'll have to change this for your database.
dbConn = MySQLdb.connect("localhost","root","1234","ifet") or die ("could
not connect to database")
#open a cursor to the database
cursor = dbConn.cursor()
device = 'com3' #this will have to be changed to the serial port you
are using
arduino = serial.Serial(device, 9600)
try:
data = arduino.readline() #read the data from the arduino
if not data.strip():
continue
pieces = data.split("\t") #split the data by the tab
#Here we are going to insert the data into the Database
try:
cursor.execute("INSERT INTO answer1 (voltage,current) VALUES
(%s,%s)", (pieces[0],pieces[1]))
dbConn.commit() #commit the insert
cursor.close() #close the cursor
except MySQLdb.IntegrityError:
print "failed to insert data"
finally:
cursor.close() #close just incase it failed
except:
print "Failed to get data from Arduino!"
................................................................................
it is my program.if do not use while true loop successfully run but can't get a
continues data from arduino so i have decide to using while loop but if using
while loop shows some error
(project) C:\Users\DHILEEPAN\project\project>python mysql.py
Traceback (most recent call last):
File "mysql.py", line 13, in <module>
arduino = serial.Serial(device, 9600)
File
"C:\Users\DHILEEPAN\Envs\project\lib\site-packages\serial\serialwin32.py", line
31, in __init_
super(Serial, self).__init__(*args, **kwargs)
File
"C:\Users\DHILEEPAN\Envs\project\lib\site-packages\serial\serialutil.py", line
240, in __init_
self.open()
File
"C:\Users\DHILEEPAN\Envs\project\lib\site-packages\serial\serialwin32.py", line
62, in open
raise SerialException("could not open port {!r}:
{!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'com3': WindowsError(5,
'Access is denied.')
please any one fix this
It cannot open the port the second time because the port is already open
from the first time.
You have put too much inside the loop. It should be more like:
# open database and serial
while True:
# do read and insertion
# close database and serial
Even better, use the 'with' statement, which is neater:
with <open database>:
with <open serial>:
while True:
# do read and insertion
--
https://mail.python.org/mailman/listinfo/python-list