-
Notifications
You must be signed in to change notification settings - Fork 19
Home
Welcome to the DD-Guard Wiki!
This space is dedicated to the coordination of the project activities. It should help anyone who wants to contribute getting started quickly.
DD-Guard is currently a prototype which works fine for me and my family. Some effort is needed to make it available for non technically skilled people who just want to use this system to monitor the diabetes data of a person they care for.
The gateway device I am currently using is an RPi3 which is powered from a wall plug power supply, which means it is not mobile. The next step is running the gateway on the smaller RPi Zero W and trying to power it from a power bank (or similar). This way the gateway can be carried along in the backpack by the T1D. The problem to solve when moving around is the Internet connection to the Cloud service which could be provided by the Wifi of a mobile phone in hot spot mode.
The gateway runs a Python application which reads the sensor and pump data from the 670G and forwards it to the Blynk cloud service. This is a very easy way to get the data to display on a Smartphone app. Having this working at the moment, more system integrations are planned.
Also the initial version of the Nightscout uploader is implemented, so people who want to view real time data via their personal Nightscout cloud server can do so.
I am also looking into an uploader option to Tidepool which is an excellent cloud service for diabetes data management.
Also the Pushover service could be integrated quite easily. This would allow to send notifications of critical events to the smartphone.
All these services need some configuration (e.g access tokens and web URL). This is currently done with an ini style configuration file which is edited manually on the gateway. To make this more user friendly a nice and intuitive configuration web interface is needed.
In order to make this web interface accessible we also need a way to connect to the gateway easily from the smartphone or PC. There are a few ways to do this. The solution I prefer is running the gateway in Wifi access point mode initially until the configuration is complete, so the user can reach the gateway connecting to the Wifi network it provides. The initial configuration will include the credential for the local Wifi so the gateway can connect to it as client device subsequently.
Currently the Blynk server is used as cloud service to forward data from the gateway to the smartphone app. This is an open source IoT platform. There is a public instance running at blynk-cloud.com which is ready to use so no setup is needed. However the complete source code and installation instructions are provided on Github so it would also be possible to run a private instance of this service.
It provides a very easy to use REST API and Websocket interface which is used both to send data from the gateway and to receive this data on the app. The API doc is is publicly available.
At the moment I don't see any reason to change the cloud service.
Blynk also provides a Smartphone app both for iOS and Android which can be used free of charge to build a working prototype app which displays the data sent from the gateway. It is a "point and click" system, very easy to use. While this is really nice get quick results, it does not allow you to publish this app on the official stores, unless you pay for a (very expensive) subscription plan.
So we need to write a new app from scratch, which can receive the data from the Blynk cloud service through the REST API or Websocket interface. The app should be open source and be published on the official stores, so the users can easily install it avoiding side loading or rooting the smartphone.
I need particular help in this area as I have no experience with smartphone app development.
As an optional user interface a simple Web page (Javascript) could be implemented, leveraging on the Blynk API. This would allow to see the data sent from the gateway not only on the smartphone but also in a Webbrowser window on a PC.