I hope this is not too stupid a question, but I am trying to use SensorTags in my classroom, and it would be important for me if I could have students select a specific sensor tag during an experiment. I have seen the selection page in the TI SensorTag app for iOS, so it must be possible, but so far I haven't been able to find any documentation on how to do that. Any hints? I think the SensorTags would be a terrific tool for the K12 science classroom, but the students need a way to deal just with one sensor.
Any help would be appreciated!
Select one of multiple active sensor tags
Re: Select one of multiple active sensor tags
Hi, thanks for a very relevant question, and sorry for the slow response.
One way is to connect to the closest SensorTag (the one with strongest RSSI value).
Here is some code that you could adopt for this purpose:
https://github.com/divineprog/evo-demos ... index.html
Another way is to display a list of the SensorTags found during scanning. Problem is how to identify which is which. On Android you get persistent addresses, but not on iOS which hides the id (the MAC address) and assigns a temporary id.
Perhaps there is some data in the advertisementData record that can be used to identify devices?
The field advertisementData is just a JavaScript dictionary (object) with key/value pairs.
Here is a code-snippet that prints the advertisement data when scanning for devices:
It is useful to redirect console.log to hyper.log in the beginning of the program. Like this:
This is done in most example apps in index.html. If you want both hyper.log and console.log you can do something like this:
Does some of the above help in your case?
Regards, Mikael
One way is to connect to the closest SensorTag (the one with strongest RSSI value).
Here is some code that you could adopt for this purpose:
https://github.com/divineprog/evo-demos ... index.html
Another way is to display a list of the SensorTags found during scanning. Problem is how to identify which is which. On Android you get persistent addresses, but not on iOS which hides the id (the MAC address) and assigns a temporary id.
Perhaps there is some data in the advertisementData record that can be used to identify devices?
The field advertisementData is just a JavaScript dictionary (object) with key/value pairs.
Here is a code-snippet that prints the advertisement data when scanning for devices:
Code: Select all
function init()
{
console.log('Scanning for devices...');
evothings.easyble.reportDeviceOnce(true);
evothings.easyble.startScan(deviceDetected, scanError);
}
function deviceDetected(device)
{
console.log('Device found: ' + device.name + ' RSSI: ' + device.rssi);
evothings.easyble.printObject(device.advertisementData, console.log);
}
It is useful to redirect console.log to hyper.log in the beginning of the program. Like this:
Code: Select all
if (window.hyper && window.hyper.log) { console.log = hyper.log; }
This is done in most example apps in index.html. If you want both hyper.log and console.log you can do something like this:
Code: Select all
;(function() {
var consoleLog = console.log;
function log(message) {
consoleLog(message);
hyper.log(message);
}
if (window.hyper && window.hyper.log) { console.log = log; }
})();
Does some of the above help in your case?
Regards, Mikael
Who is online
Users browsing this forum: No registered users and 17 guests