Finding the best protocol for a wireless button

One of my former teachers has a very predictable weekly routine. Lecture on Monday-Wednesday, homework help on Thursday, and quiz on Friday. When the students are finished with the quizzes, they are immediately graded after shuffling them around.

The problem is that my teacher has to constantly ask whether the class is done or not. Sometimes though, a lot of time can be lost between the time the last person finishes and the next time he asks the class. “There needs to be a better mechanism for letting me know when the class is done,” he said.

I’m thinking that building this mechanism would be pretty easy. All I would need to do is create around 40 wireless buttons that students can press to signal that they are done. Ideally each one would have some kind of ID so as to not count it twice in one sitting, but it is not really necessary. I don’t really know the cheapest way to build 40 of these things though.

I’m guessing each one would have to have:

  • a button
  • a wireless transmitter (cheap radio transmitter?)
  • a battery holder

At the instructor station I could have an Arduino with a wireless receiver and any kind of monitoring equipment. Could anyone help in choosing some cheap components/protocols?

I have a cheaper solution:

Have him tell the class "Class, when you finish with your quiz, please place your pencil/pen down, fold your arms, and rest your head until everyone is finished."

All he would have to do then is look, and when everyone's head is down (and probably more than a few are snoring!), he can stand up, clap or ring a bell (hopefully waking the nappers up), and the quiz shuffle/check can begin.

Total cost: FREE

Seriously, a low tech solution to this problem is what is called for; your high tech solution (like so many) is ultimately going to cost more (in parts, in time, in effort) and have a greater incidence of failure (dead batteries, lousy signal, lost devices, etc).

Could you build such a thing with an Arduino, and a bunch of wireless RF buttons or something? Sure you could; but should you?


I know it would cost a lot, but it's not complex at all, so I really am considering it, at least on a small scale. By the way, I found a commercial implementation:

To do this as cheaply as possible, you'll want to make the communication one-way, but you'll need to deal with collisions when two students press their buttons simultaneously.

My suggestion: get the cheapest micro you can (like a PIC or an 8-pin ATTiny), and program it to bit-bang its ID into one of those $5 433MHz transmitters. Send it 3 times, with a delay that varies with each unit. That makes it fairly likely that it'll be received at least once in the clear.

Equip the Arduino with a panel of LEDs, so the students can see that their button pushes have been received and logged. Without it, the kids will burn up far more in batteries than the cost of the LED panel before the school year is over.

Ah, alright. So it would probably have to have:

  • $5 radio transmitter
  • $2 microcontroller
  • $0.5-2 in buttons depending on how many I want to have
  • $1-3 case
  • $1-3 battery holder

It would cost around $13 per unit, so about $520 for 40 students plus the cost of the central receiver. I guess this is reasonable. Better than the $57/unit Promethean ones at least.

what about IR?

No matter how you solve this, IMHO you need to give the student some sort of feedback that his/her button press is registered.

Option 1: Since you will only have one way communication maybe the transmitter should repeat its beacon every x seconds and blink an LED on the transmitter box.

Option 2: Have a large 2-digit 7-segment display at the front of class. When a student press his/her button, his/her ID (printed on the transmitter box) would blink on that display. After a few seconds, display would revert to showing how many students have pressed the button. Or should it be a count down?!

Richard Crowley, that's a great solution to this problem! Normally the students just sit there and wait until everyone is done, but I don't think it would be too bad if the students got up and put the papers in a bin.

Each time a student puts their paper in the bin, they could press a button that would increment a count. When the last person places a quiz in the bin, there could be a one minute delay, then a beep to signal everyone is done. And if I wanted to get fancy, I could use an IR beam instead of a button. Great!

But even though I have a great solution now, it doesn't mean that this thread is worthless. What I could use the wireless buttons for instead is surveying the class. Basically an "audience response" system. (I just learned those keywords in case anyone wants to look up commercial implementations)

but I don't think it would be too bad if the students got up and put the papers in a bin.

Tell 'em it's their duty under Obama's new anti-childhood obesity initiative (Patriotism can also be the last refuge of the cheapskate ;D)

Give them each a mini laser pointer, and put wired light sensors on the ceiling, with a tube on top so only the person directly below can shoot it. Oh, wait, that's a horrible idea, giving a whole class laser pointers.