Automation/reminder system for a backyard chicken coop.
- ESP32
- Google Services
- Humans
- Flock
- Automatically open/close the run door (unless human sets it to manual mode)
- Track door status (with human input in manual)
- Send POST requests to Google Cloud Services (if enabled)
- Sends out reminder at sunrise to open coop
- Provides options: just the run (if run door is in manual mode) OR the run + front door
- Asks for confirmation 15 min after 1st reminder
- Sends out reminder at sunset to close up coop
- Asks for confirmation 15 min after 1st reminder
- Sends out more urgent reminder 1 hour after 1st reminder
- Listen for updates from ESP32
- Tracks cleaning schedule? (future)
- Open run door
- Uncap food bin by UNSCREWING lids
- Check food + water levels, replenish if needed
- Check for eggs
- (doesn't need to happen every day) Open main door to let them out in yard
- Close run door
- Cap food bin and pour tray food back into the bin
- Close the run access gate
- (if a yard day) Close main door
- Clean poop from roosts/floor
- Clean run
- Replace water in pool
- Replace bedding
- Winterproof with cardboard
- Lay eggs
- Eat food and drink water
EXISTING:
- NTP date/time
- Sunrise-sunset
- Google Apps Script
- Google Calendar
- Google Sheets IN PROGRESS: POSSIBLE:
- Discord bot?
- ESP32 (SparkFun ESP32 Thing)
- Motor for auto run door
- 2 press buttons (door up / door down)
- button to toggle manual/auto run door
door (d) doorStatus y d y = yes always motorOn d = debug only motorDir x = never control (c) autoMode y y motor time (m) motorInterval_open y y motorInterval_close auto-offset (e) offset_open y y offset_close flock (f) flockStatus y y google (g) googleEnabled y y state (s) state d d time (t) time y x day-night (n) sunrise/sunset y x date
open (o) Client clicked "open" button opening [##] close (c) Client clicked "close" button closing [##] stop (h) set-open (so) open set-close (sc) closed manual (a) control [AUTO/MANUAL] google (g) google [ON/OFF] m[o/c] [##] (m) Client adjusted motor interval time m[o/c] [##] e[o/c] [##] Client adjusted offset auto open/close time e[o/c] [##] time: [HH:MM AM/PM] ESP updates client with time data date: [MM/DD/YYYY] sunrise/sunset: [time/time]
c[a/m] control mode: switches calendar events to auto/manual f[c/r/y] ### logs the change in flock status with IP address [other data] logs the message in a spreadsheet
- Relevant project with outdoor automation and Google calendar - https://www.instructables.com/id/Irrigation-Using-Google-Calendar/
- Using NTP date-time with ESP32 Arduino - https://randomnerdtutorials.com/esp32-date-time-ntp-client-server-arduino/
- HTTP GET and POST requests with ESP32 Arduino - https://randomnerdtutorials.com/esp32-http-get-post-arduino/
- Library for motor control - https://github.com/sparkfun/SparkFun_TB6612FNG_Arduino_Library
- Tutorial for using Google script - https://www.dfrobot.com/blog-917.html
- Google Apps Script reference - https://developers.google.com/apps-script
- Date class (Javascript) reference - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
- https://medium.com/@dtkatz/3-ways-to-fix-the-cors-error-and-how-access-control-allow-origin-works-d97d55946d9