sending arduino data to python and use a parity check - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: sending arduino data to python and use a parity check (/thread-19636.html) |
sending arduino data to python and use a parity check - 10_Lucas - Jul-08-2019 hello, i will read sensordata in my arduino(automatic greenhouse), this data will be sent to my rpi. With a python code i will send this arduino data to my database (mysql) but i have a problem with the reading of the arduino data because this isn't send data around the 10 secondes. for this problem i will use parity check but i don't know how to use this. Can someone help me? thank you import serial import csv import mysql.connector from mysql.connector import Error import time import datetime as dt from time import sleep localtime = time.localtime(time.time()) ser = serial.Serial('/dev/ttyACM0', 9600) ser.flushInput() dat = ser.readline().decode() try: connection = mysql.connector.connect(host='localhost', database='Xterus_Hortus', user='root', password='Xterus') if connection.is_connected(): db_Info = connection.get_server_info() print("Connected to MySQL database... MySQL Server version on ",db_Info) while 1: dat = ser.readline().decode() localtime = time.asctime(time.localtime(time.time())) print(dat) print(localtime) a,b,c,d,e,f,g,h = dat.split(" ; ") print(a) print(b) sql_insert_query = """ INSERT INTO `alle sensoren`(`tijd`, `temperatuurbinnen`,`vochtigheidbinnen`,`temperatuurbuiten`,`vochtigheidbuiten`,`pHwaarde`,`vochtigheidbodem`, `hoeveelheidwater`,`co2`) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)""" cursor = connection.cursor() result = cursor.execute(sql_insert_query, (localtime,a,b,c,d,e,f,g,h,i)) connection.commit() print ("Record inserted successfully into python_users table") time.sleep(1000) except mysql.connector.Error as error : connection.rollback() #rollback if any exception occured print("Failed inserting record into python_users table {}".format(error)) RE: sending arduino data to python and use a parity check - jefsummers - Jul-08-2019 Pls post the errors you are getting. In Python, time.sleep(n) sleeps for n seconds. So, your sleep command will sleep for 1000 seconds, or about 17 minutes. Was this your intent? RE: sending arduino data to python and use a parity check - 10_Lucas - Jul-10-2019 the error is: finding 4 of the 9 variables. and the time.sleep is right, i will send around the 17 min the sensor data to the database RE: sending arduino data to python and use a parity check - 10_Lucas - Jul-29-2019 but the 4 can be a 8 or a 5. If the code is asking for the sensor data and this is on the same time that the arduino send it, it will be send to mysql RE: sending arduino data to python and use a parity check - DeaD_EyE - Jul-29-2019 Just print(dat) and you'll see why split returns lesser elements as expected.
RE: sending arduino data to python and use a parity check - 10_Lucas - Aug-03-2019 the lesser element comes becuase there is a delay in my arduino programma, and i will first save this data in python and then send to mysql. But i don't know how to save this data in python RE: sending arduino data to python and use a parity check - DeaD_EyE - Aug-03-2019 Use exception handling and skip the lines, which do not have enough fields. import serial def do_something(a, b): print(a, b) def read_loop(ser): while True: dat = ser.readline().decode() localtime = time.asctime(time.localtime(time.time())) try: a,b,c,d,e,f,g,h = dat.split(" ; ") except ValueError: print('Incomplete data, skipping') do_something(a, b) with serial.Serial('/dev/ttyACM0', 9600) as ser: ser.flushInput() read_loop(ser) |