Barcode Scanner

USB Barcode Scanner mit Raspberry Pi

Sie möchten Ihren eigenen Barcode-Scanner mit dem Raspberry Pi bauen? Alles, was Sie brauchen, ist ein einfacher USB-Barcodescanner, der einfach an den Raspberry Pi angeschlossen wird. Danach müssen Sie nur noch die Software konfigurieren.

Was wird benötigt um einen Barcode Scanner mit dem Raspberry Pi zu verbinden?

 

Nachdem Sie Ihren Raspberry Pi aufgesetzt und mit dem Wifi verbunden haben, sind Sie startklar.

Schritt für Schritt zum eigenen Raspberry Pi USB Barcode Scanner

 

1. Stecken Sie den USB-Barcodescanner an den Raspberry Pi an.

2. Pi booten und Terminal öffnen

3. Geben Sie „sudo raspi-config“ ein.

4. Gehen Sie zu Schnittstellenoptionen und aktivieren Sie „Seriell“.

5. 5. Geben Sie „sudo python barcode.py“ ein, um das Skript auszuführen (drücken Sie Strg+C, um das Skript zu beenden).

 

Python Program

barcode_scanner.zip
#!/usr/bin/python
import sys

def barcode_reader():
    hid = {4: 'a', 5: 'b', 6: 'c', 7: 'd', 8: 'e', 9: 'f', 10: 'g', 11: 'h', 12: 'i', 13: 'j', 14: 'k', 15: 'l', 16: 'm',
           17: 'n', 18: 'o', 19: 'p', 20: 'q', 21: 'r', 22: 's', 23: 't', 24: 'u', 25: 'v', 26: 'w', 27: 'x', 28: 'y',
           29: 'z', 30: '1', 31: '2', 32: '3', 33: '4', 34: '5', 35: '6', 36: '7', 37: '8', 38: '9', 39: '0', 44: ' ',
           45: '-', 46: '=', 47: '[', 48: ']', 49: '\\', 51: ';', 52: '\'', 53: '~', 54: ',', 55: '.', 56: '/'}

    hid2 = {4: 'A', 5: 'B', 6: 'C', 7: 'D', 8: 'E', 9: 'F', 10: 'G', 11: 'H', 12: 'I', 13: 'J', 14: 'K', 15: 'L', 16: 'M',
            17: 'N', 18: 'O', 19: 'P', 20: 'Q', 21: 'R', 22: 'S', 23: 'T', 24: 'U', 25: 'V', 26: 'W', 27: 'X', 28: 'Y',
            29: 'Z', 30: '!', 31: '@', 32: '#', 33: '$', 34: '%', 35: '^', 36: '&', 37: '*', 38: '(', 39: ')', 44: ' ',
            45: '_', 46: '+', 47: '{', 48: '}', 49: '|', 51: ':', 52: '"', 53: '~', 54: '<', 55: '>', 56: '?'}

    fp = open('/dev/hidraw0', 'rb') #Just have a look there if you can see something

    ss = ""
    shift = False

    done = False

    while not done:
        # Get the character from the HID
        buffer = fp.read(8)
        for c in buffer:
            if ord(c) > 0:

                #  40 is carriage return which signifies
                #  we are done looking for characters
                if int(ord(c)) == 40:
                    done = True
                    break;

                #  If we are shifted then we have to
                #  use the hid2 characters.
                if shift:

                    # If it is a '2' then it is the shift key
                    if int(ord(c)) == 2:
                        shift = True

                    # if not a 2 then lookup the mapping
                    else:
                        ss += hid2[int(ord(c))]
                        shift = False

                #  If we are not shifted then use
                #  the hid characters

                else:

                    # If it is a '2' then it is the shift key
                    if int(ord(c)) == 2:
                        shift = True

                    # if not a 2 then lookup the mapping
                    else:
                        ss += hid[int(ord(c))]
    return ss


if __name__ == '__main__':
    try:
        while True:
            barcode_reader()
    except KeyboardInterrupt:
        pass

 

 

Was sind häufige Probleme

 

Falsches Verzeichnis

Das erste Problem kann sein, dass Sie nichts vom Barcodescanner lesen können. Am Anfang Ihres Programms lesen wir die Datei, in der der Barcodescanner seine Daten sendet:

fp = open(‚/dev/hidraw0‘, ‚rb‘)

Wenn Sie z. B. eine Tastatur einstecken, kann es sein, dass die Tastatur hidrwa0 und der Barcodescanner hidraw1 ist. Es kommt darauf an, was vorher eingesteckt war.

 

Shift-Taste aktiviert

Ein weiteres Problem kann sein, dass Sie die Umschalttaste aktiviert haben. Dann wird der Code nicht funktionieren, weil der Barcode-Scanner wie eine Tastatur arbeitet und alle Daten nun verschoben sind.

 

Keine Rechte

Es kann sein, dass Sie keine Rechte zum Öffnen der Datei haben. Verwenden Sie einfach „sudo“

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert