Giter Site home page Giter Site logo

oximeterf7bridge's Introduction

Oximeter F7 BLE Bridge

connects an ESP32 to a BLE F7 Oximeter and reports SpO2, PI and PR on serial console, on a web page and to an Influx database. This way you dont need to stay close to the device all the time to monitor the health data.

F7 and Atom
F7 oximeter and M5 atom lite at work

Hardware

No tinkering required at all. The M5 Atom lite ESP32 pico board has all thats needed on board: WLAN, BLE, a button and a Neopixel. If you use another ESP32, you will need to adjust the neopixel and button pins in the source (if needed). The oximeter is the one that runs with the Andoid app Sapiential SpO2 and the iOS app Wearfit BO. It identifies itself via bluetooth as F7.

Software

  • All network data (WLAN, InfluxDB, optional Syslog) must be maintained in source - no online configuration yet.
  • Meant to build and upload with PlatformIO: pio run -t upload --upload-port /dev/ttyUSB0

After first upload of firmware via USB port serial OTA update of the firmware is possible via http://oximeter-??????/update

F7 web page
Example web page of the ESP32

Features

  • Get oximeter data on serial port along with some runtime information
  • Use ESP32s own local webpage http://oximeter-??????/ to see oximeter data or to OTA upload a firmware update
  • Pull the data as json string from http://oximeter-??????/json, e.g. to feed it into domoticz or another home automation system
  • Scans for BLE advertisement packages an F7 oximeter sends at startup and connects to it
  • Regularly polls data from the oximeter and forwards the data to an influx db 'f7'
    • Just create the database on the server configured in source, e.g. with the CLI command 'influx' enter 'create databse f7'
    • The measurement table 'health' is automatically created and can be used to e.g. feed a grafana dashboard
  • Publishes the status via the Neopixel colors:
    • Single white blink at startup
    • Cyan blinking if not connected to WLAN
    • Violet blinking if posting to Influx database fails
    • Off while scanning for oximeter advertisements
    • Solid green to red if connected to the oximeter. Green means healthy normal data and red means very unhealthy data
    • The solid color is overlayed by blinking light green to light red, depending on a not optimal to very bad perfusion index
  • Neopixel status display can be toggled with the button

F7 on grafana dashboard
Example grafana dashboard using the influx data

TODO

  • How to reconnect to an oximeter without the need to restart it
    • Android app of F7 can reconnect a lost BLE connection (closed app) without restarting the oximeter.
  • Use WlanManager to setup connection
  • Make all parameters online configurable

Links

I am not related to these shops, it is just to show what I use and know it is working. Both, M5 Atom Lite and Oximeter F7, cost only about 10โ‚ฌ each.

oximeterf7bridge's People

Contributors

joba-1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

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.