Messdaten auf Sqlite speichern

  • Hallo,

    ich hab folgendes Problem. Ich messe durchgehend mit meinem Arduino eine Frquenz und übertrage diese dem Raspberry. Nun möchte ich ein Python Skript schreiben, damit ich diese Werte auf meine Sqlite Datenbank speichern. Ich bin soweit mit meinem Python Skript gekommen und weiß nicht mehr weiter. Bin auch kein guter Programmierer.

    import sys
    import time
    import sqlite3
    import serial

    connection = sqlite3.connect(database = "/home/pi/frequenz.db")
    cursor = connection.cursor()

    try:
    sql = "CREATE TABLE IF NOT EXISTS 'frequenz' (" \
    " 'zeit' timestamp NOT NULL, " \
    " 'herz' FLOAT UNSIGNED NOT NULL)"
    cursor.execute(sql)
    connection.commit()
    except:
    print ("Die Tabelle existiert bereits!")

    # Zeitstempel erzeugen
    def TimeStamp():
    stamp = time.strftime("%d.%m.%Y-%H:%M:%S", time.localtime())
    return(stamp)
    zeit = TimeStamp()

    # Daten in Datenbank bertragen
    try:
    cursor.execute("""INSERT INTO frequenz (Zeit, Herz)
    VALUES (?,?)""", (zeit,herz)
    connection.commit()

    except:
    print""
    print ("Einfuegen von Daten nicht moeglich!")

    ser = serial.Serial('/dev/ttyACM0', 9600)
    while true:
    print ser.readline().strip()


    Nun kann ich den USB-Port des Raspberry auslesen, aber kann diese Frequenz nicht weiter verarbeiten, um diese in meine erzeugte datenbank zu speichern. Ich bitte um Hilfe!!

    Einmal editiert, zuletzt von inassar (18. Dezember 2014 um 15:45)

  • Also mein Arduino sendet jede Sekunde eine Frequenz an den Raspberry über die usb schnittstellte. Dieser Wert ist mein "herz" Variable in python und mit der Funktion TimeStap() möchte ich jeder Frequenz eine Zeit zu ordnen.

    Ich weiß nicht wie ich die Frequenz, welche ich an den Raspberry sende, an die Variable "herz" deklarieren kann.

    Einmal editiert, zuletzt von inassar (18. Dezember 2014 um 16:26)

  • Ich würde mal die einzelnen Schritte in vernünftige Funktionen umwandeln und die Programmlogik überdenken:

  • Ok, verstanden aber ich weiß nicht wofür ich diese beiden Funktionen brauche:

    from __future__ import print_function und if __name__ == '__main__':

    Sorry für die dummen Fragen aber bin kein guter Programmierer.

    Einmal editiert, zuletzt von inassar (18. Dezember 2014 um 16:49)

    • Offizieller Beitrag

    ich würde auch bootsmanns Ansatz wählen. Zum Verständnis:

    Das ist jetzt extrem vereinfacht (und ohne Zeitstempel) und unsauber (weil jedesmal die neue verbindung aufgemacht wird) und soll eigentlich nur verdeutlichen wie du deine Arduiniowerte in die jeweiligen Funktionen kriegst

    from __future__ import print_function = importiert die python3-syntax print funktion in Python2.x
    zum zweiten steht hier eigentlich alles wichitge

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!