Detecting common interests in a meeting

Suppose you and me happen to attend the same meeting and we are given a badge which has our common interests built in. So say for example, we both have a common interest like arduino and my badge talks to your badge (within a meter), detects that we have a common interest and a LED blinks to notify the similar interest.

Could someone please help me to understand how to make such a badge using Arduino and IR receiver and IR LED?

Thanks

This would be similar to TV Remote controls. Only instead of sending out single buttons pushes, you send out some characters. Receiver has to receive enough characters to make a meaningful interpretation.

Maybe have a set of characters where each one corresponds to a predefined interest, then just a few are received one can have those as a starting point.

I've heard smartphone apps exists that do such matching using blue-tooth. biggest problem is how to define the interests. There are simple ones but most words have ambiguities e.g. e.g. date: Her favorite fruit to eat is a date./Joe took Alexandria out on a date.

So how do you cope with that? An Arduino cannot hold all acronyms variations etc.

and there are different languages....

Thank you for your comment Cross Roads,

I will certainly drive in that way. Do you have any resources that could help me with this? I am an amateur programmer.

Thanks.

I'd go with a part like this http://ww1.microchip.com/downloads/en/DeviceDoc/21894c.pdf http://www.digikey.com/product-search/en?FV=fff40027%2Cfff801a3&k=infrared+encoder&mnonly=0&newproducts=0&ColumnSort=1000011&page=1&stock=0&pbfree=0&rohs=0&quantity=&ptm=0&fid=0&pageSize=25 Works with your UART (Rx/Tx) to transmit IR and receive IR; it creates the bursts of pulses that get interpreted as 1s & 0s, and interprets bursts of pulses into 1s & 0s that the uC can process as serial data.

Hmm, Optical Transceiver seems hard to come by. May have to use discrete components for that funtion, like an IR LED and an IR Receiver.

Hey Rob,

I do not want to deal with acronyms and will be having pre-defined interests where the arduino can be pre-programmed and tell it what code to send out which would be tied with a certain interest. I initially want to program in just 4 interests to begin with.

Thanks

Thanks CrossRoads,

I will try this and see where I can get to.

CrossRoads,

There aren't any projects done with MCP 2122 and Arduino. How can I learn how to program this to work with the Arduino and IR LED and Receiver. Please advise.

Thanks

Send out simple messages via Serial.print, read on the other side with Serial.read. Treat it like a replacement for any hardware buffer chip, like if it was an RS232 for example. Get a simple program working between 2 arduinos with Rx to Tx, Tx to Rx, Gnd to Gnd, then swap in the IR driver part in place of the Rx/Tx wiring.

It seems to me the hardware part of this is the easy part.

Unless your users have a restricted list of "interests" (perhaps you have a list on the web that they can choose from) it will be all but impossible to match people up without the resources of a PC (or at least a smartphone) to analyze all the ambiguities. Even with a published list you would probably get spelling mistakes.

...R

Is your solution going to tell either person which interest(s) they have in common?

(Is there some objection to simply writing each person's interests on a badge?)

In a crowded room, there is the likelihood of several 'couples' matching at the same time, for different interests. The only way to tell if the person next to you is flashing because he has [u]your[/u] interest, and not someone else's interest, is to ask them. This negates the purpose of the badge. Why not just ask people what their interests are, without using the badge? If you've only 3 different interests, you can 'draw' a Venn diagram on the floor and get people to sit or stand in the area that matches their interests. You can use 3 different (primary) coloured spotlights for this.

I'm thinking RF might work better in a crowded room, gonna be hard to get IR Tx & Rx to stay lined up.

HI Peter,

It wont tell but will have some sort of notification like LED light to notify a detection.

CrossRoads,

I totally agree with you but at the moment I am prototyping and I don't have any RF components.

Thank you everyone for your feedback.

Special thanks to CrossRoads for his very quick and supportive assistance.

I have been able to complete the project using an IR emitter, IR receiver and RGB LED.

I am only having one issue. After a certain period of time, while monitoring the responses on the serial monitor, the IR receiver stops receiving for short period (about a minute) and then starts detecting again. I havent been able to optimise my code to make the IR receiver constantly receive. Not sure what is causing this problem. Any suggestions?

These are the results from one of the serial monitors.

Ideally it should be able to capture "2712" after every send.

Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending Sending Sending Sending Sending Sending Sending Sending Sending Sending 2841661804 Sending Sending 3567067881 Sending Sending Sending Sending 3781177081 Sending Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending Sending Sending Sending Sending Sending Sending Sending Sending 1989644669 Sending Sending 3268748786 Sending Sending Sending 1994643287 Sending Sending Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712 Sending Sending 2712

What’s the code? Otherwise we can only speculate.

You have a logic error in this line of code

    if (results.value > 2700 && results.value > 2660 )

But I'm not sure if it accounts for the problem you described

if (results.value > 2711 && results.value > 2713 )

This can only be true if results.value is >2713, why bother with the first part?