Can ibeacon communicate with ibeacon? - ibeacon

If I have three ibeacons B1, B2 and B3,
B1 connect to B2
B2 connect to B3
Can B1 know the B3 ibeacon is exist?
Maybe B2 repeat the message from B1 to B3 ? Is it possible?
Thanks

Beacons are only senders, they just broadcast their (unique) id.
With your app you can read the id and do a specific action.
Some beacons also collect data like the temperature, that you can read when connected.
Apples Getting Started with iBeacon

Can B1 know the B3 ibeacon is exist?
Technically it could, but this is most likely not implemented. By design beacons are just... beacons and there are no much benefit from making them aware of presence of other beacons.

Sounds like you want a "Beacon Mesh", where interconnected devices use an antenna to broadcast and another to connect to the next link in the chain. This way, you could connect all your beacons to the internet via only one beacon that is connected.
When you asked the question, I think this concept was only academic, but it seems to now have been worked into a full solution by people like http://www.ubudu.com/
Typical uses for beacons are proximity however, as this is just receiving and processing a series of IDs in a given "region"

What you want to do is possible by relaying information via Bluetooth GATT. There are APIs on most devices that make this easier than it seems from the specs.
Also take a look at the new Bluetooth Beacon Mesh.

Related

GSM-based mobile phone sensor

Alright, this may sound completely insane, I am not an electronics guy, just asking.
As far as I'm concerned, there are two most popular technologies for close-range communication: RFID and NFC. These technologies are just emerging in the mobile phones, as you don't see a lot of devices supporting them. Is it possible to build a GSM based sensor for the purposes of detecting who's sitting at the desk?
Let me describe the context. I'm working with a mobile phone operator to build a shop as part of my studies. They are able to install any GSM transceiver anywhere, and use it legitimately.
As NFC is not quite there yet, one of my proposals to them is to let people use their phones instead of (or as they would use) any RFID card, like Oyster in London, in order to make payments, quickly change tariffs, top-up, etc. I imagine that this may be possible by making a low-power GSM base station combined with a proximity sensor.
If so, then we can get a phone user with the strongest signal, get the information from the proximity sensor to define if there is a phone in front of the sensor and thus detect who is the user. What do you think? Is it something possible?
You can definitely have low powered base stations but they would generally be for a small area in a big venue/city or for a house or room.
Any phone in the coverage area from that operator would connect to that cell if it had the best signal, so you would find it very difficult to distinguish between two users who are a couple of feet apart. I'm guessing this would not be good enough for your use case.

What is good way to find out a nearby xbee module?

Zigbee AT ND command can discover nearby modules if they are in same network (same PAN ID). So in order to find a module that I do not know about its pan id, the only thing came up to my mind was brute forcing pan id. Is there a better way to find out a module other than brute forcing pan id and repeatedly query ND command? I'm currently using libxbee library in c.
You can find nearby nodes by doing an "Active Scan" (ATAS). You'll get the beacons sent by nearby routers and coordinators, with their addresses and PAN IDs. You won't see responses from end devices, and you might not see responses from devices that aren't allowing joining (I can't recall whether they send beacons or not).
This ANSI C XBee Host Library on GitHub has sample code for doing a scan and parsing the results. You can either try that library, or use it to learn the structure of the responses.

Time measurement between two points

i need to measure the time between 2 points. I can not use a simple watch because i have no free hands for this. (mountainbike - downhill)
My first idea was to set two GPS points and measure the the time between those points, but I think it will be to inaccurate.
my second idea was to set one bluetooth device to each Point and just measure the distance from me to the bluetooth device , check the shortest distance and save the time.
But than I realized that I would need 3 bluetooth devices to make a distance calculation, which is kinda annoying.
Any idea how i can measure the time between two points with an accuarcy <1sec ?
I want to control this via smartphone.
edit:
Okay i have another idea. Maybe i could set one bluetooth device to each point. I set the signal strenth to <=1m. Than i could easily start and stop the time until i receive the bluetooth signal on my android.
Do you think this would be the best approach ?
It seems you're trying to take total and split times for a course. Definitively, forget of using bluetooth for other things that are not constant transmissions, with slow connection time... (I speak from experience). Of course you want to do it in the cheap, because there already professional solutions for that (e.g.).
From my point of view, if you want something accurate and been able to integrate it with you phone, you'll need the following:
DIY photocell sensors. Maybe involving simple chip (e.g. msp430), phototransistor-diode pair, cheap 433mhz transmitter and batteries.
DIY 433mhz receiver for your phone. There already many boards that supports android open accessory library, (e.g. 49$ from sparkfun), so you only have to connect it to a 433mhz receiver and to your phone.
Custom code programming in your android phone. To be able to receive the signals from the split signal senders and keep track of all times.
It seems to be a pretty decent project for under $250-200(if you self made it :P).
One possible solution that does not require any special hardware would be to use a smartphone at the finish line. You would only need an extra smartphone (SP) with net connection, and some software.
SP sends the start signal to your phone. You start when you hear the signal.
SP uses its camera to detect when you reach the finish line.
SP calculates the time between start and stop and displays it, and possibly sends the info to your phone, too.
Maybe you could even record a video with time stamps.
(Of course, the low cost solution would be to let one of the guys to use a stopwatch at the finish line.)

Using bluetooth to identify devices in range out of potentially thousands?

Greetings!
The idea is simple. Let's say that I have a service wherein people can walk up to a kiosk and "pair their phone" with a bluetooth device on that kiosk. We'll ignore why people would do this, but let's say that they have an incentive to do so.
Let's say that I have convinced thousands (if not millions) of people to do this thing... and they're walking around with their cellphones with bluetooth ON. (Not discoverable.) How do I solve the problem of scanning for "known devices" if there is a possible pool of millions of known devices?
Again, I don't want to connect with them once I've actually done the initial pairing. I simply want to know they are proximate.
Thoughts?
Well, the first thing is that even if your kiosk has a Class 1 Bluetooth radio in it, which can actually go farther than the advertised 100 meters, it's still extremely unlikely that there will be millions of Bluetooth cell phones who have previously paired with your kiosk within the range of your kiosk's radio. So that narrows down the potential number of Bluetooth devices you're dealing with.
Second, if a device is not discoverable, then it doesn't matter if you've paired with it before or not. You will not find it using a general "Hello, is anybody out there?" inquiry scan. If you've paired with a device, you will know its Bluetooth Device Address and can therefore ping it explicitly and get an answer. This doesn't seem like a reasonable thing to do if you're thinking you might have millions of cell phones paired with your kiosk. (Have you thought about the fact that if you have multiple kiosks your users would have to pair with each kiosk separately? Do you really need to pair with the cell phones to do what you need to do?)
Having said all that, a general inquiry scan will produce a list of discoverable Bluetooth devices in the vicinity of your kiosk's radio. You could use that list to search your own list of devices paired with the kiosk. I can't remember if you get back just the friendly name in the first response or if you get a BD_ADDR as well. If you just get the friendly name, there could be multiple devices with the same friendly name, as I doubt many users change their phones' friendly names.
It's been a while since I really delved into the Bluetooth spec so things may have changed.
Pairing may be overkill: that's about establishing secure communications. Worse, ISTR some phone UIs don't separate pairing (having a secure channel) and trust (allowing the remove device to do stuff without asking the user whether it should), although I hope modern phones get this right.
If you just want the other device's Bluetooth address, you could get people to send the kiosk a business card or something. Or tell them to become discoverable and have your kiosk initially find them. Or they could pair, but as Kirsten says, they'd be paired with a single kiosk: you may not care if all you want is their address, though, rather than the secure channel.
Now you've got a list of Bluetooth addresses. You can share these addresses between multiple kiosks if you've got some sort network between them. In an ideal world, detecting proximity would then be a matter of performing BT inquiry (you don't even need full device discovery here, just knowing what addresses are out there is enough) and matching the addresses you get from that against your list. But that only works when remote devices are discoverable (which means they're listening for inquiry packets, doing what the spec calls inquiry scanning). If they aren't, you'd have to try to connect to each one in turn (you can drop the connection once you know the other guy is there). You could parallelise this with multiple BT radios, but you're looking at a few seconds per address per radio. You're doing the old "Redfang" brute-forcing that people got excited about a few years ago, but it's going to be slow: http://www.newswireless.net/index.cfm/article/924
Of course, if people aren't leaving their devices discoverable, the implication is they don't want to be found, so it's not surprising that this doesn't work.

How to differentiate between lan card and data card?

I have a data card with me.
I wanted to know, is there any way programmatically I can tell that, it is data card or it is LAN card?
I have used IFTable, I have used IListManager, INetwork manager provided by Microsoft, but not able to solve the problem.
Edited
I have one lan card and one data card connected on my system, I want to do some operation on data card, but I don't know, when my data card is connected and when my LAN card, enumerating will give me list of all connections, but how to identify LAN and Data card among them.
You should clarify your problem. What problem are you trying to solve? Why do you want to distinguish the cards?
That said, some ideas:
If you just want to identify your specific cards, every network card has a unique ID (the MAC). You can retrieve it using networking tools.
If you want to identify the type of card, you can try to get PCI information, and look for a string. But that is difficult in the general case, because there are so many different types of cards. So you'd need to clarify your question.
There is no clear distinction between the different kinds of networks anymore. On the one hand, LANs have gone wireless with WiFi. On the other hand, public networks have gone local with femtocells. Hence, it becomes increasingly difficult to distinguish the two kinds of networks, and therefore the network cards connecting to them. There is no clear boundary.

Resources