Waage in Python einbinden

  • Hallo zusammen


    Ich schiebe mal vorweg das ich ein blutiger Anfänger im bezug auf den Pi bin und hoffe auf dem entsprechende Antworten :blush:


    Ich habe vor den Gewichtswert einer Waage in einem kleinen Programm zu verwenden.
    Jedoch stehe ich direkt am Anfang vor dem Problem, den Wert zu importieren, da dieser mit Hilfe eines Rs232 zu USB Adapters übertragen wird. Ich hatte die Waage bereits an einem PC mit seriellem Port angeschlossen und konnte dort unter Ubuntu den Wert problemlos live auslesen(sudo cat /dev/ttyS0).
    Bei dem Adapter handelt es sich um diesen : http://www.amazon.de/Digitus-USB-seriell-RS232-Adapterkabel/dp/B00007FV43/ref=sr_1_14?s=computers&ie=UTF8&qid=1417112339&sr=1-14&keywords=seriell+usb+linux (Affiliate-Link)


    ich hoffe auf zahlreiche anregungen:danke_ATDE:

  • Aber müsste ich nicht nachdem Pyserial installiert ist die Daten von der Waage auch via
    sudo cat /dev/ttyAMA0
    auslesen können?
    Ich habe jetzt schon einiges versucht um den Wert als Variable schreiben zu lassen, jedoch bekomme ich immer diese Meldung:


    Traceback (most recent call last):
    File "/home/pi/serial.py", line 1, in <module>
    import serial
    File "/home/pi/serial.py", line 4, in <module>
    ser = serial.serial("/dev/ttyAMA0", 9600)
    TypeError: 'module' object is not callable




    Dies hängt meines erachtens mit der dritten Zeile zusammen:


    ser = serial.serial("/dev/ttyAMA0", 9600)



    Ich stehe wirklich auf dem Schlauch .... :helpnew: :blush:

  • ja das hatte ich auch als erstes im code jedoch folgt darauf dieser Fehler .....


    Traceback (most recent call last):
    File "/home/pi/serial.py", line 1, in <module>
    import serial
    File "/home/pi/serial.py", line 2, in <module>
    ser = serial.Serial("/dev/ttyAMA0", 9600)
    AttributeError: 'module' object has no attribute 'Serial'




    Das is zum Mäuse melken...

    Edited once, last by noplan ().

  • bootsmann genau daran hats anscheinend gelegen .... Nun erkennt der pi den Port endlich. :danke_ATDE:


    Ich habe jetzt folgende Zeilen :


    import serial
    ser = serial.Serial('/dev/ttyAMA0', timeout=2.5)
    ser.baudrate = 9600


    print ser.portstr


    ser.open()


    flag = ser.isOpen()
    print flag


    p = ser.read(10)
    print p


    welche jedoch bisher nur zu einer " leeren" Ausgabe führen :


    pi@raspberrypi ~ $ sudo python testion.py
    /dev/ttyAMA0
    True


    pi@raspberrypi ~ $


    jedoch gehe ich davon aus das dies an mangelnden Angaben zur "Datenübertragung" mit der Waage liegt.
    Ich werde nocheinmal ein wenig herumspielen und falls ich nicht weiterkomme nocheinmal an dieser Stelle Fragen. Danke schoneinmal :)[/align]

  • Das scheint noch nicht des Rätsels Lösung zu sein .....


    Mit folgendem Code, welcher ja theoretisch beide Fälle Abdeckt und nun auch die "Verbindungsdaten" berücksichtigt, bekomme ich auch nur eine leere Ausgabe...


    import serial
    ser = serial.Serial('/dev/ttyAMA0', timeout=2.5)
    ser.baudrate = 9600
    ser.bytesize =serial.EIGHTBITS
    ser.parity= serial.PARITY_NONE
    ser.stopbits = serial.STOPBITS_ONE


    print ser.portstr


    ser.open()


    flag = ser.isOpen()
    print flag
    f = ser.read(10)
    p = ser.readline(10)
    print p
    print f


    ser.close()



    Ich habe irgendwie die Vermutung/Befürchtung das es mit dem Pegelwandler zu tun hat und habe mir deswegen einfach nochmal ein RS232 zu GPIO Erweiterungsmodul bestellt ( http://www.amazon.de/SainSmart-RS232-GPIO-Shield-Raspberry/dp/B00KYHTU1Y/ref=sr_1_1?ie=UTF8&qid=1417548003&sr=8-1&keywords=raspberry+pi+Rs232 (Affiliate-Link) )


    Mal schauen was sich ergibt :)

    Edited once, last by noplan ().

  • Hi,
    ist Dir was beim RS232 Konverter aufgefallen?
    Nein? ... ok, das zuletzt bestellte hat einen weiblichen, der USB-Konverter von ganz am Anfang einen männlichen D-SUB Anschluss.
    Und damit wären wir beim zweiten Punkt. Hast Du mal überprüft, ob Du nicht evtl. ein Nullmodem-Kabel zur Verbindung verwenden musst?
    Hättest Du mal meinen Link in diesem Post angeklickt und das Projekt von ps915 mal gelesen, wärst Du evtl. schon weiter ...


    PS: Ich würde ja minicom zum Testen nehmen, bis Du weisst, ob und welche Daten kommen ...
    Ein evtl. fehlerhaftes Programm mit einer evtl. fehlerhaften Verkabelung und evtl. fehlerhaften Schnittstellen-Parametern zu testen bringt Dich imho nicht so wirklich weiter ...


    cu,
    -ds-

  • Sicher das der USB-Serial Adapter /dev/ttyAMA0 und nicht /dev/ttyUSB0 ist ?

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Dreamshader :
    Das mit dem Port "Geschlecht" ist mir wirklich nicht aufgefallen aber auch nicht so gravierend... (Genderchanger).
    Zum Kabel : Ich habe zwei verschiedene Industriewaagen zum Testen verwendet welche identische Verbindungsparameter benötigen. Dabei wird die Söhnlein Waage mit einem eigenen Kabel verbunden (rs232 zu waagenstecker) ...
    Ich werde mich mal in minicom einlesen und schauen was sich an dem Port so tut....


    Imperator:
    Ich habe ttyUSB0 vor einiger Zeit ausprobiert aber noch nicht im neuen (funktionierenden) code ... Werde es heute abend mal testen ....



    Danke für die vielen Hinweise und die Geduld :thumbs1:

  • Ich habe mir einmal mittels ls /dev/ die Liste auswerfen lassen ..... jedoch werden mir garkeine usbs angezeigt .... fehlt mir evtl einfach eine zusatzinstallation oder ähnliches ?


  • dein Beitrag ist zwar schon etwas älter aber auf der suche zur Lösung meines Problems bin ich hierrüber gestolpert. Ich habe einen RFID Reader mit USB. Bei einem frischen aktuellen Raspbian wurde er unter ttyusb1 erkannt. ttyUSB0 ist bei mir ne Funktastatur. Bei rüberziehen des Chips wurde auch eine 10stellige Zahl auf der Konsole ausgegeben. Nachfolgend habe ich noch Picam mit VLC zu streamen an Zoneminder installiert. Als ich dan meine zwei .py fertig hatte waren inzwischen usb0 und usb1 nicht mehr vorhanden, dementsprechend auch keine ausgabe auf Console.


    Was nu. Wieder gegoogelt und fand raus das sich manche Reader als Barcodscanner in /dev/hidraw mounten. Wenn du in dein letzten Post schaust sehe ich das du /dev/hidraw0-2 stehen hast. Da wird sich wohl auch deine Waage befinden.


    Dann ist mir aufgefallen das du in der Abfrage

    Code
    ser = serial.Serial("dev/ttyusb0", timeout=2,5)

    nur ein einfaches Apostroph benutzt und kein doppeltes. Keine Ahnung von Python aber das hat doch sicherlich auch etwas zu sagen.