This is related to a recent, off-topic post I had linked here. I'm trying to make this post more for advice on my project, since I'm new to electronics and RFID and not entirely sure what I'm looking for. But anyway, here goes.
I'm very new (one day) to the electronics/IoT world. I've got a specific project I want to tackle, as a intro, but I'm also open to general advice on getting started. In summary, I want to know if my project expectations are realistic, and/or if there's well-known ways to do what I want. In fact, if there's already an out-of-the box solution for my project I'd be highly interested in that for comparison purposes.
Please, give answers at a level commensurate with my background below. Also, I'd be grateful to learn the standard jargon relating to my problem. Thank you!
I've got a decent education in mathematics (more on the computational side). I'm a decent programmer, albeit more of a coder, and I've done projects in several programming languages at this point (was never the lead developer). Those languages were all high-level languages, the lowest being C++. I essentially have no assembly language experience.
Lastly, I was a mechanic at a power plant at one point in my life so I'm pretty good with hands on stuff. I've never had serious experience in electronics, although I've had some very minor, undergrad level theory of circuit board logic, as part of an intro to computer architecture class.
Project and Goal
I want a system that can recognize and count that a few different product types (up to 4 or 5) are within about 3 ft of my reading device. For example, consider that I have a warehouse full of canned cola, beer, water, and lemonade. If a warehouse worker places 2 colas, 1 beer, and 1 water near my reading device then I would like to detect the number of each product within a few seconds. The product could be anything you'd find at a store though, soda cans is just what popped in my head. For my project, you can safely assume that I only have the 4 or 5 product types that are static—my warehouse has extremely limited variety.
Here are some requirements I'd like to hit, but which aren't set in stone—and if they don't make sense please explain why. And overall, I'm looking for simplicity.
Time: the products do not have to be immediately read, but must be read/identified within about 5-10 seconds.
Range: accurate and reliable reading from about 3 ft (90 cm). By reliable I mean that the products are basically guaranteed to be recognized or identified.
Size: I don't have very specific size requirements, I just want to get a working system, but of course I'd like to keep everything on the small side. In my head, the products could be tagged with something as big as this RFID card. And the reading device size could be something like this one. (yes, I realize that range shorter than my requirement).
Directional: This might be related to my "other" requirement, but I was curious if there's something that can make an RFID reader directional. I'm thinking about how radiation readings can be focused just by surrounding the scanner sides with lead.
Data Transmission: it would be cool if I could make the overall system battery powered, in other words wireless, but that's a want more than a requirement. This would be done most efficiently, I think with Bluetooth tech, no?
Cost: since this is a self-project I'm not worried about being cheap, but in the same vein I'm not rich.
Other: detection of products can be had with material, such as metal or water, in between reader and tags. Maybe up to a couple inches of such material.
After a short period of googling, it seems like RFID tech will do the trick for me (that's what lead me to electronics stack). I'm not 100% sure what the type of RFID system I'm looking for. At first I thought I wanted passive tags, but after reading more I've become concerned with their reliability, so I am not opposed to active tags.
What's also going to be important to me, is to ultimately be able to access the data from the identification process in a well-documented programming language, so that I could build an app with it or crunch data and stuff like that. So any direction here would be greatly appreciated.