I have an arduino robot and I wish to track its location on an indoor map on my android phone. I can create an indoor map and upload it to google maps. Depending on its location in the building the android would issue commands to the arduino robot to navigate to a specific area in the building or carry out some other task. How can I track its location at all times inside a building? If I set up beacons through out the building, I can make the arduino device advertise itself to these beacons.....then I would somehow need the beacons to communicate the arduino device location back to the android phone. Can someone tell me how to do this?
Building something that does this with iBeacons is not impossible, but it is a very advanced and complex project. Beacons would only be a very small building block of a complex system that does this.
Two basic approaches:
Place beacon transmitters all around the room, then write beacon scanning software on the Arduino that sends info to a web service about the beacon signals detected. The web service would crunch the numbers and calculate the position.
You could turn the Arduino into a beacon transmitter and place beacon scanners around the room. The scanners would report the signals from the Arduino transmitter to the sever, which would again crunch the numbers and calculate the position.
Either way, this is a very complex system to build. It is not something where a solution can provided in this forum.
Related
I'm actually working for a startup I'm building with two other founders. On the side I would like to develop a quick prototype to be able to deepdive into a subject I can use on my project : beacons.
Here is what I want to achieve : I want to be able to use a device as an emitter (using bluetooth, BLE, or wifi) and the other one to be able to know when it enters the first one range. I need that to be able to do indoor localization (just a check in system, not to know exactly where people are in that specific location).
I'm used to code mobile application with Ionic and I'm more a Javascript developer. I saw that there is already something which fit to my needs : Dazting which transform every device mobile as "a beacon" with either bluetooth or Wifi. Problem, I want to do it on my own but to be honest I don't really now how they manage to do that with Wifi. I know that there are some libraries to emit with BLE but what about bluetooth ?
Does it mean I'll have to code it with native code ?
This is what I want to achieve :
Coding an hybrid app (will loose less time and one app for every
platform)
Transforming the mobile device into an emitter : with bluetooth or
wifi
Be able to know the distance between a device which will emit and a
one that will receive the signal
I don't want to go with beacons : I'm not going to use macro-location and buying beacons for my project at the start is not something we would like to do.
Any ideas or suggestions on how did Datzing manage to reach that goal ?
Thanks in advance.
Datzing relies on emission of Bluetooth Classic, Bluetooth LE and WiFi packets from a mobile device that is made discoverable, either programmatically or through manual selection in settings. The unique MAC address or SSID of the device can then be used to tie the detected transmission to a registered "Beacon" on the Datzing system. Basically it just registers the unique identifier associated with a Bluetooth or WiFi transmission with the Datzing servers so they can have meaning.
Using this technology to transmit on an iOS device is severely limited due to operating system restrictions. Users essentially have to manually go to settings screens to start the emissions. Android devices are much more flexible if you have a native app granted the proper permissions.
On the detection side, iOS is also much more limited than Android due to the operating system blocking access to raw MAC addresses of bluetooth devices and preventing detecting SSIDs of WiFi access points unless the network is connected. As of Android 6.0, access to the raw MAC address is also restricted, making such a system work less well with Bluetooth on newer Android devices.
On both platforms, iOS and Android, the ability to use these techniques to the extent they are allowed by the operating system are possible with native code. Doing so with Ionic or Cordova would require cobbling together a number of plugins (if they even exist) to bridge to the native features to access WiFi SSIDs and do Bluetooth discovery and scanning. This is unlikely to be a quick protoype.
Word of caution: It is always a good idea to try out a system like Datzing before trying to reproduce it yourself, as limitations often cause technologies not to live up to the claims of the marketing materials.
Is it possible for an iOS/Android app to transmit data to a remote server when it picks up an iBeacon signal. The app will run in the background.
Lets assume the iBeacon is equipped with an internet connection as well. Will the beacon be able to pick up the data transmitted from the smartphone app?
What I'm trying to achieve is this:
An IoT device works as an iBeacon (and motion sensor)
The IoT device picks up motion via the sensor
The IoT contacts a remote server to find out if a given smartphone is within close range of it.
The IoT performs some sort of operation based upon if the smartphone is close or not.
Would this be possible?
Yes and No.
Yes, an iOS/Android app in the background can transmit data to a remote server when it detects an iBeacon signal. This is a very common use case, and I have built several apps that do this.
No, an iBeacon cannot send data to a server for two reasons:
An iBeacon is a transmit only device. It does nothing more than regularly send out an advertisement packet with a unique identifier. By design, it does not listen or receive. While you could certainly build some other custom Bluetooth LE device that does this, it would not be a standard iBeacon.
Typically iBeacon devices do not have internet connections.
What you describe is certainly possible if you build a general purpose computer with an internet connection that also sends out an iBeacon transmission as a small part of what it does. I have built such systems out of Raspberry Pi computers, and stationary Android/iOS devices. But you could also do this with a laptop, desktop, or smaller embedded device.
The key distinction in being able to do this is recognizing that you can't just buy an off-the-shelf iBeacon and make this work. You have to build your own IoT device based on a small computer with an internet connection that is augmented to transmit an iBeacon advertisement.
I have a project where I have to track the baskets of a supermarket, I would like to know if it possible to track those baskets using Bluetooth Technology. and show them in a map in real time using an android app.
Range of bluetooth is very small. So if the distance is big bluetooth will not be an appropriate solution.
What you can do is find and program some hardware, device which have location sensor (like gps) and wifi connectivity in it, to transmit its location to the server using wifi or on lan hosted server. Then you can generate the realtime map.
Hardware for Indoor Positioning
https://www.infsoft.com/technology/hardware
Hi new to the form always use it but never needed to ask anything, i just need advice on the following. thanks in advance!
Is it possible to connect a Bluetooth beacon to a visual studio c# application and use a android phone to send a message to the beacon where the application updates a database? many devices will be sending messages to the same beacon (my project idea). I know the android and messaging part will work but not sure if i can connect the beacon to the VS desktop c# app.
And this is the beacon i have been looking at, need something with a good range. (contacted manufacture about connecting it as they just show an app to configure. no reply lol)
https://accent-systems.com/product/ibks-105/
Open to suggestions.
Sorry, what you are describing won't work. Bluetooth beacons are essentially transmit-only devices. You can't send messages to them. All beacons do is transmit a unique identifier.
It's unclear what your project is trying to accomplish here, but you can use web services as an intermediary for mobile devices to communicate with a C# Desktop app. You can trigger this communication to happen when the mobile devices detect the bluetooth beacons.
I am looking for a way to transmit data when two phones are close by. This needs to be cross platform so I cannot use NFC or iBeacon. I plan on using allJoyn to send information. I would only like to send data to others that are within a few feet of me.
Is there any way that I could get an accurate reading of distance on other phones? Or can I get an accurate distance on a master device that could be placed in the room?
Shot in the dark answer:
If both devices are on the same wireless WiFi network (same subnet), then any devices on same network are "close enough".
When on the celluar network (or when only one device is on Wifi), use the Location APIs of the platform to get GPS coordinates. Send your coordinates up to a web server that keeps track of the Latitude/Longitude coordinates of each device. The web service also allows the devices to poll for nearby devices (where the distance equation can be computed on the server).
So the best way that I found to do this is to use the accelerometer to tell when two devices bump then I get the bluetooth signal strength of the nearest device, if that falls into a certain value then they are touching.