You want to build your own barcode scanner using the Raspberry Pi? All you need is a simple USB barcode scanner which simply plugs into the Raspberry Pi. After that you only have to configure the software.
What do you need to build your barcode scanner?
- Raspberry Pi
- USB Barcode Scanner
- Power Adapter
- 16GB micro SD
After you have put on your Raspberry Pi and connected it to the Wifi, you are ready to go.
Step by step to your own Raspberry Pi USB Barcode scanner
1. Plug in USB Barcode Scanner to Raspberry Pi
2. Boot Pi and open terminal
3. Type “sudo raspi-config”
4. Go to interfacing options and enable “Serial”
5. Type “sudo python barcode.py” to run script (press ctrl+c to exit script)
Python Programm
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
What are common Problems?
Wrong directory
The first problem can be you can’t read anything from the barcode scanner. At the beginning of your programm we read the file where the barcode scanner send his data:
fp = open(‘/dev/hidraw0’, ‘rb’)
If you for example plugin a keyboard it can be that the keyboard is hidrwa0 and the barcode scanner is hidraw1. Depends which was plug in earlier.
Shift Key activated
An other problem can be that you have activated the shift key. Then the code won’t work because the barcode scanner works like a keyboard and all data is now shifted.
No rights
It can be that you don’t have rights to open the file. Just use “sudo”