i'm learning about beacons,i have some days looking for information and i would like to know if this scenario can be possible.
i'm talking about an local server (local pc, maybe) sending data/information through beacons to android or ios devices. its possible use this kind of services (marketing messages, publicity, and others) without internet? With an local area network, maybe?
iBeacon / generic beacons do not require Internet to work. With suitable beacon layout (Android), or beacon UUID, the device can detect the beacon proximity (require Bluetooth & Wi-Fi to turn on). With the proximity event of beacon, you can trigger other methods like communicating with local servers, as you mentioned in the question.
Related
Most electronic home goods today are able to be setup through a webpage to connect the device to a home network. Usually there is some sort of bluetooth or wifi direct finding mode to access the device and then using a webpage or app the device is given the SSID/password for a wifi network and then you're off to the races. What is that tech called? I would like to replicate the setup experience with a generic IoT device running linux. I just don't know what that process is called to start digging into how to do it.
Bluetooth and Wifi-direct specifications are (consumer-usage-wise) public-domain knowledge, just setup a temporary open server and accept any connection after each hard-reset, and do what you have to do like here (BT) and here (Wifi-direct). There are other proprietary technology like TI CC3000, which usually relates to specific hardware solutions.
I'm currently study BLE Beacon. I know that with Google Beacon API and its app, it is possible to know when the beacon communicates with my mobile phone, so I can design different notifications based on the proximity. But in my case, I need to know the proximity between a wearable beacon to a stable beacon. Is that possible at all?
Two challenges to doing this:
Google Beacon APIs do not provide proximity information beyond a beacon being visible at all (regardless of distance) to a mobile phone.
Beacons are generally speaking one way transmitters. You cannot use a beacon to listen for another beacon.
To make something like this work you need one of the two devices (either fixed or mobile) to be a beacon scanner, not a beacon. You could make a beacon scanner out of a fixed Raspberry Pi 3 which would detect the beacon wearables and calculate the distance to them. This is an approach I have helped multiple clients implement.
We can make iOS devices act as a iBeacon transmitter and We can locate nearby iBeacons if we know their Proximity UUID.
With Google's Proximity Beacon API, It's possible to configure and register real Beacon hardware, and we can locate them with Nearby Messaging API.
But is it possible to make iOS devices to broadcast as Eddystone Beacons ? And it needs to be discoverable by apps that scan Eddystone beacons.
Thanks in advance.
Unfortunately, this is not possible. While iOS devices can advertise Bluetooth LE service advertisements(which are the advertisement type used by Eddystone) using CoreBluetooth APIs, you cannot attach the necessary data. This is because the CBAdvertisementDataServiceDataKey that associates service data to an advertisement is read-only on iOS. You can't set the data.
So while you want to make the iOS device advertise something like this to transmit Eddystone-UID:
0201060303aafe1516aafe00e72f234454f4911ba9ffa6000000000001
You end up advertising something like this:
0201060303aafe0316aafe
This leaves off the Eddystone-UID type code (00), the calibrated power (e7), the namespace identifier (2f234454f4911ba9ffa6) and the instance identifier (000000000001). As a result, it won't be recognized as an Eddystone-UID frame.
I want to build some kind of two-way bluetooth connection on Raspberry-pi which actually works as beacon. Based on RadiusNetworks tutorial (How to Make an iBeacon Out of a Raspberry Pi http://developer.radiusnetworks.com/2013/10/09/how-to-make-an-ibeacon-out-of-a-raspberry-pi.html) I've built beacon on my Raspberry-pi, but it's working in "advertise and not-connectable" mode (which is connected with problem described here: Raspberry Pi iBeacon connection timing out).
What I want to achieve is beacon device, which works in advertise mode and also allows to receive some events from other device (i.e. iPhone). When iPhone discovers Raspberry-pi beacon I want it to send some data to Raspberry-pi to trigger some action. I know that in the simplest way my iPhone should send data via network to raspberry while it enters to the beacon region, but unfortunatelly my solution has to work in offline mode, so I'm looking for some kind of direct (and possibly fast) connection. I think that PayPal beacon is a good example of my needs (as it is decribed here: https://devblog.paypal.com/how-does-paypal-beacon-work/ their device works as gate for communication user smartphone with PayPal services).
I'm complete beginner in BLE topics, so I would be grateful for any hints where I can start exploration or how to properly ask Google for any good answers in this topic.
For complex interaction, you need to learn how to build a connectable Bluetooth service with BlueZ, which is the Linux open source Bluetooth stack. Once you have this service, you can write iOS code using CoreBluetooth to connect to this service when the beacon is nearby.
Unfortunately, I do not know of a good tutorial for building services on BlueZ. The BlueZ code is open source at least, so the code is a good place to start looking:
http://www.bluez.org/development/
I want to connect a robot, via Bluetooth, with an iPhone (4S or more) via Bluetooth low energy (BLE) 4.0. This robots require to send all the notifications of the iPhone to the device.
For example: If the iPhone gets a new email, I must send the event to the robot, and it will blink an LED. Stop.
I want to know if the iOS Bluetooth APIs of the Bluetooth framework can do this, or better, can share the Internet connection or whatever that can do this work.
I'm asking this, because I have heard that the APIs have some restrictions.
PS: ANY solution that can do this is very accepted (no Wi-Fi connection solution).
Bluetooth LE would be the way you want to go here, because standard Bluetooth requires your device to be MFi-compliant. Standard Wi-Fi could also work, if you're able to require the presence of the supporting network.
As of iOS 6.0, you can set up your iPhone as a Bluetooth LE peripheral, which would allow it to send notifications to your device, if it is configured in a central role. That would be a pretty power-efficient way of updating your device with new data.
However, there's one large hurdle to doing what you want here. iOS applications have no access to system-wide notifications, so you won't be able to listen for incoming emails or other notifications like that. You'll be able to send data to your device via Bluetooth LE, but you're not going to know when emails come in so that you could send that to your device.
With bluetooth 4, you could control a robot, as well as create a "notification" bot. It could be done quite easily. However as mentioned, you can't access system wide notifications in iOS.
However, you could use an external solution to listen for system notifications and then an API to listen a singular encoded notification and have your app listen to that.
One such system is https://ifttt.com (no affiliation)
There are also some great plug and play BLE options for rapid prototyping.
You can do it. A simple solution would be let a phone check your email periodically. Don't rely or try to use external Apple applications to do that, but use services provided by your mail.
In the case of Gmail, try to go to https://mail.google.com/mail/feed/atom. If you are logged in your Gmail, you will see the unread mail in XML format. The way you would login using a URL is: https://username:password#mail.google.com/mail/feed/atom
So what you can do is periodically parse the output and when <fullcount>0</fullcount> value changes call your robot service via BLE which should act as a callback for this specific event.