Comments (15)
Very cool! Maybe you can make a repo for this and I can link to it? That way people could fork / PR.
from find3.
@DatanoiseTV Awesome, nice job! I can't wait to try it.
from find3.
Was passive scanning ever added? I'd love to setup a few scanners around the house to use either phones or ble beacons for different purposes (perhaps a ble beacon in the car to detect when it's parked in the garage)
from find3.
@schollz There you go - https://github.com/DatanoiseTV/esp-find3-client
from find3.
Thanks @DatanoiseTV ! Updated in the docs. I'm excited to try out your code!
from find3.
Thanks @schollz. I have cleaned up the code a lot and now it works perfectly. It syncs time via NTP and uses ArduinoJson to properly serialise the data. Can you please point me how to submit bluetooth scan results in /track and /learn then I will add BLE scanning to ESP32.
from find3.
Cool! I was just thinking about doing that too. Here's the API reference: https://www.internalpositioning.com/doc/api.md#sensor. You can ignore GPS and you can ignore location if you are just doing tracking. Your data will basically just need to look like:
{
"d":"DEVICE",
"f":"FAMILY",
"t":1520424248897,
"s":{
"bluetooth":{
"20:25:64:b7:91:42":-72,
"20:25:64:b8:06:38":-81,
},
"wifi":{
"20:25:64:b7:91:40":-73,
"70:4d:7b:11:3a:c8":-81,
"88:d7:f6:a7:2a:4c":-39,
"8c:0f:6f:e7:2b:78":-42,
"8c:0f:6f:e7:2b:80":-43,
"92:0f:6f:e7:2b:80":-43,
"96:0f:6f:e7:2b:78":-39,
"9e:0f:6f:e7:2b:80":-43,
"ac:9e:17:7f:38:a4":-55,
"dc:fe:07:79:aa:c0":-90,
"dc:fe:07:79:aa:c3":-89
}
}
}
Submit this via POST
to /data
. If you want to do learning, you use the exact same JSON but also add "l":"LOCATION"
to specify the location.
from find3.
@schollz Is there any possibility to submit BLE results to /learn and /track as well? ArduinoJson seems to have trouble with nested arrays :(
from find3.
@schollz BLE support and other goodies added!
from find3.
@DatanoiseTV cool! Did you get over the problem with nested arrays?
from find3.
@schollz Yes. All sorted out and BLE added. Using the /data POST endpoint now!
from find3.
@schollz I am able to now capture management frames / implement monitor mode on ESP32 for passive scanning. Do I just need the BSSIDs for passive scanning or also the RSSI? What is the request for /passive? Can't see it in the docs.
from find3.
@DatanoiseTV Wow!! I didn't know you could do that with an ESP32! That's so cool. You need both the BSSIDs and the RSSI for passive scanning. Although, if you can't get RSSI maybe we could still use it. For passive data you just do POST /passive
with similar JSON as before:
{
"d":"DEVICE",
"f":"FAMILY",
"t":1520424248897,
"s":{
"bluetooth":{
"20:25:64:b7:91:42":-72,
"20:25:64:b8:06:38":-81,
},
"wifi":{
"20:25:64:b7:91:40":-73,
"70:4d:7b:11:3a:c8":-81,
"88:d7:f6:a7:2a:4c":-39,
"8c:0f:6f:e7:2b:78":-42,
"8c:0f:6f:e7:2b:80":-43,
"92:0f:6f:e7:2b:80":-43,
"96:0f:6f:e7:2b:78":-39,
"9e:0f:6f:e7:2b:80":-43,
"ac:9e:17:7f:38:a4":-55,
"dc:fe:07:79:aa:c0":-90,
"dc:fe:07:79:aa:c3":-89
}
}
}
When this data enters the server, it will automatically collect these and then "reverse" them (so that the DEVICE is actually the sensor and the sensors are actually the devices).
Note also, the bluetooth data is just scanned as before because bluetooth data is device specific and not router-specific.
from find3.
I will look how we can get RSSI in a passive scan.
By the way: Are the "bluetooth" and "wifi" just keywords? Can any extra tag be used? Could we include other sources like LoRa here, as long as it uses a 6 octet MAC address?
from find3.
@DatanoiseTV do you have any rough numbers of what you could get in power usage/battery life running this on esp with sleep?
from find3.
Related Issues (20)
- server crashing on own server install HOT 3
- [Docker] No EntryPoint defined in Dockerfile HOT 2
- sum of percentage HOT 1
- internalpositioning.com is unreachable HOT 3
- Broken link on GitHub about section HOT 1
- couldnt find getting magnetic data in android app find3 HOT 1
- single quote in device name breaks sql queries HOT 1
- How often does a push notifications to MQTT happen? HOT 1
- broken link in repo about tab HOT 1
- Unable to see any raw data
- Suggestion / Improvement HOT 2
- Why ? HOT 1
- Using multiple raspberry pi's to monitor the WiFi
- Feature request: Openhab compability
- Google Play, cannot find FIND3 HOT 2
- Markupsafe breaks with latest version of setuptools
- FIND3 scanner app getting crashed
- Location Error
- Need information
- find3 like a Wifi Heat Map
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from find3.