Anfänger brauch Information zu MySQL, Python und DS18b20

  • Hey Leute,


    ich habe bislang mit einem einfachen Shell Script meine Aufgabe erledigt um Daten von mehreren Temperaturfühlern DS18b20 in einer MySQL Datenbank zu schreiben, nur möchte ich nun das ganze System etwas umbauen.


    Zum einen kommen zeitnah neue Sensortypen hinzu welche über i2c angesteuert werden und welche auch ihre Werte in die Datenbank speichern sollen. Und zum anderen wollte ich gucken ob es in Python nicht evtl. einfacher geht. Muss leider dazu sagen, dass ich bislang noch nicht an Python dran gekommen bin. Möchte aber meinem Pi noch paar Python Scripte verpassen auf Dauer, welche noch ein paar Aufgaben im Hintergrund übernehmen.


    Das Script soll folgendes machen, 1-Wire Busteilnehmer abrufen, in einer Tabelle gucken ob dieser bereits vorhanden ist und wenn ja soll er den Wert aktuallisieren. Sprich sobald ein neuer Sensor dazu kommt soll ein neuer Datensatz angelegt werden mit "Dummydaten" an Positionen wie Ort.


    Das zweite was auf Dauer noch dazu kommen soll wäre, wie leicht ist es in Python i2c ab zufragen? Es geht um den Luftfeuchte und Luftdrucksensor von Pollin. Vielleicht hat jemand schon mal mit diesen Sensoren gearbeitet?


    Kann mir in dem Zusammenhang evtl. jemand verraten wie leicht / schwer sowas ist? Also Teil 1 mit dem Temperatursensoren und Teil 2 mit dem i2c Busteilnehmern?


    Ich hoffe mir kann da jemand helfen. Danke aber schon mal im vorraus.




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

  • Mit Python habe ich bisher auch noch nicht viel gearbeitet, da drück ich mich bisher errforlgreich vor und mache stattdessen alles mit bash oder php :)


    Es gibt aber auch genauso wie für alle anderen Programmiersprachen sehr gute Deutsche Tutorials die du über google finden kannst ;)


    Zum Beispiel:


    http://raspberrycenter.de/handbuch/python-programmierung
    http://tutorial.pocoo.org/
    http://python.net/~gherman/publications/tut-de/online/tut/
    http://www.wspiegel.de/pykurs/beispiel_index.htm
    http://halvar.at/python/links/

  • Hier wäre das Script. Da benötigt man 2 Datenbanktabellen. Wenn die Strukturdaten dafür noch benötigst melde dich.





    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

  • Hm wieso 2 Datenbanktabellen?


    Anstatt das doch recht Resourcen-lastige MySQL zu nutzen würde ich SQLite empfehlen, das hat auch eine sehr ähnliche Syntax wie wie die anderen SQL's..
    Durch Verwendung von SQLite würde nicht permanent Prozesse im Hintergrund laufen die unnötigerweise CPU+RAM verballern... SQLite verbraucht zum einen wesendlich weniger und dann auch nur zu dem Zeitpunkt wo Befehle ausgeführt werden, es idlet also kein Prozess im Hintergrund herrum :D


    Code
    apt-get install sqlite3


    Beim arbeiten über die Konsole (also auch in Scripts) muss man dabei immer die Datei angeben, ich nutze hier mal als Beispiel /tmp/daten.sqlite und ungefähr angelehnt was in in dem bash Script da oben gesehen hab ;)


    SQLite3 Datenbanken / Tabelle erstellen:

    Code
    sqlite3 /tmp/daten.sqlite "CREATE TABLE IF NOT EXISTS temperatur (ID INTEGER PRIMARY KEY,Wert TEXT,Zeit INT,Datum TEXT);"


    ..Wobei ich anstatt einzelne Zeit und Datum Werte in den DB einzutragen stattdessen lieber mit dem Unixtimestamp arbeiten würde, damit liese sich viel besser arbeiten: date +%s



    Updaten ist dann genauso wie bei MySQL:

    Code
    sqlite3 /tmp/daten.sqlite "UPDATE temperatur SET Wert=\"$v\" WHERE ID=\"$i\"";


    Oder auch einen neuen Eintrag machen:

    Code
    sqlite3 /tmp/daten.sqlite "INSERT INTO temperatur (Wert,timestamp) VALUES (\"$v\",\"$(date +%s)\")";



    Wenn ihr Scripts schreibt die nicht unbedingt mit " sh " arbeiten müssen würde ich zudem empfehlen stattdessen mit bash zu arbeiten da das mehr kann als sh, vieles is dann auch nicht so umständlich ;)


    Das obige Script könnte dann zB so aussehen:



    Mehr dazu kann auch hier nachgelesen werden: http://www.sqlite.org/docs.html
    (ein paar Besonderheiten gibts bei sqlite3)



    SQLite gibts auch als php Module um damit eben über PHP zu arbeiten:

    Code
    apt-get install php5-sqlite


    Hier meine PHP functions mit der ich arbeite:


    Der restliche PHP Code könnte dann zB so aussehen: (das ist jetzt aber nicht an diesen Thread hier angepasst!)

  • Ich nutze MySQL nicht auf dem Server selber sondern in einer Externen Datenbank. Also ist kein Server da der die Rechenleistung frist.


    Aber wegen bash werde ich mich mal mit auseinander setzen. Vielleicht wäre es eine nette Alternative.




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash: