{"id":22452590,"url":"https://github.com/dwr2118/locked-in-light","last_synced_at":"2026-05-15T08:39:55.257Z","repository":{"id":266326927,"uuid":"898032503","full_name":"dwr2118/locked-in-light","owner":"dwr2118","description":"Locked-in-light is a tool that helps communicate your current working status and task. This was the final project for my Creative Embedded Systems course (COMS BC3930).","archived":false,"fork":false,"pushed_at":"2024-12-13T21:41:36.000Z","size":18288,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T12:47:10.455Z","etag":null,"topics":["esp32","locked-in","netlify","ngrok","ultrasonic-sensor-distance"],"latest_commit_sha":null,"homepage":"https://denim-duckling-124.notion.site/Module-4-Locked-in-Lights-1487d975e60580e4acc5dc75ee4d8802?pvs=4","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dwr2118.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-12-03T17:04:36.000Z","updated_at":"2024-12-13T21:41:40.000Z","dependencies_parsed_at":"2024-12-03T18:34:34.448Z","dependency_job_id":"8c34d8e3-09cf-4154-b5ec-9e09fe71cda4","html_url":"https://github.com/dwr2118/locked-in-light","commit_stats":null,"previous_names":["dwr2118/locked-in-light"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dwr2118/locked-in-light","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwr2118%2Flocked-in-light","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwr2118%2Flocked-in-light/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwr2118%2Flocked-in-light/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwr2118%2Flocked-in-light/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dwr2118","download_url":"https://codeload.github.com/dwr2118/locked-in-light/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dwr2118%2Flocked-in-light/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278957489,"owners_count":26075473,"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","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"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":["esp32","locked-in","netlify","ngrok","ultrasonic-sensor-distance"],"created_at":"2024-12-06T06:11:42.835Z","updated_at":"2025-10-08T14:24:04.469Z","avatar_url":"https://github.com/dwr2118.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# locked-in-light\nFor my COMS BC3930 Creative Embedded Systems Final Project, I wanted to make a tool to help users communicate their current working status to roommates, family members \u0026 more while they work in semi-shared spaces (ie: a 2-bedroom apartment). Below you can find a GIF of the final functionalities of the project: ![final draft ](https://github.com/user-attachments/assets/a5c129ed-3a88-4526-b542-84abbbe2f4a0)\n\nlocked-in-light in its enclosure: ![final enclosure](https://github.com/user-attachments/assets/110846e2-3d12-4666-9e9f-5612e19817c2)\n\n\n\n## Design Documentation: \nRead more about my creative process [here](https://denim-duckling-124.notion.site/Module-4-Locked-in-Lights-1487d975e60580e4acc5dc75ee4d8802?pvs=4). \n\n## What you will need:\n1. A LilyGo T-Display board, ultrasonic distance sensor hc sr04 and a push button. \n2. Install the correct [driver](https://github.com/Xinyuan-LilyGO/TTGO-T-Display) for the LilyGo T-Display.\n3. USB-C cable with working data connections.\n4. Install the [Arduino IDE](https://www.arduino.cc/en/software).\n5. For editing the API and the web-app, I recommend VSCode as an IDE. \n\n## Arduino IDE Setup:\n1. Download the TFT_eSPI library by Bodmer:\n    - Open Arduino IDE\n    - Click Tools \u003e Manage Libraries\n    - Search for \"tft_espi\" by Bodmer and click install.\n    - Navigate to the library on your computer's file manager (e.g., Documents/Arduino/libraries/tft_espi)\n    - Open the file \"User_Setup_Select.h\"\n    - Comment out \"#include \u003cUser_setup.h\u003e\" near the top of the page\n    - Uncomment \"#include \u003cUser_Setups/Setup25_TTGO_T_Display.h\u003e\" further down the page (the lines are in numeric order).\n\n2. Install the ESP 32 Board Library:\n    - We will install it through Arduino IDE.\n    - First, go to [this website](https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html) and under \"Installing using Arduino IDE\" copy the \"Stable release link\".\n    - Open Arduino IDE.\n    - Click File \u003e Preferences\n    - At the bottom of the \"Settings\" tab, in \"Additional boards manager URLs\", paste the stable release link in the text box, click OK.\n    - Click Tools \u003e Board \u003e Boards Manager\n    - Search for 'esp32' by Espressif and click Install\n    - Download the Simple HCSR04 library too. \n      \n## How to recreate this project:\n1. After setting up, connect your board to your computer with the USB-C cable.\n2. Open Arduino IDE. Click the upper-left dropdown menu to select your Board and Port. It will usually pop-up as \"LilyGo T-Display\" on port \"COM xx\".\n4. Open 'locked-in-light-code.ino' and upload it to your ESP32 device\n5. To get the Locked-in-Light API to work on your local computer:\n    - go to the root of the web-app directory \n    - Download the corresponding dependencies using `npm install`\n    - use `netlify dev` to run the app locally and use `ngrok http http://localhost:8888` to expose this development environment using ngrok\n    - grab the forwarding URL from ngrok on your terminal and input this link into the index.html, arduino file \n    - travel to the ngrok URL route to access the website's UI and ngrok URL/color provides the current color and status in JSON. \n    - try to change the color of your current status by pressing one of the buttons or inputting a new task by typing into the text box and hitting enter\n6. Try out the locked in light yourself! \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwr2118%2Flocked-in-light","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdwr2118%2Flocked-in-light","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdwr2118%2Flocked-in-light/lists"}