{"id":15164245,"url":"https://github.com/bergercookie/babypanel","last_synced_at":"2026-01-22T18:03:42.832Z","repository":{"id":251642041,"uuid":"828430244","full_name":"bergercookie/babypanel","owner":"bergercookie","description":"Integrate babybuddy with an ESP8266-powered buttons panel to monitor a little one's routine","archived":false,"fork":false,"pushed_at":"2024-07-28T19:56:39.000Z","size":5647,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-02T06:38:34.301Z","etag":null,"topics":["arduino","automation","baby","babybuddy","embedded","esp8266","parenting","parents"],"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/bergercookie.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":"2024-07-14T05:58:43.000Z","updated_at":"2024-08-26T09:48:07.000Z","dependencies_parsed_at":"2024-08-04T19:37:33.808Z","dependency_job_id":null,"html_url":"https://github.com/bergercookie/babypanel","commit_stats":null,"previous_names":["bergercookie/babypanel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bergercookie/babypanel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Fbabypanel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Fbabypanel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Fbabypanel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Fbabypanel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bergercookie","download_url":"https://codeload.github.com/bergercookie/babypanel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bergercookie%2Fbabypanel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28667881,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T17:07:18.858Z","status":"ssl_error","status_checked_at":"2026-01-22T17:05:02.040Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["arduino","automation","baby","babybuddy","embedded","esp8266","parenting","parents"],"created_at":"2024-09-27T03:02:32.482Z","updated_at":"2026-01-22T18:03:42.811Z","avatar_url":"https://github.com/bergercookie.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `BabyPanel`\n\nThe goal of this project is to setup a control panel to enable logging\nbaby-related actions (e.g., feeding, tummy time, diaper changes) in [Baby\nBuddy](https://github.com/babybuddy/babybuddy) using physical buttons and using\nthe Wi-Fi enabled [Huzzah ESP8266 board](https://www.adafruit.com/product/2821).\n\nHere's how the final product looks like:\n\n![BabyPanel](https://github.com/bergercookie/babypanel/blob/master/share/images/with_descriptions.jpg)\n\n![BabyPanel With Battery Installed](https://github.com/bergercookie/babypanel/blob/master/share/images/battery_installation.jpg)\n\n\u003e [!NOTE]\n\u003e The current project was built to suit my specific needs so it might not suit\n\u003e yours. You should be able to tweak it to your liking but you should be able to\n\u003e comfortable to edit and upload the code.\n\n## Code setup\n\nYou have to define a series of variables so that the babypanel knows how to:\n\n- Connect to the local Wi-Fi network\n- Communicate with the Baby Buddy server\n- Communicate with the heartbeat server\n\nDefine these settings in a `user-conf.h` file at the root of this repo. A\nplaceholder file that you can copy and edit exists in\n`src/babypanel/user-conf.h`.\n\n## Compilation and upload\n\nI'm using [arduino-cli](https://github.com/arduino/arduino-cli) to compile and\nupload the code to the board. You can use the helper script `compile.sh` to do that.\n\nYou can also use `picocom` to connect to the board and see the logs with a\ncommand like the following\n\n```bash\npicocom -b 115200 /dev/ttyUSB0\n```\n\n## Heartbeat setup\n\nIn order to detect that the battery on the BabyPanel has dried out, you can\nsetup a heartbeat server that will receive a message from the BabyPanel every 30\nminutes. If the server does not receive a message within a designated interval\n(by default 2 hours) it will send a message a [ntfy.sh](https://ntfy.sh/)\nchannel of your choosing.\n\nTo install this heartbeat listener, you can use the `install.sh` script from the\n`heartbeat_listener` directory, and pass it the name of the channel to send the\nnotifications to in case of a missed heartbeat.\n\n```bash\ncd heartbeat_listener\nsudo ./install.sh favorite_ntfy_channel\n```\n\nYou can then verify that this channel is embedded in the `heartbeat_listener.sh`\nscript by looking at `/usr/local/bin/heartbeat_listener.sh` where it should be\ninstalled. You can also verify that the listener is working by querying it with\nsystemctl\n\n```bash\nsudo systemctl status heartbeat_listener\n```\n\n## Physical setup\n\n- The babypanel is powered by a 3.7V `Li-ion` battery - With a battery of capacity\n  `~3400mAh`, the babypanel can last for about 2 days.\n- The shell is made of wood and I'm using arcade buttons, [like\n  these](https://www.skroutz.gr/s/44854777/Haitronic-Diakoptis-Mpouton-Kokkino-HS1038R.html).\n- The `ESP8266` board is connected to the buttons using jumper wires, in a pull-up\n  configuration, i.e., one end of the button is connected to the ground, via a\n  resistor and the other end is connected to the corresponding pin on the\n  `ESP8266` board.\n\nHere's picture of the back of the panel, showing the wiring of the buttons:\n\n![BabyPanel Wiring](https://github.com/bergercookie/babypanel/blob/master/share/images/schematic.png)\n\nAnd here's a schematic of the wiring if made on a breadboard:\n\n![BabyPanel Schematic](https://github.com/bergercookie/babypanel/blob/master/share/images/wiring.jpg)\n\n### Pin configuration\n\nFollowing is the pin configuration that I've for the HUZZAH `ESP8266` board:\n\n- `D0` - Breast Feed\n- `D2` - Tummy Time\n- `D12` - Diaper Change\n- `D13` - Sleep - Green\n- `D14` - Formula Feed\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbergercookie%2Fbabypanel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbergercookie%2Fbabypanel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbergercookie%2Fbabypanel/lists"}