Git Product home page Git Product logo

Comments (6)

ukBaz avatar ukBaz commented on May 23, 2024

This is a work-in-progress of what the understanding is of the Bluetooth profile required by Google Science Journal to be able to read Bluetooth (BLE) sensors

Service

Field Details
Name Science Journal
UUID 555a0001-0aaa-467a-9538-01f0652c74e8

Characteristic

Field Details
Name Value
UUID 555a0003-0aaa-467a-9538-01f0652c74e8
Flags Read, Notify
Fields utf8s
Summary Sends the value of the sensor as a string (Max 20 characters)

Characteristic

Field Details
Name Config
UUID 555a0010-0aaa-467a-9538-01f0652c74e8
Flags Write
Fields utf8s
Notes Send instructions to the sensor as a string (Max 20 characters) ?What instructions does the app send?

Characteristic

Field Details
Name Version
UUID 555a0011-0aaa-467a-9538-01f0652c74e8
Flags Read
Fields ?unit8?
Notes ?It is unclear to me what this should be set to but it looks like we might be on version 1 and it might be optional?

from python-bluezero.

ukBaz avatar ukBaz commented on May 23, 2024

I've been looking around the app files. The heavy lifting for the Bluetooth sensors seems to happen in the following file:
https://github.com/google/science-journal/blob/master/OpenScienceJournal/whistlepunk_library/src/main/java/com/google/android/apps/forscience/whistlepunk/sensors/BluetoothSensor.java#L204

The above link is to a comment which states:
For Value (UUID:555a0003), it's a protobuf
Which I think is referring to Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data called Protocol Buffers

It is looking like the value is made up of a timestamp and value although the exact details are still a mystery at the time of writing.

from python-bluezero.

ukBaz avatar ukBaz commented on May 23, 2024

I asked a question in the Google Science Journal Support Forum about the Bluetooth Profile required and they have come back with "We do not have a BLE protocol layer that we are yet ready to support long-term"

The solution is to build an Android application package (APK) that interfaces between Science Journal and the Bluetooth as detailed here:
https://github.com/google/science-journal/blob/master/api/ScienceJournalApi/README-api.md

Writing the APK seems outside the scope of this project so I'm closing this

from python-bluezero.

ukBaz avatar ukBaz commented on May 23, 2024

Just wanted to capture here for future reference that the Bluetooth SIG has an adopted GATT specification for Environmental Sensing Profile and Environmental Sensing Service.
More information can be found at: https://www.bluetooth.com/specifications/adopted-specifications
This PDF and XML is probably the most useful

from python-bluezero.

Geoffysicist avatar Geoffysicist commented on May 23, 2024

Did you get any further with this? Now that the science journal has gone over to arduino and they can link to the arduino nano sense, it should be possible to pursue this. I want to make a physics sensor based on the adafruit feather sense but would prefer to work in circuitpython because arduino is a pain.

from python-bluezero.

ukBaz avatar ukBaz commented on May 23, 2024

This idea got abandoned previously because there was not a documented API accessible from the Raspberry Pi. I believe this is still the situation. If you know of some documentation then please share and I can take a look.

from python-bluezero.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.