Beacon/device that is able to receive signal from another beacon and pass it to smartphone - bluetooth

I've been searching in articles for some simple device that is able to do that(title), but I didnt find any. I am looking for a simple device that is able to get RSSI from some unique beacon in range and then pass it (reveiced RSSI value) to the smartphone(via bluetooth).
I thought about some "smart beacon" that is able to work bidirectional (Get signal from another beacon, then pass it to the smartphone). Has it ever been done?(If yes I would be grateful for any articles).
If I wouldn't find anything I will use another smartphone as that device.

I am unaware of any commercially available products that do this. A more common solution might be a device that scans for other beacons in the vicinity and reports them directly to a server.
The reason that reporting scanned beacons to a smartphone over BLE isn't a common solution is because it would be simpler for the phone to do the scanning itself. Why would you need a separate hardware device to do this?
Such a solution you propose might have the advantage of extending the range of the smartphone, but probably not by much. Consider that if the reliable range of BLE is 40 meters, then a phone 40 meters away from the device you suggest might be able to pick up beacons at most 80 meters away in the same direction. Practically speaking this would rarely even double the scan area covered by the phone simply working by itself.

Related

Recognize specific ringtone

What I want is to be able to get a signal at my raspberry pi at home when I'm not at home so I can e.g. wake up my PC. I always have an old phone lying around that I never really use. So I thought, I can call my phone, a specific mp3 ringtone plays, my raspberry pi listens and recognizes the ringtone and therefore the signal. So I can pretty much chose whatever ringtone I want (but hopefully a not too long one). But the problem is, that it should be recognizable by the raspberry and it should be distinguishable from other sounds. At best I can play random music at home and it will not get signalled until it's the specific ringtone i chose.
So I'm at the very beginning of the project and I have a lot of question. Is this even feasible? How do I listen to the ringtone? Should I use a normal microphone or could I e.g. trigger some gpio pin as long as a specific frequency is played? What kind of ringtone should I use to be as distinguishable as possible? And how to create the software to recognize the sound?
I know this is a lot and I don't expect a step by step solution. But maybe you got some hints to get me in the right direction?
If someone has a similar problem, I found a solution: First I had to choose between a mostly hardware solution and a mostly software solution. The hardware solution is to filter specific frequencies. This seems to be pretty hard using normal band-pass filters if you want narrow bands. There are also components that can do that, now I know of the NE567. But this component only reacts to one frequency and takes quite a lot of energy. To recognize a ringtone, more of these components are needes which means more power consumption. Additionally this solution is pretty unflexible.
So I went for the software solution. Now I have an Arduino Uno that gets an amplified electret microphone signal at an analog input pin. The data is collected and simultaneously analysed with an FFT algorithm. Then I check the dominant frequency if there is any and safe it in an array. Everytime a got a new data point I compare the array with the pattern of my ringtone and calculate a score for the match. If the score is big enough the ringtone is "found" and I can trigger my event.
I'm actually pretty pleased with the solution because it works quite well even with the phone some feet away from the microphone. I thought I need to put the microphone almost directly next to the phone to get good results, but I dont have to. It's still a little sensitive, because the sound volume shouldnt be too high or to low. But with the right volume settings it works with a quite big area when the phone is in the same room. It works even better with some space between microphone and phone, because the phones radiation from the call seems to disturb the circuit quite a lot. There is also the problem, that other noises block the ringtone recognition. I could compensate that with my algorithm, but I almost used up all resources of the Arduino, so I had to keep the algorithm simple. But in my case I dont have a noisy environment, so this is not a problem for me. Another pro is that my event was never triggered from another sound and it seems almost impossible that this could happen by accident.
So it is feasible and I think its actually a quite elegant solution. I also thought about a vibration detection or even directly using the vibration motor's signal but I have no control over the vibration function of that old phone. But I can chose the ringtone for every contact, so I only gave the "magic" ringtone to myself and so the event can only be triggered by myself. I only have to say, that writing the software was kind of hard with the Arduinos limitations. Because I need the data in real time I have limited time for the calculation. I had to limit the incomping data and therefore I can only listen to frequencies up to 10kHz. But the ringtone recognition is still possible and I think it was worth the effort. :)

Calculate Distance between Arduino BLE shield and Phone

Is it possible to calculate the distance between an arduino bluetooth shield (BLE Shield 2.1) and cell phone? More specifically, when the cell phone is within <5 feet of the shield, I want it to perform an action. I know BLE Beacon technology is able to do this in a general sense (immediate, near, far) so I'm wondering if it is possible?
Looking through stack overflow, I've found the following answers but they are all dated:
Answer 1
Answer 2
I know that ultrasonic frequency and laser sight are both options but I am trying to keep costs low so I would prefer a way in which the distance is calculated without the use of an additional tool.
Yes you can use it for distance calculation based on RSSI (received signal strength). You should implement iBeacon on Arduino side as stated in Eirik M answer. The most important thing in my opinion is that you have to be aware of BLE/iBeacon precision.
Please read carefully the following articles to determine if iBeacon technology fits to your needs. If so, implementation should be straight forward.
Broadcasting power and RSSI
The Beacon Experiments: Low-Energy Bluetooth Devices in Action
If BLE beacons are good enough for you, it should be fairly easy to implement a beacon for the Arduino shield. There are a few things you need to be aware of, such as output power and antenna characteristics. I recommend to read up on beacon technology to understand how it works.

Modifying Bluetooth Low Energy Beacon

I was wondering if it is possible to modify the contents of a BLE beacon to include extra information. If you insert an extra bit at the end you could potentially broadcast a boolean in one direction. Theoretically, if you modified your device to read the extra bit of information this would work. Given existing protocols though it sounds like this would be a lot of work. Is there something out there like this already?
For info, I'm working on the mbed platform where you can modify your own bluetooth beacon payload.
Yes, you can do this with the new AltBeacon specification. There is a one byte manufacturer reserved field which you can use for whatever you want (tied to your manufacturer ID).
There are reference implementations of the specification available for Linux to show you how it works, and there is no reason you cannot implement it on the mbed platform.

Sending iBeacon signal strength(for distance) to arduino board

I have a project using quadcopter(ARDrone).
And i want to controlled it unmanned indoor, using arduino board and iBeacons.
iBeacons send signal strength and floor info to arduino board(inside ARDrone connected main board) and iphone for searching location in building. Project is just controlling drone to go to iphone's location by itself. All calculation parts are managed in server.(triangulation etc.)
Here are the questions.
How can arduino board receive bluetooth 4.0 signal and send it to
server? 4.0 signal can be received by bluetooth 2.0 module?
Do i need to build bluetooth 4.0 receiver module? Or are there any other ways?
In server, complicated calculation will be managed by programs in c++ language but simple things are handled by web language. php? jsp? or other lang which one is better?
and some hints for this project.
I really need your help. thanks;)
3. The calculations to identify the location from the received signal strength and location of the Beacons are fairly straightforward, so should be fine in which ever language you prefer. You will need to use Trilateration, once you have converted RSSI (received signal strength) into a distance.
4. The major challenge you will have is getting accurate distances, iBeacons as you know use Bluetooth LE, what you may not know is that this operates on a Microwave wavelength and so is easily disrupted by humidity in the air, as well as other objects like people. This means that the RSSI readings will jump about a bit, a basic way to overcome this is to take an average over several readings, even so the distances found will be rather inaccurate in many circumstances. To get an idea of the kind of readings that you will get for distance without compensating for environmental factors have a look at my presentation: "Factors effecting positional accuracy of iBeacons", that is based on Estimote iBeacons, but should be relevant for other brands as well, but you will need to do your own experiments to work out the relative errors. I was seeing distance readings that were +-2M away from the real location.
My name is Wojtek Borowicz, I'm a community evangelist at Estimote.
To add to what Chris Thomson (BTW, cool slide deck!) - your first two question can basically be reduced to a single answer: you need your receiver to support Bluetooth Smart on both the hardware and software side. So yes, you need a Bluetooth 4.0 module to receive Bluetooth 4.0 signal and you also need a Bluetooth 4.0 stack for your receiver to be able to 'interpret' that signal.

can bluetooth low energy be used like nfc - say printed to an ID badge?

I'm using my iPhone to scan in a complex 2D barcode. Problem is, the iPhone camera doesn't do so well at very close distances (less than 3 inches).
I was wondering if there were a way I could affix a Bluetooth low energy "sticker" to a piece of paper. The idea being instead of using the camera to scan a 2D barcode, I could just put my iPhone near the paper and "scan" it.
I'm extremely new to Bluetooth tech, so it's quite possible that what I'm asking for is completely ridiculous. Please forgive me, if that is the case.
Unlike NFC, Bluetooth Low-Energy devices need a power source, so it's imposible to just "print" them. They need a BLE chip and a battery to operate. So while you could use BLE same way you use NFC (proximity-based actions), you won't be able to do it with just a sticker.
Register at bluetooth sig for manufactorer id. Then put manufacturer id in advertisement package 0xff with id (16 bit) followed by the data. You must be sure your length is correct or iOS can't decode it.
For NFC, your scanner must be pretty close to the tag. But BLE devices work within several tens of meters without any problem. This is like an active RFID chip.
Of course, you need a power source for it. But if you print this BLE tag to a piece of expensive equipment, the cost of the tag and the battery is not a problem. You can use a button cell battery to power the BLE tag up. Let is broadcast/advertise some info once a second. Of course, you have to add some security mechanism if you want to be away from any replay attacks.

Resources