{"id":123,"date":"2025-10-03T16:36:12","date_gmt":"2025-10-03T19:36:12","guid":{"rendered":"https:\/\/bandmateproject.com\/?p=123"},"modified":"2025-10-03T16:46:15","modified_gmt":"2025-10-03T19:46:15","slug":"displaymicro","status":"publish","type":"post","link":"https:\/\/bandmateproject.com\/?p=123","title":{"rendered":"Display+Micro"},"content":{"rendered":"\n<p>Continuando con la entrada anterior <a href=\"https:\/\/bandmateproject.com\/?p=104\">De Consola a Display<\/a>, regres\u00e9 a ocuparme de la conexi\u00f3n del display pero con arduino. El proyecto en la entrada mencionada estaba bien, pero como ocurre en ocaciones, al momento de validar, algunos problemas surgieron, el mas sencillo por llamados al include de la biblioteca del controlador del display, el LiquidCrystal_I2C.h, aqu\u00ed la soluci\u00f3n pas\u00f3 por cargar desde el administrador de bibliotecas del IDE de Arduino la bliblioteca de Frank Brabander. Prob\u00e9 el siguiente c\u00f3digo y&#8230; funcion\u00f3!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"974\" src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2204b-1024x974.jpeg\" alt=\"\" class=\"wp-image-136\" srcset=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2204b-1024x974.jpeg 1024w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2204b-300x285.jpeg 300w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2204b-768x731.jpeg 768w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2204b.jpeg 1536w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>#include \"LiquidCrystal_I2C.h\"\n#include  &lt;Wire.h&gt;\n\nLiquidCrystal_I2C lcd(0x27,  16, 2);\n\nvoid setup() {\n  lcd.init();\n  lcd.backlight();\n}\n\nvoid loop() {\n  delay(1000);\n  lcd.setCursor(0,0);\n  lcd.print(\"Hola, Grupo!!!\");\n  lcd.setCursor(0,1);\n  lcd.print(\"Vamo Arriba\");\n}<\/code><\/pre>\n\n\n\n<p>El display desplegaba los mensajes. S\u00f3lo tuve que ajustar el brillo y habilitar la luz de fondo de la pantalla (un cable a modo de jumper). <\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"138\" src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2207-768x1024.jpeg\" alt=\"\" class=\"wp-image-138\" srcset=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2207-768x1024.jpeg 768w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2207-225x300.jpeg 225w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2207-1152x1536.jpeg 1152w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2207.jpeg 1536w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"139\" src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2208-768x1024.jpeg\" alt=\"\" class=\"wp-image-139\" srcset=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2208-768x1024.jpeg 768w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2208-225x300.jpeg 225w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2208-1152x1536.jpeg 1152w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2208.jpeg 1536w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"141\" src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2209-1-768x1024.jpeg\" alt=\"\" class=\"wp-image-141\" srcset=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2209-1-768x1024.jpeg 768w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2209-1-225x300.jpeg 225w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2209-1-1152x1536.jpeg 1152w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2209-1.jpeg 1536w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"140\" src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2210-1-768x1024.jpeg\" alt=\"\" class=\"wp-image-140\" srcset=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2210-1-768x1024.jpeg 768w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2210-1-225x300.jpeg 225w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2210-1-1152x1536.jpeg 1152w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2210-1.jpeg 1536w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>Ahora el paso siguiente era volver con el micro. All\u00ed el c\u00f3digo aplicado fu\u00e9 el siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;arduinoFFT.h&gt;  \/\/ Official ArduinoFFT library v2.0.4\n\n#define MIC_PIN A0\n#define SAMPLES 128\n#define SAMPLING_FREQUENCY 4000\n\ndouble vReal&#91;SAMPLES];\ndouble vImag&#91;SAMPLES];\n\nArduinoFFT&lt;double&gt; FFT(vReal, vImag, SAMPLES, SAMPLING_FREQUENCY);\n\n\/\/ Standard guitar tuning (E2, A2, D3, G3, B3, E4)\nstruct NoteRef { const char* name; double freq; };\nNoteRef notes&#91;] = {\n  {\"E2\", 82.41}, {\"A2\", 110.00}, {\"D3\", 146.83},\n  {\"G3\", 196.00}, {\"B3\", 246.94}, {\"E4\", 329.63}\n};\n\n\/\/ Calculate cents difference\ndouble centsDiff(double f, double ref) {\n  if (f &lt;= 0 || ref &lt;= 0) return 0;\n  return 1200.0 * log(f \/ ref) \/ log(2.0);\n}\n\n\/\/ Find nearest note\nNoteRef nearestNote(double f) {\n  NoteRef best = notes&#91;0];\n  double bestDiff = 1e9;\n  for (auto &amp;n : notes) {\n    double d = fabs(centsDiff(f, n.freq));\n    if (d &lt; bestDiff) { bestDiff = d; best = n; }\n  }\n  return best;\n}\n\nvoid setup() {\n  Serial.begin(115200);\n  Serial.println(\"Arduino Guitar Tuner (E A D G B E)\");\n}\n\nvoid loop() {\n  \/\/ Capture audio samples\n  unsigned long microsStart = micros();\n  for (int i = 0; i &lt; SAMPLES; i++) {\n    vReal&#91;i] = analogRead(MIC_PIN);\n    vImag&#91;i] = 0;\n    while (micros() - microsStart &lt; (1000000UL * (i + 1) \/ SAMPLING_FREQUENCY));\n  }\n\n  \/\/ Remove DC offset\n  double mean = 0;\n  for (int i = 0; i &lt; SAMPLES; i++) mean += vReal&#91;i];\n  mean \/= SAMPLES;\n  for (int i = 0; i &lt; SAMPLES; i++) vReal&#91;i] -= mean;\n\n  \/\/ Check for minimum amplitude to avoid noise\n  double maxAmplitude = 0;\n  for (int i = 0; i &lt; SAMPLES; i++) {\n    if (fabs(vReal&#91;i]) &gt; maxAmplitude) maxAmplitude = fabs(vReal&#91;i]);\n  }\n\n  if (maxAmplitude &lt; 20) { \/\/ adjust threshold if needed\n    Serial.println(\"\");\n    delay(100);\n    return;\n  }\n\n  \/\/ FFT computation\n  FFT.windowing(FFT_WIN_TYP_HAMMING, FFT_FORWARD);\n  FFT.compute(FFT_FORWARD);\n  FFT.complexToMagnitude();\n\n  \/\/ Find peak frequency\n  double maxMag = 0;\n  int maxIndex = 0;\n  for (int i = 1; i &lt; SAMPLES \/ 2; i++) {\n    if (vReal&#91;i] &gt; maxMag) {\n      maxMag = vReal&#91;i];\n      maxIndex = i;\n    }\n  }\n\n  double freq = (maxIndex * 1.0 * SAMPLING_FREQUENCY) \/ SAMPLES;\n\n  \/\/ Find nearest note\n  NoteRef n = nearestNote(freq);\n  double cents = centsDiff(freq, n.freq);\n\n  \/\/ Print results\n  Serial.print(\"Detected freq: \");\n  Serial.print(freq, 2);\n  Serial.print(\" Hz | Nearest note: \");\n  Serial.print(n.name);\n  Serial.print(\" (\");\n  Serial.print(n.freq, 2);\n  Serial.print(\" Hz)\");\n\n  if (fabs(cents) &lt; 5) Serial.println(\" | In tune \u2705\");\n  else if (cents &gt; 0) Serial.println(\" | Sharp \u2197\");\n  else Serial.println(\" | Flat \u2198\");\n\n  delay(200);\n}<\/code><\/pre>\n\n\n\n<p>Claro que esto deb\u00eda funcionar junto con el display as\u00ed que en un primer paso, la idea era mantener las conexiones existentes, por lo que s\u00f3lo me auxili\u00e9 con el protoboard para compartir el conector de 5v para el micro y el display.<\/p>\n\n\n\n<p>El MAX9814 debe conectar de la siguiente manera:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>M\u00f3dulo MAX9814<\/strong><\/th><th><strong>Arduino<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>OUT<\/strong><\/td><td>A0 (entrada anal\u00f3gica)<\/td><\/tr><tr><td><strong>VCC<\/strong><\/td><td>5V<\/td><\/tr><tr><td><strong>GND<\/strong><\/td><td>GND<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Para el micro debe quedar:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>LCD I2C<\/th><th>Arduino UNO Nota<\/th><\/tr><\/thead><tbody><tr><td><strong>VCC<\/strong><\/td><td>5V Alimentaci\u00f3n<\/td><\/tr><tr><td><strong>GND<\/strong><\/td><td>GND Tierra com\u00fan<\/td><\/tr><tr><td><strong>SDA<\/strong><\/td><td>A4 Datos I2C<\/td><\/tr><tr><td><strong>SCL<\/strong><\/td><td>A5 Reloj I2C<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"143\" src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2211-768x1024.jpeg\" alt=\"\" class=\"wp-image-143\" srcset=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2211-768x1024.jpeg 768w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2211-225x300.jpeg 225w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2211-1152x1536.jpeg 1152w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2211.jpeg 1536w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"142\" src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2213-1-768x1024.jpeg\" alt=\"\" class=\"wp-image-142\" srcset=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2213-1-768x1024.jpeg 768w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2213-1-225x300.jpeg 225w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2213-1-1152x1536.jpeg 1152w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2213-1.jpeg 1536w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>Ahora s\u00f3lo restaba unir los c\u00f3digos para que el resultado de la evaluaci\u00f3n ac\u00fastica se redirigiera al panel LCD. El siguiente, fu\u00e9 el c\u00f3digo resultante.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;arduinoFFT.h&gt;   \/\/ Official ArduinoFFT library v2.0.4\n#include &lt;Wire.h&gt;\n#include &lt;LiquidCrystal_I2C.h&gt;\n\n\/\/ --- LCD Config (ajusta direcci\u00f3n si es necesario: 0x27 o 0x3F)\nLiquidCrystal_I2C lcd(0x27, 16, 2);\n\n#define MIC_PIN A0\n#define SAMPLES 128\n#define SAMPLING_FREQUENCY 4000\n\ndouble vReal&#91;SAMPLES];\ndouble vImag&#91;SAMPLES];\n\nArduinoFFT&lt;double&gt; FFT(vReal, vImag, SAMPLES, SAMPLING_FREQUENCY);\n\n\/\/ --- Standard guitar tuning (E2, A2, D3, G3, B3, E4)\nstruct NoteRef { const char* name; double freq; };\nNoteRef notes&#91;] = {\n  {\"E2\", 82.41}, {\"A2\", 110.00}, {\"D3\", 146.83},\n  {\"G3\", 196.00}, {\"B3\", 246.94}, {\"E4\", 329.63}\n};\n\n\/\/ --- Funciones auxiliares\ndouble centsDiff(double f, double ref) {\n  if (f &lt;= 0 || ref &lt;= 0) return 0;\n  return 1200.0 * log(f \/ ref) \/ log(2.0);\n}\n\nNoteRef nearestNote(double f) {\n  NoteRef best = notes&#91;0];\n  double bestDiff = 1e9;\n  for (auto &amp;n : notes) {\n    double d = fabs(centsDiff(f, n.freq));\n    if (d &lt; bestDiff) { bestDiff = d; best = n; }\n  }\n  return best;\n}\n\n\/\/ --- SETUP\nvoid setup() {\n  Serial.begin(115200);\n  Serial.println(\"Arduino Guitar Tuner (E A D G B E)\");\n\n  lcd.init();\n  lcd.backlight();\n  lcd.setCursor(0,0);\n  lcd.print(\"Guitar Tuner\");\n  lcd.setCursor(0,1);\n  lcd.print(\"Inicializando..\");\n  delay(2000);\n  lcd.clear();\n}\n\n\/\/ --- LOOP\nvoid loop() {\n  \/\/ Captura de muestras\n  unsigned long microsStart = micros();\n  for (int i = 0; i &lt; SAMPLES; i++) {\n    vReal&#91;i] = analogRead(MIC_PIN);\n    vImag&#91;i] = 0;\n    while (micros() - microsStart &lt; (1000000UL * (i + 1) \/ SAMPLING_FREQUENCY));\n  }\n\n  \/\/ Eliminar offset DC\n  double mean = 0;\n  for (int i = 0; i &lt; SAMPLES; i++) mean += vReal&#91;i];\n  mean \/= SAMPLES;\n  for (int i = 0; i &lt; SAMPLES; i++) vReal&#91;i] -= mean;\n\n  \/\/ Amplitud m\u00ednima (ruido)\n  double maxAmplitude = 0;\n  for (int i = 0; i &lt; SAMPLES; i++) {\n    if (fabs(vReal&#91;i]) &gt; maxAmplitude) maxAmplitude = fabs(vReal&#91;i]);\n  }\n\n  if (maxAmplitude &lt; 20) {\n    lcd.clear();\n    lcd.setCursor(0,0);\n    lcd.print(\"Esperando...\");\n    delay(100);\n    return;\n  }\n\n  \/\/ FFT\n  FFT.windowing(FFT_WIN_TYP_HAMMING, FFT_FORWARD);\n  FFT.compute(FFT_FORWARD);\n  FFT.complexToMagnitude();\n\n  \/\/ Pico\n  double maxMag = 0;\n  int maxIndex = 0;\n  for (int i = 1; i &lt; SAMPLES \/ 2; i++) {\n    if (vReal&#91;i] &gt; maxMag) {\n      maxMag = vReal&#91;i];\n      maxIndex = i;\n    }\n  }\n  double freq = (maxIndex * 1.0 * SAMPLING_FREQUENCY) \/ SAMPLES;\n\n  \/\/ Nota cercana\n  NoteRef n = nearestNote(freq);\n  double cents = centsDiff(freq, n.freq);\n\n  \/\/ --- Serial\n  Serial.print(\"Freq: \");\n  Serial.print(freq, 2);\n  Serial.print(\" Hz | Note: \");\n  Serial.print(n.name);\n\n  if (fabs(cents) &lt; 5) Serial.println(\" | In tune \u2705\");\n  else if (cents &gt; 0) Serial.println(\" | Sharp \u2197\");\n  else Serial.println(\" | Flat \u2198\");\n\n  \/\/ --- LCD\n  lcd.clear();\n  lcd.setCursor(0,0);\n  lcd.print(\"F:\");\n  lcd.print(freq, 1);\n  lcd.print(\"Hz\");\n\n  lcd.setCursor(0,1);\n  lcd.print(\"Nota \");\n  lcd.print(n.name);\n\n  if (fabs(cents) &lt; 5) lcd.print(\" OK\");\n  else if (cents &gt; 0) lcd.print(\" #\");\n  else lcd.print(\" b\");\n\n  delay(200);\n}<\/code><\/pre>\n\n\n\n<p>Finalmente, todo result\u00f3.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"145\" src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2216-1-768x1024.jpeg\" alt=\"\" class=\"wp-image-145\" srcset=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2216-1-768x1024.jpeg 768w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2216-1-225x300.jpeg 225w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2216-1-1152x1536.jpeg 1152w, https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2216-1.jpeg 1536w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n<\/figure>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"720\" style=\"aspect-ratio: 1280 \/ 720;\" width=\"1280\" controls src=\"https:\/\/bandmateproject.com\/wp-content\/uploads\/2025\/10\/IMG_2217.mp4\"><\/video><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Continuando con la entrada anterior De Consola a Display, regres\u00e9 a ocuparme de la conexi\u00f3n del display pero con arduino. El proyecto en la entrada mencionada estaba bien, pero como ocurre en ocaciones, al momento de validar, algunos problemas surgieron, el mas sencillo por llamados al include de la biblioteca del controlador del display, el [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":145,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[1],"tags":[],"class_list":["post-123","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categoria"],"_links":{"self":[{"href":"https:\/\/bandmateproject.com\/index.php?rest_route=\/wp\/v2\/posts\/123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bandmateproject.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bandmateproject.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bandmateproject.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bandmateproject.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=123"}],"version-history":[{"count":14,"href":"https:\/\/bandmateproject.com\/index.php?rest_route=\/wp\/v2\/posts\/123\/revisions"}],"predecessor-version":[{"id":150,"href":"https:\/\/bandmateproject.com\/index.php?rest_route=\/wp\/v2\/posts\/123\/revisions\/150"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bandmateproject.com\/index.php?rest_route=\/wp\/v2\/media\/145"}],"wp:attachment":[{"href":"https:\/\/bandmateproject.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bandmateproject.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bandmateproject.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}