Ideas on creating an Audience Polling System

Hello, not a complete beginner but new to wireless comms.
I conduct some interactive sessions about physics which involve asking audience some questions and counting how many responses for each option. Currently, I hand out sheets of papers that have numbers printed on them and I have to get some volunteers that I ask to count the number of responses for each option and write it on the board. It takes a while and also allows people to see each other's responses which I don't want.
I am thinking of a way to make some Arduino based voting system that I can hand to each participant so that they can just press buttons when asked and I can get data on screen quickly. I am not sure what method I should use. I want to have around 40-50 polling pads. Based on my limited research, I planned to use FS1000A, but I am sure making sure only one transmits at a time will be a major hassle. Bluetooth based modules like HC-05 might not have enough range as sometimes I have to conduct sessions in fairly large auditoriums plus the number of nodes would be limiting. I am not sure if 8266 will be suitable for this as well because of the number of nodes. I have plenty of Arduino boards in my lab but would like to keep the cost of wireless modules to a reasonable amount. Any ideas would be appreciated. Thanks!

At first glance, I’d have the host poll all the handheld units sequentially.
Sure it may take a few seconds, but the users don’t know that.

Post the question, and tell the punters they have x seconds to put in their vote.
Send a ‘broadcast’ to lock the units, then poll all the units for a value, skip, or nonresponse.
50 stations at 100mS each plus a few timeouts… total about 6-10 seconds to tally the results.

There are more sophisticated methods, but more complex, and not much benefit in the end result.

Why not just use an app and let everyone use their phone. These exist for this purpose and have fancy software for displaying the results nicely. You could recreate it with arduino if you like the challenge

Some of my target audience doesn't have phones like school children who aren't allowed to have one inside their campus and some low income students who only have non android feature phones. I also tried few services like directpoll and slido when it was possible but it wasn't seamless as I had to spend a bit of time getting the non tech savvy people to open the right links.

Then I think you have good advice. I would start by planning what your requirements are on paper. Decide what type of interface you want. Coloured buttons with ABCD next to them (if complicating it also sub description for menu, forward, back, enter) A small display of some sort or some simple led indicators to show when time for poll and when poll completed and error. Wifi/BLE communication. How you want to display and amalgamate results (research stuff already used). You will need to breadboard both the individual units and any communication/display hardware. You can get it working but you may have numbers issues so each unit holding its response until polled is a potentially good idea. You may need to 3D print an enclosure or work to fit a cheap one that is readioavailable. Look at arduino nano IOT and esp32

Run a MQTT Broker. The remotes are clients.

Each question can be a topic, each client can submit an answer to the topic which can then be folded, spindled, and mutilated.

You're correct that Bluetooth/BLE may have problems in a large auditorium. I used to work in the group fitness industry and a gym class with 20+ people can be a nightmare because all those bodies absorb the signal. Add in the distances in an auditorium and it gets worse.

I'd use web technologies for this. Programming is straightforward and there's no reinvention of the wheel needed. Use a bunch of ESP8266's as clients talking to a web server. Each 8266 can be programmed to send a message that includes a code that indicates which device it's coming from. The server will receive the response and then send an acknowledgement message back so the sender knows it was received.

The webserver could be a tablet or maybe a Raspberry Pi.

Alternately, you can probably find dirt cheap tablets on AliExpress that will cost less than building out each ESP8266 system. The tablet can be made to run a single app on power up and nothing else. If I were tasked with doing this, that's the approach I'd take.