{"id":25945060,"url":"https://github.com/celliesprojects/aquacontrol32-pio","last_synced_at":"2026-06-08T15:32:00.543Z","repository":{"id":279442300,"uuid":"873188183","full_name":"CelliesProjects/aquacontrol32-pio","owner":"CelliesProjects","description":"This is a 5 channel LED aqua controller to program gradual sunrises and sunsets. Also has a moon phase simulator.","archived":false,"fork":false,"pushed_at":"2026-02-25T15:48:39.000Z","size":149,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-25T19:19:15.461Z","etag":null,"topics":["aquarium-controller","aquarium-lights","ds18b20","esp32-arduino","led-controller","lovyangfx","m5stack-grey","moon-phase","web-interface"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CelliesProjects.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-15T18:37:03.000Z","updated_at":"2026-02-25T15:54:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"5eec4b89-ab14-4239-82d7-edeb491d608d","html_url":"https://github.com/CelliesProjects/aquacontrol32-pio","commit_stats":null,"previous_names":["celliesprojects/aquacontrol32-pio"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/CelliesProjects/aquacontrol32-pio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CelliesProjects%2Faquacontrol32-pio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CelliesProjects%2Faquacontrol32-pio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CelliesProjects%2Faquacontrol32-pio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CelliesProjects%2Faquacontrol32-pio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CelliesProjects","download_url":"https://codeload.github.com/CelliesProjects/aquacontrol32-pio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CelliesProjects%2Faquacontrol32-pio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34069489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["aquarium-controller","aquarium-lights","ds18b20","esp32-arduino","led-controller","lovyangfx","m5stack-grey","moon-phase","web-interface"],"created_at":"2025-03-04T08:29:02.110Z","updated_at":"2026-06-08T15:32:00.538Z","avatar_url":"https://github.com/CelliesProjects.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AQUACONTROL32-PIO\n\nThis is a LED control app aimed at aquarium use. With this app you can program gradual sunrises and sunsets on 5 LED channels through a web interface. The moon phase cycle is simulated and can be adjusted from the web interface. All settings are saved to an SD card.\n\nTo use this project you need a esp32 board with a SD card slot, a LED dimming board and you will need [VSCode](https://code.visualstudio.com/) with the [PlatformIO](https://platformio.org/) plugin installed.\n\nSupported devices are all esp32 devices with an SD card slot.  \nA predefined config is included for esp32 M5Stack Core and Core2 devices.  \nM5Stack CoreS3 devices are not supported.\n\n![M5Stack grey LED dimming board with 2A LED channels and sensor connector](https://github.com/user-attachments/assets/30b79d2d-9873-4528-86e6-4fe226557873)  \nM5Stack grey LED dimming board with 2A LED channels and sensor connector\n\n## Edit channels with the web interface\n\n![editor](https://github.com/user-attachments/assets/65d36678-d3d9-4f20-9c3a-0ab2893e1b3b)\n\n- Add timers by click-dragging on the grid\n- To adjust timers drag and drop a timer handle to another location\n- The first timer can not be deleted but the intensity can be set\n- No touch handlers are defined so it will not work on a touch device\n\n## How to setup this app\n\n### Hardware needed\n\n- Supported esp32 board. (SD card slot is required)\n- Led dimming board capable of handling 5 LED pwm inputs\n- Optional ds18b20 temperature sensor\n\n### Upgrading from aquacontrol32\n\nThis app is the successor to aquacontrol32 and is compatible with the file format used so you can easily upgrade and keep your current light settings. Just upload your existing `default.aqu` to the new device and done!\n\n## Software setup\n\n### 1 - Download software\n\n- Visual Studio Code\n- PlatformIO\n- [The latest release of aquacontrol](https://github.com/CelliesProjects/aquacontrol32-pio/releases/latest) - unzip the file to a local folder.\n\nOpen this folder in PlatformIO `File-\u003eOpen Folder`.\n\n### 2 - Adjust user location and board setup\n\nOpen `platformio.ini` and adjust the `[user]`section to your location.\n\nIn the same file, you can adjust the gpio pins in the `[env:headless]` section by adjusting the following `build_flags`:\n\n```bash\n    -D SDCARD_SS=xx\n    -D LEDPIN_0=xx\n    -D LEDPIN_1=xx\n    -D LEDPIN_2=xx\n    -D LEDPIN_3=xx\n    -D LEDPIN_4=xx\n```\n\nNote: The ds18b20 temperature sensor is not supported in the headless build.\n\n### 3 - Setup your WiFi secrets in `src/secrets.h`\n\nIn the folder where you extracted the files, create a new file `src/secrets.h`.\n\nCopy-paste the source below to `src/secrets.h`:\n\n```c++\n#ifndef _SECRETS_H_\n#define _SECRETS_H_\n\nconst char *SSID = \"wifi network\";\nconst char *PSK = \"wifi password\";\n\nconst char *WEBIF_USER = \"admin\";\nconst char *WEBIF_PASSWORD = \"admin\";\n\n#endif\n```\n\nAdjust the values as needed.\n\n### 4 - Make sure you have a FAT32 formatted SD card inserted\n\n- Timers are saved on the SD card as `default.aqu`.\n- Moonlight setup is saved on the SD card as `default.mnl`.\n\nWithout SD card the app will seem to work but saving timers or moonlight settings is not possible.  \nUploaded timers will be gone on a reboot without a SD card.\n\n### 5 - Upload app and start editing\n\nSelect the PIO icon on the left, then open `Project Tasks`.  \nClick on your device to expand the menu and there select `Upload and Monitor`.\n\nAfter uploading, the IP address of the webinterface is shown on the display.  \nBrowse to this IP, then click on a channel bar and start editing timers.\n\n### Your WiFi has changed? - You can override your WiFi settings with the SD card\n\n**You can skip this when flashing your device.**  \nWith WiFi secrets on the SD card you dont need to reflash your device if you ever want or need to change the wifi settings at some point.  \nJust create or update `default.net` on the SD card with the new secrets and reboot.  \nThere are two methods available.\n\n#### First method - you can not access the 'old' WiFi network\n\nCreate a file named `default.net` with the secrets for the WiFi network: \n\n```bash\nSSID=wifi network\nPSK=wifi password\n```\n\n1. Save this file on the SD card.  \n2. Insert the SD card in the aquarium controller.  \n3. Reboot.  \n\n#### Second method - you can still access the 'old' network\n\n1. Upload `default.net` as described above to the controller through the `/fileupload` page.  \n2. Reboot.\n\n**Note**: Settings found on the SD card override the compiled in settings. \n\n## URLs on the device\n\n- **`/`**  \n  Current channel levels and temperature are shown.  \n  Click on a level bar to go to the **`/editor`**.\n\n- **`/editor`**  \n  Edit channel timers and save these timers to an SD card.\n\n- **`/moonsetup`**  \n  Setup full moon levels for the moon simulator.\n\n- **`/fileupload`**  \n  Upload files to the controller.  \n  Uploaded files named `default.aqu` or `default.mnl` will be parsed and if valid light or moon settings are found, these will be applied directly after upload.\n\n- **`/api/uptime`**  \n  Uptime in human readable format\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelliesprojects%2Faquacontrol32-pio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcelliesprojects%2Faquacontrol32-pio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelliesprojects%2Faquacontrol32-pio/lists"}