{"id":6634,"date":"2014-01-11T16:51:08","date_gmt":"2014-01-12T00:51:08","guid":{"rendered":"http:\/\/davenaves.com\/blog\/?p=6634"},"modified":"2025-07-18T11:17:15","modified_gmt":"2025-07-18T18:17:15","slug":"code-for-arduino-chicken-coop-door","status":"publish","type":"post","link":"https:\/\/davenaves.com\/blog\/interests-projects\/chickens\/chicken-coop\/code-for-arduino-chicken-coop-door\/","title":{"rendered":"Code for Arduino Chicken Coop Door"},"content":{"rendered":"<h4>The Code for Arduino Chicken Coop Door<\/h4>\n<p><strong>NOTE:<\/strong> To hopefully save you some time, I&#8217;ll let you in on the trick that FINALLY got this door to work with the light levels, debouncing the switches and *the chickens*. (as you&#8217;ll see in the code)<\/p>\n<p>Check the light levels every 10 minutes to avoid the readings bouncing back and forth between dark\/twilight\/light during those dawn\/dusk minutes. Then, when &#8220;dark&#8221; is reached (for me i chose &gt;= 0 &amp;&amp; &lt;= 3 based on when my chickens actually went &amp; <strong>stayed<\/strong> in the coop) enable motor dir down &gt; debounce the switches &gt; stop. Then do the opposite for morning. I&#8217;m sure there are different, maybe more efficient methods, but this code has been running flawlessly for a while now and I&#8217;m feeling confident enough to go out at night without worrying about predators. Although I still somehow find a reason to check the <a title=\"Live Chicken Web Cam\" href=\"https:\/\/davenaves.com\/blog\/live-chicken-cam\/\">ChickenCam<\/a> from time to time. (currently waiting for my new servo motors and night vision web cam to arrive in the mail)<br \/>\n[callout font_size=&#8221;13px&#8221; style=&#8221;limegreen&#8221;]<\/p>\n<div id=\"attachment_6738\" style=\"width: 160px\" class=\"wp-caption alignright\"><a href=\"https:\/\/davenaves.com\/blog\/interests-projects\/chickens\/chicken-coop\/code-for-arduino-chicken-coop-door\/attachment\/david-naves-headshot-rounded-corner\/\" rel=\"attachment wp-att-6738\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6738\" class=\"lazyload size-thumbnail wp-image-6738\" src=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner-150x150.png\" data-orig-src=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner-150x150.png\" alt=\"David Naves\" width=\"150\" height=\"150\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27150%27%20height%3D%27150%27%20viewBox%3D%270%200%20150%20150%27%3E%3Crect%20width%3D%27150%27%20height%3D%27150%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner-64x64.png 64w, https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner-100x100.png 100w, https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner-150x150.png 150w, https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner-300x297.png 300w, https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner-500x496.png 500w, https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner-700x694.png 700w, https:\/\/davenaves.com\/blog\/wp-content\/uploads\/david-naves-headshot-rounded-corner.png 976w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/a><p id=\"caption-attachment-6738\" class=\"wp-caption-text\">David Naves<\/p><\/div>\n<p><em style=\"color: #000;\">I&#8217;m hoping that if you use or modify my code or ideas, you will share *your* coop project with me and the world (pictures, whatever) I&#8217;m big on sharing.<\/p>\n<p>Cheers,<br \/>\n\/\/D<br \/>\n<\/em><br \/>\n[\/callout]<\/p>\n<p>I guess there has been some issue with copy and pasting the code, so I zipped up<br \/>\n<strong><a href=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/Dave_Naves_Chicken_Coop_Controller.zip\" target=\"_blank\" rel=\"nofollow noopener\">the latest clean .ino for you here<\/a> <\/strong><\/p>\n<pre class=\"lang:default decode:true title=\"> \r\n\r\n\/*\r\n* Copyright 2016, David Naves (https:\/\/daveworks.net, https:\/\/davenaves.com)\r\n*\r\n* This program is free software; you can redistribute it and\/or\r\n* modify it under the terms of the GNU General Public License\r\n* as published by the Free Software Foundation; either version 3\r\n* of the License, or (at your option) any later version.\r\n* \r\n* This program is distributed in the hope that it will be useful,\r\n* but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n* GNU General Public License for more details.\r\n* \r\n* You should have received a copy of the GNU General Public License\r\n* along with this program; if not,  write to the Free Software\r\n* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA \r\n* 02110-1301, USA. \r\n\r\n*\/\r\n\r\n \/*\r\n* I'm hoping that if you use\/modify this code, you will share your\r\n* coop project with me and the world (pictures, whatever)\r\n* I'm big on sharing.\r\n* Cheers,\r\n* \/\/D\r\n*\/\r\n\r\n\r\n\r\n\/\/ libraries\r\n\r\n\r\n#include                          \/\/ load the onewire library for thermometer\r\n#include                    \/\/ load the liquid crystal library\r\n\r\n\r\n\r\n\/\/ print debug messages or not to serial\r\nconst boolean SerialDisplay = true;\r\n\r\n\r\n\r\n\r\n\/\/ pins assignments\r\n\r\n\/\/ temperature chip i\/o\r\nconst int photocellPin = A0;                 \/\/ photocell connected to analog 0\r\nconst int enableCoopDoorMotorB = 7;          \/\/ enable motor b - pin 7\r\nconst int directionCloseCoopDoorMotorB = 8;  \/\/ direction close motor b - pin 8\r\nconst int directionOpenCoopDoorMotorB = 9;   \/\/ direction open motor b - pin 9\r\nconst int bottomSwitchPin = 26;              \/\/ bottom switch is connected to pin 26\r\nconst int topSwitchPin = 27;                 \/\/ top switch is connected to pin 27\r\n\r\n\r\n\r\n\/\/ variables\r\n\r\n\r\n\r\n\/\/ photocell\r\nint photocellReading;                            \/\/ analog reading of the photocel\r\nint photocellReadingLevel;                       \/\/ photocel reading levels (dark, twilight, light)\r\n\r\n\/\/ reed switches top and bottom of coop door\r\n\r\n\/\/ top switch\r\n\r\nint topSwitchPinVal;                   \/\/ top switch var for reading the pin status\r\nint topSwitchPinVal2;                  \/\/ top switch var for reading the pin delay\/debounce status\r\nint topSwitchState;                    \/\/ top switch var for to hold the switch state\r\n\r\n\/\/ bottom switch\r\n\r\nint bottomSwitchPinVal;                \/\/ bottom switch var for reading the pin status\r\nint bottomSwitchPinVal2;               \/\/ bottom switch var for reading the pin delay\/debounce status\r\nint bottomSwitchState;                 \/\/ bottom switch var for to hold the switch state\r\n\r\n\r\n\r\n\/\/ photocell reading delay\r\nunsigned long lastPhotocellReadingTime = 0;\r\nunsigned long photocellReadingDelay = 600000;   \/\/ 10 minutes\r\n\r\n\/\/ debounce delay\r\nunsigned long lastDebounceTime = 0;\r\nunsigned long debounceDelay = 100;\r\n\r\n\r\n\r\n\r\n\r\n\/\/ ************************************** the setup **************************************\r\n\r\nvoid setup(void) {\r\n\r\n  Serial.begin(9600); \/\/ initialize serial port hardware\r\n\r\n\r\n  \/\/ welcome message\r\n  if (SerialDisplay) {\r\n    Serial.println(\" Processes running:\");\r\n    Serial.println(\" Timer doReadPhotoCell every 10 minutes - light levels: open or close door\");\r\n  }\r\n \r\n\r\n  \/\/ coop door\r\n\r\n  \/\/ coop door motor\r\n  pinMode (enableCoopDoorMotorB, OUTPUT);           \/\/ enable motor pin = output\r\n  pinMode (directionCloseCoopDoorMotorB, OUTPUT);   \/\/ motor close direction pin = output\r\n  pinMode (directionOpenCoopDoorMotorB, OUTPUT);    \/\/ motor open direction pin = output\r\n\r\n  \/\/ coop door leds\r\n  pinMode (coopDoorOpenLed, OUTPUT);                \/\/ enable coopDoorOpenLed = output\r\n  pinMode (coopDoorClosedLed, OUTPUT);              \/\/ enable coopDoorClosedLed = output\r\n  digitalWrite(coopDoorClosedLed, LOW);\r\n\r\n  \/\/ coop door switches\r\n  \/\/ bottom switch\r\n  pinMode(bottomSwitchPin, INPUT);                  \/\/ set bottom switch pin as input\r\n  digitalWrite(bottomSwitchPin, HIGH);              \/\/ activate bottom switch resistor\r\n\r\n  \/\/ top switch\r\n  pinMode(topSwitchPin, INPUT);                     \/\/ set top switch pin as input\r\n  digitalWrite(topSwitchPin, HIGH);                 \/\/ activate top switch resistor\r\n\r\n\r\n\r\n}\r\n\r\n\/\/ ************************************** functions **************************************\r\n\r\n\r\n\r\n\/\/ operate the coop door\r\n\r\n\/\/ photocel to read levels of exterior light\r\n\r\nvoid doReadPhotoCell() { \/\/ function to be called repeatedly - per coopPhotoCellTimer set in setup\r\n\r\n  photocellReading = analogRead(photocellPin);\r\n\r\n  if ((unsigned long)(millis() - lastPhotocellReadingTime) &gt;= photocellReadingDelay) {\r\n    lastPhotocellReadingTime = millis();\r\n\r\n    \/\/  set photocel threshholds\r\n    if (photocellReading &gt;= 0 &amp;&amp; photocellReading &lt;= 3) { photocellReadingLevel = '1'; if (SerialDisplay) { Serial.println(\" Photocel Reading Level:\"); Serial.println(\" - Dark\"); } } else if (photocellReading &gt;= 4 &amp;&amp; photocellReading &lt;= 120) { photocellReadingLevel = '2'; if (SerialDisplay) { Serial.println(\" Photocel Reading Level:\"); Serial.println(\" - Twilight\"); } } else if (photocellReading &gt;= 125 ) {\r\n      photocellReadingLevel = '3';\r\n      if (SerialDisplay) {\r\n        Serial.println(\" Photocel Reading Level:\");\r\n        Serial.println(\" - Light\");\r\n      }\r\n    }\r\n    if (SerialDisplay) {\r\n      Serial.println(\" Photocel Analog Reading = \");\r\n      Serial.println(photocellReading);\r\n    }\r\n  }\r\n}\r\n\r\n\/\/debounce bottom reed switch\r\n\r\nvoid debounceBottomReedSwitch() {\r\n\r\n  \/\/debounce bottom reed switch\r\n  bottomSwitchPinVal = digitalRead(bottomSwitchPin);       \/\/ read input value and store it in val\r\n\r\n  if ((unsigned long)(millis() - lastDebounceTime) &gt; debounceDelay) {    \/\/ delay 10ms for consistent readings\r\n\r\n    bottomSwitchPinVal2 = digitalRead(bottomSwitchPin);    \/\/ read input value again to check or bounce\r\n\r\n    if (bottomSwitchPinVal == bottomSwitchPinVal2) {       \/\/ make sure we have 2 consistant readings\r\n      if (bottomSwitchPinVal != bottomSwitchState) {       \/\/ the switch state has changed!\r\n        bottomSwitchState = bottomSwitchPinVal;\r\n      }\r\n      if (SerialDisplay) {\r\n        Serial.print (\" Bottom Switch Value: \");           \/\/ display \"Bottom Switch Value:\"\r\n        Serial.println(digitalRead(bottomSwitchPin));      \/\/ display current value of bottom switch;\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n\r\n\r\n\/\/ debounce top reed switch\r\nvoid debounceTopReedSwitch() {\r\n\r\n  topSwitchPinVal = digitalRead(topSwitchPin);             \/\/ read input value and store it in val\r\n\r\n  if ((unsigned long)(millis() - lastDebounceTime) &gt; debounceDelay) {     \/\/ delay 10ms for consistent readings\r\n\r\n    topSwitchPinVal2 = digitalRead(topSwitchPin);          \/\/ read input value again to check or bounce\r\n\r\n    if (topSwitchPinVal == topSwitchPinVal2) {             \/\/ make sure we have 2 consistant readings\r\n      if (topSwitchPinVal != topSwitchState) {             \/\/ the button state has changed!\r\n        topSwitchState = topSwitchPinVal;\r\n      }\r\n      if (SerialDisplay) {\r\n        Serial.print (\" Top Switch Value: \");              \/\/ display \"Bottom Switch Value:\"\r\n        Serial.println(digitalRead(topSwitchPin));         \/\/ display current value of bottom switch;\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n\r\n\/\/ stop the coop door motor\r\nvoid stopCoopDoorMotorB() {\r\n  digitalWrite (directionCloseCoopDoorMotorB, LOW);      \/\/ turn off motor close direction\r\n  digitalWrite (directionOpenCoopDoorMotorB, LOW);       \/\/ turn on motor open direction\r\n  analogWrite (enableCoopDoorMotorB, 0);                 \/\/ enable motor, 0 speed\r\n}\r\n\r\n\r\n\r\n\/\/ close the coop door motor (motor dir close = clockwise)\r\nvoid closeCoopDoorMotorB() {\r\n  digitalWrite (directionCloseCoopDoorMotorB, HIGH);     \/\/ turn on motor close direction\r\n  digitalWrite (directionOpenCoopDoorMotorB, LOW);       \/\/ turn off motor open direction\r\n  analogWrite (enableCoopDoorMotorB, 255);               \/\/ enable motor, full speed\r\n  if (bottomSwitchPinVal == 0) {                         \/\/ if bottom reed switch circuit is closed\r\n    stopCoopDoorMotorB();\r\n    if (SerialDisplay) {\r\n      Serial.println(\" Coop Door Closed - no danger\");\r\n    }\r\n  }\r\n}\r\n\r\n\r\n\r\n\/\/ open the coop door (motor dir open = counter-clockwise)\r\nvoid openCoopDoorMotorB() {\r\n  digitalWrite(directionCloseCoopDoorMotorB, LOW);       \/\/ turn off motor close direction\r\n  digitalWrite(directionOpenCoopDoorMotorB, HIGH);       \/\/ turn on motor open direction\r\n  analogWrite(enableCoopDoorMotorB, 255);                \/\/ enable motor, full speed\r\n  if (topSwitchPinVal == 0) {                            \/\/ if top reed switch circuit is closed\r\n    stopCoopDoorMotorB();\r\n    if (SerialDisplay) {\r\n      Serial.println(\" Coop Door open - danger!\");\r\n    }\r\n  }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\/\/ do the coop door\r\nvoid doCoopDoor() {\r\n  if (photocellReadingLevel  == '1') {              \/\/ if it's dark\r\n    if (photocellReadingLevel != '2') {             \/\/ if it's not twilight\r\n      if (photocellReadingLevel != '3') {           \/\/ if it's not light\r\n        debounceTopReedSwitch();                    \/\/ read and debounce the switches\r\n        debounceBottomReedSwitch();\r\n        closeCoopDoorMotorB();                      \/\/ close the door\r\n      }\r\n    }\r\n  }\r\n  if (photocellReadingLevel  == '3') {              \/\/ if it's light\r\n    if (photocellReadingLevel != '2') {             \/\/ if it's not twilight\r\n      if (photocellReadingLevel != '1') {           \/\/ if it's not dark\r\n        debounceTopReedSwitch();                    \/\/ read and debounce the switches\r\n        debounceBottomReedSwitch();\r\n        openCoopDoorMotorB();                       \/\/ Open the door\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n\r\n\r\n\/\/ ************************************** the loop **************************************\r\n\r\nvoid loop() {\r\n  \r\n  doReadPhotoCell();\r\n  doCoopDoor();\r\n\r\n}\r\n\r\n\r\n<\/pre>\n<p>I guess there has been some issue with copy and pasting the code, so I zipped up<br \/>\n<strong><a href=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/Dave_Naves_Chicken_Coop_Controller.zip\" target=\"_blank\" rel=\"nofollow noopener\">the latest clean .ino for you here<\/a> <\/strong><\/p>\n<h3>Parts Used<\/h3>\n<p>(my affiliate links)<\/p>\n<p><script src=\"https:\/\/ws-na.amazon-adsystem.com\/widgets\/q?rt=tf_mfw&amp;ServiceVersion=20070822&amp;MarketPlace=US&amp;ID=V20070822%2FUS%2Fdaveworkswebd-20%2F8001%2Fed6efe98-08cb-4afa-a3dd-9af1aa95089b\" type=\"text\/javascript\" charset=\"utf-8\"> <\/script><noscript><A HREF=\"https:\/\/ws-na.amazon-adsystem.com\/widgets\/q?rt=tf_mfw&#038;ServiceVersion=20070822&#038;MarketPlace=US&#038;ID=V20070822%2FUS%2Fdaveworkswebd-20%2F8001%2Fed6efe98-08cb-4afa-a3dd-9af1aa95089b&#038;Operation=NoScript\">Amazon.com Widgets<\/A><\/noscript><\/p>\n<h4>The Wiring Diagram for the Automatic Chicken Coop Door<\/h4>\n<div id=\"attachment_6488\" style=\"width: 660px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/Arduino-Automatic-Chicken-Coop-Door-Fritzing-Project1.png\"><img decoding=\"async\" aria-describedby=\"caption-attachment-6488\" class=\"lazyload size-large wp-image-6488\" src=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/Arduino-Automatic-Chicken-Coop-Door-Fritzing-Project1-1024x997.png\" data-orig-src=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/Arduino-Automatic-Chicken-Coop-Door-Fritzing-Project1-1024x997.png\" alt=\"Arduino Automatic Chicken Coop Door Fritzing Wiring Diagram\" width=\"650\" srcset=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" data-srcset=\"https:\/\/davenaves.com\/blog\/wp-content\/uploads\/Arduino-Automatic-Chicken-Coop-Door-Fritzing-Project1-300x292.png 300w, https:\/\/davenaves.com\/blog\/wp-content\/uploads\/Arduino-Automatic-Chicken-Coop-Door-Fritzing-Project1-1024x997.png 1024w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><p id=\"caption-attachment-6488\" class=\"wp-caption-text\">Arduino Automatic Chicken Coop Door Fritzing Wiring Diagram<\/p><\/div>\n<h3>The Installed Arduino Chicken Door<\/h3>\n<p><iframe src=\"\/\/www.youtube.com\/embed\/1qq0KlYfJbo?list=PLvuTs5dlaWiPWWAdZDWDy1CeFmhZAY40S\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h3>How I built the Automated Chicken Coop Door<\/h3>\n<p><iframe src=\"\/\/www.youtube.com\/embed\/bUbIOawX1Ww?list=PLvuTs5dlaWiPWWAdZDWDy1CeFmhZAY40S\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h3>Testing the door with the Arduino<\/h3>\n<p><iframe src=\"\/\/www.youtube.com\/embed\/rQyH-XWb8Ec?list=PLvuTs5dlaWiPWWAdZDWDy1CeFmhZAY40S\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h3>Lessons Learned<\/h3>\n<h4>What I&#8217;ve learned about the door, Arduino, light and construction:<\/h4>\n<ul>\n<li>Best to check the light levels every 10 minutes to avoid the readings bouncing back and forth between dark\/twilight\/light during those dawn\/dusk minutes<\/li>\n<li>Test your door with <strong>your<\/strong> chickens to see if any of them like to hang outside after hours<\/li>\n<li>Testing the actual light values outside is very important (many variables involved: light from neighbor&#8217;s house, clouds, internal\/external coop lights etc.)<\/li>\n<li><a title=\"Arduino Debounce\" href=\"https:\/\/arduino.cc\/en\/Tutorial\/Debounce\" target=\"_blank\" rel=\"nofollow noopener\">Debouncing<\/a> of your switches within your Arduino code is important (door will jump around and fail as electronic readings vary greatly by the millisecond)<\/li>\n<li>Reach out for help on the <a title=\"Arduino Forums\" href=\"https:\/\/forum.arduino.cc\/\" target=\"_blank\" rel=\"nofollow noopener\">Arduino Forums<\/a> before pulling out your hair. (be nice, do your homework and ask very specific questions)<\/li>\n<li>I changed from micro-switches to <a title=\"Reed switches for Chicken Coop Door\" href=\"https:\/\/goo.gl\/WJvyn5\" target=\"_blank\" rel=\"noopener\">reed switches<\/a> (magnets) because I didn&#8217;t want the mechanics of the micro-switches to fail over time<\/li>\n<\/ul>\n<h4>What I&#8217;ve learned about the chickens:<\/h4>\n<ul>\n<li>Keeping on a light within the coop can keep chickens outside longer (I think b\/c the ambient light shines outside) And that&#8217;s important when it comes to automating this door, so they won&#8217;t get accidentally locked out.<\/li>\n<li>They can jump and fly (high and far)<\/li>\n<li>They love to roost in safety at night, but want nothing more than to get OUT as soon as it&#8217;s light out<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The Code for Arduino Chicken Coop Door NOTE: To hopefully<\/p>\n","protected":false},"author":2,"featured_media":6739,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[128,18],"tags":[171,170,169,168],"class_list":["post-6634","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-chicken-coop","tag-arduino-code-for-chicken-coop-door","tag-chicken-coop-door-code","tag-code-for-arduino-chicken-coop-door","tag-how-to-code-for-arduino-chicken-coop-door"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/posts\/6634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/comments?post=6634"}],"version-history":[{"count":19,"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/posts\/6634\/revisions"}],"predecessor-version":[{"id":8395,"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/posts\/6634\/revisions\/8395"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/media\/6739"}],"wp:attachment":[{"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/media?parent=6634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/categories?post=6634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/davenaves.com\/blog\/wp-json\/wp\/v2\/tags?post=6634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}