Updated docs to 0.9

This commit is contained in:
Magnus Persson 2022-03-12 10:37:02 +01:00
parent 7cafedd9bf
commit aa4e3b5e8d
8 changed files with 122 additions and 17 deletions

View File

@ -12,6 +12,7 @@ Retrive the current configuation of the device via an HTTP GET command. Payload
* ``temp-format`` can be either ``C`` or ``F`` * ``temp-format`` can be either ``C`` or ``F``
* ``gravity-format`` is always ``G`` (plato is not yet supported) * ``gravity-format`` is always ``G`` (plato is not yet supported)
* ``ble`` is used to enable ble data transmission (only on esp32) simulating a tilt. Valid color names are; red, green, black, purple, orange, blue, yellow, pink
Other parameters are the same as in the configuration guide. Other parameters are the same as in the configuration guide.
@ -22,6 +23,7 @@ Other parameters are the same as in the configuration guide.
"id": "ee1bfc", "id": "ee1bfc",
"ota-url": "http://192.168.1.50:80/firmware/gravmon/", "ota-url": "http://192.168.1.50:80/firmware/gravmon/",
"temp-format": "C", "temp-format": "C",
"ble": "color",
"brewfather-push": "http://log.brewfather.net/stream?id=Qwerty", "brewfather-push": "http://log.brewfather.net/stream?id=Qwerty",
"token": "token", "token": "token",
"http-push": "http://192.168.1.50:9090/api/v1/Qwerty/telemetry", "http-push": "http://192.168.1.50:9090/api/v1/Qwerty/telemetry",
@ -53,9 +55,22 @@ Other parameters are the same as in the configuration guide.
"gy": -6, "gy": -6,
"gz": 4 "gz": 4
}, },
"formula-calculation-data": {
"a1":25,
"a2":30,
"a3":35,
"a4":40,
"a5":45,
"g1":1,
"g2":1.01,
"g3":1.02,
"g4":1.03,
"g5":1.04
},
"angle": 90.93, "angle": 90.93,
"gravity": 1.105, "gravity": 1.105,
"battery": 0.04, "battery": 0.04,
"platform": "esp8266",
"runtime-average": 3.12 "runtime-average": 3.12
} }
@ -65,6 +80,8 @@ GET: /api/device
Retrive the current device settings via an HTTP GET command. Payload is in JSON format. Retrive the current device settings via an HTTP GET command. Payload is in JSON format.
* ``platform`` can be either ``esp8266`` or ``esp32``
.. code-block:: json .. code-block:: json
{ {
@ -72,6 +89,7 @@ Retrive the current device settings via an HTTP GET command. Payload is in JSON
"app-ver": "0.0.0", "app-ver": "0.0.0",
"id": "ee1bfc", "id": "ee1bfc",
"mdns": "gravmon", "mdns": "gravmon",
"platform": "esp8266",
"runtime-average": 3.12 "runtime-average": 3.12
} }
@ -128,8 +146,20 @@ Retrive the data used for formula calculation data via an HTTP GET command. Payl
} }
GET: /api/clearwifi
===================
Will reset the wifi settings, leaving the rest unused.
For this to work you will need to supply the device id as a parameter in the request:
::
http://mygravity.local/api/clearwifi?id=<mydeviceid>
GET: /api/factory GET: /api/factory
================ =================
Will do a reset to factory defaults and delete all data except wifi settings. Will do a reset to factory defaults and delete all data except wifi settings.
@ -140,6 +170,27 @@ For this to work you will need to supply the device id as a parameter in the req
http://mygravity.local/api/factory?id=<mydeviceid> http://mygravity.local/api/factory?id=<mydeviceid>
GET: /api/test/push
===================
Trigger a push on one of the targets, used to validate the configuration from the UI.
Requires to parameters to function /api/test/push?id=<deviceid>&format=<format>
* ``format`` defines which endpoint to test, valid values are; http-1, http-2, brewfather, influxdb, mqtt
The response is an json message with the following values.
* ``code`` is the return code from the push function, typically http responsecode or error code from mqtt library.
.. code-block:: json
{
"success": false,
"enabled": true,
"code": -3
}
POST: /api/config/device POST: /api/config/device
======================== ========================
@ -222,6 +273,7 @@ Payload should be in standard format used for posting a form. Such as as: `id=va
id=ee1bfc id=ee1bfc
voltage-factor=1.59 voltage-factor=1.59
temp-adjustment=0 temp-adjustment=0
ble=red
gyro-temp=off gyro-temp=off
ota-url=http://192.168.1.50/firmware/gravmon/ ota-url=http://192.168.1.50/firmware/gravmon/
@ -291,7 +343,7 @@ The requests package converts the json to standard form post format.
"http-push2": "", "http-push2": "",
"http-push-h1": "", "http-push-h1": "",
"http-push-h2": "", "http-push-h2": "",
"http-push2-h1": "", "http-push2-h1": ""
"http-push2-h2": "", "http-push2-h2": "",
"brewfather-push": "", "brewfather-push": "",
"influxdb2-push": "", "influxdb2-push": "",
@ -318,6 +370,7 @@ The requests package converts the json to standard form post format.
"voltage-factor": 1.59, # Default value for voltage calculation "voltage-factor": 1.59, # Default value for voltage calculation
"temp-adjustment": 0, # If temp sensor needs to be corrected "temp-adjustment": 0, # If temp sensor needs to be corrected
"gyro-temp": "on", # Use the temp sensor in the gyro instead (on/off) "gyro-temp": "on", # Use the temp sensor in the gyro instead (on/off)
"ble": "red", # Enable ble on esp32
"ota-url": "" # if the device should seach for a new update when active "ota-url": "" # if the device should seach for a new update when active
} }
set_config( url, json ) set_config( url, json )

View File

@ -22,7 +22,7 @@ copyright = '2021-2022, Magnus Persson'
author = 'Magnus Persson' author = 'Magnus Persson'
# The full version, including alpha/beta/rc tags # The full version, including alpha/beta/rc tags
release = '0.8.0' release = '0.9.0'
# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------

View File

@ -59,6 +59,10 @@ URL: (http://gravmon.local/device)
This is unique identifier for the device (ESP8266 id), this is required when using the API as an API Key to safeguard This is unique identifier for the device (ESP8266 id), this is required when using the API as an API Key to safeguard
against faulty requests. This is the ESP8266 chip ID, so it should be unique. against faulty requests. This is the ESP8266 chip ID, so it should be unique.
* **Platform:**
Used to show what chip this build is for, it can be esp8266 or esp32. Some features are only available on an ESP32 platform.
* **Average runtime:** * **Average runtime:**
This shows the average time a gravity measurement takes. Under optimal setting this should be This shows the average time a gravity measurement takes. Under optimal setting this should be
@ -257,9 +261,13 @@ Hardware Settings
device is activated, since the gyro should be cool this is reflecting the surronding temperature. After it has device is activated, since the gyro should be cool this is reflecting the surronding temperature. After it has
been running the value would be totally off. been running the value would be totally off.
* **Bluetooth: (Only ESP32)**
If the build is using an ESP32 then you can send data over BLE, simulating a Tilt device. Choose the color that you want the device to simulate.
* **OTA URL:** * **OTA URL:**
Should point to a URL where the firmware.bin file + version.json file are located. Should point to a URL where the firmware.bin file + version.json file are located. For an ESP32 target the firmware should be named firmware32.bin.
For the OTA to work, place the following files (version.json + firmware.bin) at the location that you pointed out in OTA URL. If the version number in the json file is newer than in the For the OTA to work, place the following files (version.json + firmware.bin) at the location that you pointed out in OTA URL. If the version number in the json file is newer than in the
code the update will be done during startup. code the update will be done during startup.

View File

@ -0,0 +1,20 @@
.. _hardware:
Hardware
########
There are lots of resouces out there on how to build the hardware for an iSpindle so I will not go into details on that part. Here are two of my builds using the iSpindle PCB v4.
.. image:: images/ispindel.jpg
:width: 500
:alt: Builds of iSpindel
It's possible to use this PCB and mount an ESP32 on top of that. It must be an pin compatible ESP32 and the one I used was called *ESP32 d1 mini*. Since this is the same width as the PCB you need to
mount it really close to the PCB in order for it to fit in the PET tube/container. I also had to smooth the edge of the ESP32 in order for it to fit.
I would suggest that you try how it fits into the PET tube before soldering it to the PCB. Make sure that the battery is attached since this will be a really tight fit.
.. image:: images/esp32.jpg
:width: 500
:alt: Mounting esp32

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 MiB

View File

@ -7,7 +7,7 @@ Welcome to GravityMon's documentation!
###################################### ######################################
.. note:: .. note::
This documentation reflects **v0.8**. Last updated 2022-03-05 This documentation reflects **v0.9**. Last updated 2022-03-12
GravityMon is used to measure gravity and temperature during fermentation of beer and report the progress. The graph below is GravityMon is used to measure gravity and temperature during fermentation of beer and report the progress. The graph below is
an example on how the fermentation process can be tracked. This is from my last brew that was over on a few days. The graph is rendered using an example on how the fermentation process can be tracked. This is from my last brew that was over on a few days. The graph is rendered using
@ -21,6 +21,8 @@ GravityMon is a replacement firmare for the iSpindle and uses the same hardware
implements a lot of the features that has been requested in the orginal iSpindle project but has been rejected for implements a lot of the features that has been requested in the orginal iSpindle project but has been rejected for
various reasons. Here is a list of :ref:`main_features`. various reasons. Here is a list of :ref:`main_features`.
From v0.9 the firmware now supports a iSpindle build based on an ESP32 d1 mini (pin compatible with esp8266). See :ref:`hardware`.
I started GravityMon because i like to create software and wanted to do some low level programming. I had done a few I started GravityMon because i like to create software and wanted to do some low level programming. I had done a few
projects based on esp8266 and also started to brew beer so this combination was quite natural. projects based on esp8266 and also started to brew beer so this combination was quite natural.
@ -124,17 +126,29 @@ the following libraries and without these this would have been much more difficu
CSS templates for the web page. CSS templates for the web page.
* https://github.com/lorol/LITTLEFS
LittleFS library for ESP32 framework 1.x
* https://github.com/h2zero/NimBLE-Arduino
Bluetooth library for ESP32 framework 1.x
* https://github.com/spouliot/tilt-sim
Excellent project for simulating a tilt device.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Contents: :caption: Contents:
license
functionallity
intro intro
installation
releases releases
functionallity
installation
configuration configuration
troubleshooting
q_and_a
formula formula
services services
advanced advanced
@ -142,8 +156,8 @@ the following libraries and without these this would have been much more difficu
data data
compiling compiling
contributing contributing
troubleshooting hardware
q_and_a license
Indices and tables Indices and tables
================== ==================

View File

@ -3,6 +3,16 @@
Releases Releases
######## ########
v0.9.0
------
* Added function to test push targets from configuration page. It will send data and show the return code as a first step.
* Updated WifiManager and DoubleReset libraries
* Experimental release of firmware using an esp32 instead of esp8266
* Updated esp32 target with littlefs support
* Updated esp32 target with BLE send support (it will simulate a tilt)
* Corrected PIN for voltage read on ESP32
* Mounted esp32 d1 mini mounted to a iSpindle PCB 4.0 (CherryPhilip) which worked fine.
v0.8.0 v0.8.0
------ ------