Project For creating a long range qr scanner

Hello, I’m trying to create a project in which I use a camera to do long-range qr scanning, I’m looking for assistance on what parts I should use for this. The camera needs to be able to see 40m or so away and needs a movable arm to change the positioning direction of the camera. I’ve been looking at using the Raspberry Pi system to start with, as using Python code is what I know as far, Is this a good starting option for this.


I believe we’ve spoken earlier. That’s an interesting project idea, what’s the use case? Importantly, what is the environment that you need to be scanning the codes from and how large (in meters) are the codes going to be?

The problem is that if this is outdoors, which over this distance I expect it will be, then sunlight and ambient lighting conditions may make it almost impossible to accurately get the pixels of the QR code over that distance if there is any glare or partial lighting in play.

Even if that doesn’t become an issue, if the code is less than a very large QR painted onto the side of a building, you’re going to essentially need a telescope mounted to your camera in order to get an image with sufficient resolution at that distance that’s readable. Otherwise, you could possibly take an image with a camera with a decent depth of field, and then crop out the section with the QR code, although then the problem becomes, how does your software know where the QR code is appearing in the image initially?

Personally, I’d suggest looking at using something else to get an ID for this kind of distance rather than a QR code. Long-range active RFID tagging systems such as the kind people used to use for eTolls are much less prone to environmental conditions and depending on the design can easily be read at distances over 100 meters, although obviously the tags themselves then need some form of power, are much more expensive than optical IDs.

what im trying to accouplish is creating a hardware which will scan qr codes that reades from tags hanging from the rear veiw mirror of a car. The codes wont be large maybe half the size of a phone sort of thing. Which originally I was designing it to be further away and it could be in a varying range of environments as well but Based off what your telling me the best option would be confiure it to have a close system for it being less then 10m away and direct line of sight which should hopefully avoid the glare issue with this would that solve the issue of the reading caplibities to not have such a large code size, if not what would you recomend for solving this.

in regards to the possibly using the rfid option this could work but how the codes are distributed that option isnt really economic hense the qr code scanning option which is currently emailed out.

1 Like

Hi C,

Whats the application for the project? i.e. what are you actually trying to accomplish?

If you’re ID’ing cars with a known rego could you just use the plates?

1 Like

Im developing it for a ticketing application the end result is a automated system of scanning car passes in as people drive through. So only the information used to purchase the tickets are available to me

1 Like


In this case, as Liam suggested, requesting the plate numbers when the ticket is purchased combined with an image recognition system (there are many open-source models and projects for this like OpenALPR) is probably the best way to go here.

Even up close, QR code recognition can be quite spotty depending on the scale and camera quality. Attempting to read a potentially non-flat, loose, and irregularly placed QR code especially through glass if it is behind a windshield will be extremely difficult in my opinion.

If you’re just working on a proof of concept project, another potential solution is to scan for Bluetooth device names, you’d just need to know what their phone’s Bluetooth name is beforehand, and ensure that they’ve got Bluetooth enabled for the scanner, although this will also have some range limitations and is not overly practical, but still a potential interesting solution (below is some content suggested by GPT):

So. Here’s the basic idea: When a customer purchases a ticket you would instruct them to set their device’s Bluetooth name to a specific, unique code you provide (which could be linked to their ticket). At the venue, you would then scan for Bluetooth devices and check the detected device names against your list of valid ticket codes.


1. Detection Device: Use a Raspberry Pi with a Bluetooth module. Multiple Raspberry Pi devices may be needed to cover larger areas.
2. Device Scanning Program: You can create a program (For e.g. in Python) which scans and lists all the Bluetooth devices in range periodically. This will provide their Bluetooth names.
3. Check-In Program: Another program would process this list and check the detected Bluetooth names against your list of valid ticket codes. If there’s a match, it’s a successful check-in.


1. Privacy Concerns: You will be scanning for Bluetooth devices, which may raise privacy concerns. Be sure to obtain customers’ permissions and follow local regulations.
2. Unique Bluetooth Names: Customers might forget to change their Bluetooth names or turn on Bluetooth. Also, as many people use generic names for their Bluetooth devices, it might cause confusion and false positives.
3. Interference and Range Issues: Many external factors can interfere with the Bluetooth signals.
4. Device Compatibility: Not all devices may allow changing the Bluetooth name, especially some IOS devices.

It’s also important to have a backup check-in process just in case the Bluetooth solution fails for any reason.


Atm I am just working on a proof for this project Ill read into the attached library, Thankyou
although the Bluetooth solution could be a good idea for the potention application it isn’t really a via able option.