{"id":19634303,"url":"https://github.com/s60sc/esp32_specificgravity","last_synced_at":"2025-04-28T07:31:18.274Z","repository":{"id":111800667,"uuid":"285024947","full_name":"s60sc/ESP32_SpecificGravity","owner":"s60sc","description":"Calculates fermentation Specific Gravity from tilt angle of floating sensor","archived":false,"fork":false,"pushed_at":"2024-07-22T13:04:11.000Z","size":1253,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T07:33:13.266Z","etag":null,"topics":["beer","esp32","esp32-arduino","fermentation","hydrometer","mpu6050","specific-gravity","spindel"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/s60sc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-04T15:42:04.000Z","updated_at":"2025-03-10T11:17:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"bc78ae9a-e22a-4513-90dd-7adb06dcf1ae","html_url":"https://github.com/s60sc/ESP32_SpecificGravity","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s60sc%2FESP32_SpecificGravity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s60sc%2FESP32_SpecificGravity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s60sc%2FESP32_SpecificGravity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/s60sc%2FESP32_SpecificGravity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/s60sc","download_url":"https://codeload.github.com/s60sc/ESP32_SpecificGravity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251271142,"owners_count":21562497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beer","esp32","esp32-arduino","fermentation","hydrometer","mpu6050","specific-gravity","spindel"],"created_at":"2024-11-11T12:20:29.088Z","updated_at":"2025-04-28T07:31:17.146Z","avatar_url":"https://github.com/s60sc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESP32_SpecificGravity\n\nDevice to calculate Specific Gravity of wort during fermentation from tilt angle of floating sensor, where tilt angle varies with liquid density. \nDesigned to provide a qualified rather than precise value for Specific Gravity for simplicity of calibration.\n\nUses the hardware design approach from http://www.ispindel.de/docs/README_en.html\nbut simplified to use an ESP32 module with an integral 18650 battery holder and battery management IC TPS5400, and obtain G force readings and temperature from a separate MCU6050 accelerometer on GY-521 module.\nThe code base has been independently developed.\n\nThe generated data is packaged into a json string, this data can be viewed:\n* whilst the ESP32 is awake by using its own web server accessed from a browser.\n* on a remote host listening receiving json data using a http client. \n\nOn power up, ESP32 will remain awake for calibration purposes (see below) until user presses the __Start__ button on the web page.\nThe ESP32 will then periodically wakeup to collect data and send this to the remote host, then return to deep sleep.\n\n## Installation\n\nDownload github files into the Arduino IDE sketch folder, removing `-main` from the application folder name.\n\nCompile using arduino core v2.x or V3.x (min v3.0.3) and the following Partition scheme:\n* ESP32-S3 - `8M with spiffs (...)`\n* ESP32 - `Minimal SPIFFS (...)`\n\nOn first installation, the application will start in wifi AP mode - connect to SSID: **ESP32_SG_...**, to allow router and password details to be entered via the web page on `192.168.4.1`. The configuration data file (except passwords) is automatically created, and the application web pages automatically downloaded from GitHub to the SD card **/data** folder when an internet connection is available.\n\nSubsequent updates to the application, or to the **/data** folder files, can be made using the **OTA Upload** tab. The **/data** folder can also be reloaded from GitHub using the **Reload /data** button on the **Edit Config** tab, or by using a WebDAV client.\n\n## Setup and Calibration\n\nThe ESP32 and GY-521 modules fit snugly into a 33mm width x 120mm height PETling:\n\n![image1](extras/device.png)\n\n\nTo view current data and calibrate device before each use:\n* Open App web page to get readings.\n* Balance device in PETling so settles at c. 25 deg angle in plain water at 20C, then press __Set WA__ button to set lower range of curve.\n* Use hydrometer to measure the original gravity of the wort prior to fermentation.\n* Enter hydrometer value into __Original Gravity__ field, e.g. 1.045.\n* Place device in wort and wait till angle settles, then press __Set OG__ button to set upper range of curve.\n* Press __Start__ button to start monitoring, device will go to sleep\n* Press __Reset__ to reenter calibration mode.  \n  If the device is in deep sleep, pressing boot button has same effect.\n\n![image1](extras/webpage.png)\n\n\n## Configuration\n\nThe device can be configured from the web page under __Edit Config__ tab:\n* __Wifi__: to change wifi details, in particular IP address of remote client.\n* __Sensors__: pin selection etc.\n* __Other__: time that device is awake and time that device is asleep (to save battery)\n* Press __Save__ button for changes to persist, then __Reboot ESP__ to apply changes\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs60sc%2Fesp32_specificgravity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fs60sc%2Fesp32_specificgravity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fs60sc%2Fesp32_specificgravity/lists"}