{"id":355,"date":"2026-07-20T09:25:26","date_gmt":"2026-07-20T02:25:26","guid":{"rendered":"https:\/\/navy007.com\/WP\/?p=355"},"modified":"2026-07-20T09:26:17","modified_gmt":"2026-07-20T02:26:17","slug":"esp32-ep-5-esp32-%e0%b8%81%e0%b8%b1%e0%b8%9a%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%a3%e0%b8%b1%e0%b8%9a%e0%b8%aa%e0%b9%88%e0%b8%87%e0%b8%aa%e0%b8%b1%e0%b8%8d%e0%b8%8d%e0%b8%b2%e0%b8%93-infrared","status":"publish","type":"post","link":"https:\/\/navy007.com\/WP\/archives\/355","title":{"rendered":"ESP32 (EP.6) ESP32 \u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 Infrared"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">&nbsp;ESP32 (EP.6) \u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e08\u0e30\u0e02\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 ESP32 \u0e01\u0e31\u0e1a\u0e15\u0e31\u0e27\u0e23\u0e31\u0e1a\u0e41\u0e25\u0e30\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 Infrared&nbsp;&nbsp;\u0e19\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2d\u0e35\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e21\u0e32\u0e01\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a\u0e15\u0e31\u0e27\u0e23\u0e31\u0e1a\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e2d\u0e34\u0e19\u0e1f\u0e23\u0e32\u0e40\u0e23\u0e14 38 &#8211; 40 KHz \u0e08\u0e32\u0e01 remote \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e41\u0e25\u0e30\u0e41\u0e2d\u0e23\u0e4c&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49 ESP32 + Infrared LED \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e41\u0e17\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 remote control \u0e44\u0e1b\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e2d\u0e30\u0e44\u0e23\u0e01\u0e47\u0e44\u0e14\u0e49\u0e43\u0e19\u0e1a\u0e49\u0e32\u0e19<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/764\/091\/000\/mrskmbyuhy47ELVpKSJ-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e23\u0e30\u0e17\u0e39\u0e49\u0e40\u0e01\u0e48\u0e32\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14<br>\ud83d\uded1 EP.1&nbsp;&nbsp;\u0e41\u0e19\u0e30\u0e19\u0e33\u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01 ESP32<br><a target=\"_blank\" href=\"https:\/\/pantip.com\/topic\/44159372\" rel=\"noreferrer noopener\">https:\/\/pantip.com\/topic\/44159372<\/a><br>\ud83d\uded1 EP.2&nbsp;&nbsp;\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 ESP32 \u0e01\u0e31\u0e1a web dashboard<br><a target=\"_blank\" href=\"https:\/\/pantip.com\/topic\/44161526\" rel=\"noreferrer noopener\">https:\/\/pantip.com\/topic\/44161526<\/a><br>\ud83d\uded1 EP.3&nbsp;&nbsp;\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 ESP32 \u0e01\u0e31\u0e1a sensor \u0e15\u0e48\u0e32\u0e07 \u0e46<br><a target=\"_blank\" href=\"https:\/\/pantip.com\/topic\/44163637\" rel=\"noreferrer noopener\">https:\/\/pantip.com\/topic\/44163637<\/a><br>\ud83d\uded1 EP.4&nbsp;&nbsp;ESP32 \u0e01\u0e31\u0e1a dashboard + \u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19 Line<br><a href=\"https:\/\/pantip.com\/topic\/44165778\" rel=\"noreferrer noopener\" target=\"_blank\">https:\/\/pantip.com\/topic\/44165778<\/a><br>\ud83d\uded1 EP.5&nbsp;&nbsp;ESP32 \u0e01\u0e31\u0e1a\u0e07\u0e32\u0e19 PWM<br><a href=\"https:\/\/pantip.com\/topic\/44167818\" rel=\"noreferrer noopener\" target=\"_blank\">https:\/\/pantip.com\/topic\/44167818<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">concept \u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e47\u0e21\u0e35\u0e40\u0e1e\u0e35\u0e22\u0e07 2 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e04\u0e23\u0e31\u0e1a<br>\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e41\u0e23\u0e01\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e02\u0e35\u0e22\u0e19 Code \u0e43\u0e2b\u0e49 ESP32 \u0e23\u0e31\u0e1a\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 infrared \u0e08\u0e32\u0e01\u0e23\u0e35\u0e42\u0e21\u0e17\u0e02\u0e2d\u0e07\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32 \/ \u0e41\u0e2d\u0e23\u0e4c\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e39\u0e49\u0e04\u0e48\u0e32 data \u0e02\u0e2d\u0e07\u0e23\u0e35\u0e42\u0e21\u0e17\u0e1b\u0e38\u0e48\u0e21\u0e15\u0e48\u0e32\u0e07 \u0e46&nbsp;&nbsp;data \u0e41\u0e25\u0e30\u0e21\u0e31\u0e19\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e38\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e23\u0e35\u0e22\u0e01\u0e27\u0e48\u0e32 Protocol&nbsp;&nbsp;\u0e0b\u0e36\u0e48\u0e07 ESP32 \u0e08\u0e30\u0e21\u0e35 library \u0e2d\u0e22\u0e39\u0e48\u0e15\u0e31\u0e27\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e04\u0e37\u0e2d&nbsp;<em><strong>IRremoteESP8266<\/strong><\/em>&nbsp;&nbsp;library \u0e15\u0e31\u0e27\u0e19\u0e35\u0e49\u0e08\u0e30\u0e23\u0e27\u0e1a\u0e23\u0e27\u0e21\u0e40\u0e2d\u0e32 protocol \u0e02\u0e2d\u0e07\u0e23\u0e35\u0e42\u0e21\u0e17\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e01\u0e27\u0e48\u0e32 100 \u0e41\u0e1a\u0e23\u0e19\u0e14\u0e4c\u0e40\u0e01\u0e37\u0e2d\u0e1a 500 \u0e23\u0e38\u0e48\u0e19\u0e40\u0e02\u0e49\u0e32\u0e44\u0e27\u0e49\u0e43\u0e19 library \u0e15\u0e31\u0e27\u0e19\u0e35\u0e49&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e32\u0e17\u0e14\u0e25\u0e2d\u0e07\u0e22\u0e34\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e08\u0e32\u0e01\u0e23\u0e35\u0e42\u0e21\u0e17\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\/\u0e41\u0e2d\u0e23\u0e4c\u0e17\u0e35\u0e48\u0e1a\u0e49\u0e32\u0e19\u0e40\u0e23\u0e32 \u0e2b\u0e32\u0e01\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e19\u0e31\u0e49\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e41\u0e2d\u0e23\u0e4c\u0e23\u0e38\u0e48\u0e19\u0e19\u0e31\u0e49\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19 library \u0e15\u0e31\u0e27\u0e19\u0e35\u0e49\u0e21\u0e31\u0e19\u0e01\u0e47\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e04\u0e48\u0e32 protocol \u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e38\u0e14 Hexadecimal (HEX) data<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e02\u0e2d\u0e40\u0e23\u0e34\u0e48\u0e21\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e15\u0e31\u0e27\u0e23\u0e31\u0e1a\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e23\u0e35\u0e42\u0e21\u0e17\u0e04\u0e27\u0e32\u0e21\u0e16\u0e35\u0e48 38 KHz \u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19 code \u0e2a\u0e31\u0e49\u0e19 \u0e46 &#8230;. \u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e15\u0e32\u0e21\u0e20\u0e32\u0e1e\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07\u0e19\u0e35\u0e49\u0e40\u0e25\u0e22\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/764\/091\/000\/mrskrzzmbeot19wYaQh57-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Code \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a protocol \u0e23\u0e35\u0e42\u0e21\u0e17<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Arduino.h>\n#include &lt;IRremoteESP8266.h>\n#include &lt;IRrecv.h>\n#include &lt;IRutils.h>\n\n\/\/ Define the GPIO pin connected to the TSOP3848 OUT pin\nconst uint16_t kRecvPin = 4; \n\n\/\/ 1024 bytes is usually enough for long AC data packets\nconst uint16_t kCaptureBufferSize = 1024; \n\n\/\/ High timeout ensures the entire long AC frame is captured (in milliseconds)\nconst uint8_t kTimeout = 50; \n\n\/\/ Initialize the IR receiver object\nIRrecv irrecv(kRecvPin, kCaptureBufferSize, kTimeout, true);\ndecode_results results;\n\nvoid setup() {\n  Serial.begin(115200);\n  while (!Serial) {\n    delay(50); \/\/ Wait for Serial Monitor to connect (needed for ESP32-S3 USB)\n  }\n  \n  Serial.println(\"\\n--- ESP32-S3 AC IR Decoder Starting ---\");\n  irrecv.enableIRIn(); \/\/ Start the receiver\n  Serial.print(\"Listening for IR signals on GPIO \");\n  Serial.println(kRecvPin);\n}\nvoid loop() {\n  if (irrecv.decode(&amp;results)) {\n    Serial.println(\"==========================================\");\n    \n    \/\/ Check if the protocol is recognized\n    if (results.decode_type != decode_type_t::UNKNOWN) {\n      Serial.print(\"Protocol Recognized! Brand: \");\n      Serial.println(typeToString(results.decode_type));\n    } else {\n      Serial.println(\"Protocol: UNKNOWN (Not explicitly supported by the library yet)\");\n    }\n\n    \/\/ Display basic information\n    Serial.print(\"Value\/Hex: 0x\");\n    serialPrintUint64(results.value, 16);\n    Serial.println();\n    Serial.print(\"Bits: \");\n    Serial.println(results.bits);\n    \n    \/\/ Output the raw data in C++ format\n    Serial.println();\n    Serial.println(\"Raw Timing Data (Use this if protocol is UNKNOWN):\");\n    yield(); \/\/ Prevent watchdog triggers\n    \n    \/\/ FIX: Using the correct, built-in library function here\n    String sourceCode = resultToSourceCode(&amp;results);\n    Serial.println(sourceCode);\n    \n    Serial.println(\"==========================================\\n\");\n    \n    \/\/ Resume listening for the next signal\n    irrecv.resume(); \n  }\n  delay(100);\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e1c\u0e21\u0e17\u0e14\u0e25\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e23\u0e35\u0e42\u0e21\u0e17\u0e02\u0e2d\u0e07\u0e41\u0e2d\u0e23\u0e4c Carrier \u0e22\u0e34\u0e07\u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e17\u0e35\u0e48\u0e44\u0e14\u0e49\u0e01\u0e47\u0e15\u0e32\u0e21\u0e20\u0e32\u0e1e\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07&nbsp;&nbsp;protocol \u0e17\u0e35\u0e48\u0e2d\u0e48\u0e32\u0e19\u0e44\u0e14\u0e49\u0e08\u0e30\u0e21\u0e35 2 \u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e33\u0e04\u0e31\u0e0d &#8230;.<br>1. \u0e2a\u0e48\u0e27\u0e19\u0e41\u0e23\u0e01\u0e40\u0e23\u0e35\u0e22\u0e01\u0e27\u0e48\u0e32 raw data \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02 3 &#8211; 4 \u0e2b\u0e25\u0e31\u0e01\u0e2b\u0e25\u0e32\u0e22\u0e2a\u0e34\u0e1a\u0e0a\u0e38\u0e14 \u0e41\u0e15\u0e48\u0e25\u0e30\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e04\u0e37\u0e2d\u0e04\u0e48\u0e32\u0e02\u0e2d\u0e07 pulse width (\u0e2b\u0e19\u0e48\u0e27\u0e22 \u03bcs) \u0e02\u0e2d\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 infrared \u0e17\u0e35\u0e48\u0e23\u0e35\u0e42\u0e21\u0e17\u0e15\u0e31\u0e27\u0e19\u0e31\u0e49\u0e19\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e01\u0e14\u0e1b\u0e38\u0e48\u0e21\u0e19\u0e31\u0e49\u0e19 \u0e46<br>2. \u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48 2 \u0e04\u0e37\u0e2d protocol \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e07\u0e48\u0e32\u0e22\u0e21\u0e32\u0e01\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e23\u0e2b\u0e31\u0e2a\u0e41\u0e25\u0e49\u0e27\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e40\u0e14\u0e35\u0e22\u0e27\u0e40\u0e23\u0e35\u0e22\u0e01\u0e27\u0e48\u0e32 Hexadecimal (HEX) \u0e0b\u0e36\u0e48\u0e07\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e23\u0e32\u0e01\u0e47\u0e40\u0e2d\u0e32\u0e0a\u0e38\u0e14 HEX protocol \u0e1a\u0e23\u0e23\u0e17\u0e31\u0e14\u0e40\u0e14\u0e35\u0e22\u0e27\u0e19\u0e35\u0e48\u0e41\u0e2b\u0e25\u0e30\u0e04\u0e23\u0e31\u0e1a\u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e43\u0e19 code \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\/\u0e41\u0e2d\u0e23\u0e4c<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/764\/091\/000\/mrskuglo1kc1Uhk8ChgFZJ-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 infrared \u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e23\u0e35\u0e42\u0e21\u0e17\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e17\u0e35\u0e48\u0e40\u0e23\u0e35\u0e22\u0e01\u0e27\u0e48\u0e32 Pulse train&nbsp;&nbsp;\u0e04\u0e37\u0e2d\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e25\u0e37\u0e48\u0e19\u0e2a\u0e35\u0e48\u0e40\u0e2b\u0e25\u0e35\u0e48\u0e22\u0e21\u0e17\u0e35\u0e48\u0e21\u0e35\u0e2a\u0e32\u0e23\u0e1e\u0e31\u0e14 pulse width \u0e15\u0e48\u0e2d\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e01\u0e31\u0e19\u0e22\u0e32\u0e27\u0e21\u0e32\u0e01 \u0e0b\u0e36\u0e48\u0e07\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e49\u0e19\u0e40\u0e1e\u0e35\u0e22\u0e07 0.15 &#8211; 0.25 \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/764\/091\/000\/mrskvzr51swn2dvz5xc2pJ-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48 2 \u0e04\u0e37\u0e2d\u0e19\u0e33 protocol \u0e17\u0e35\u0e48\u0e23\u0e31\u0e1a\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e01\u0e14\u0e1b\u0e38\u0e48\u0e21\u0e23\u0e35\u0e42\u0e21\u0e17\u0e44\u0e1b\u0e43\u0e0a\u0e49&nbsp;&nbsp;\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e23\u0e32\u0e01\u0e47\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e40\u0e2d\u0e32 HEX protocol \u0e02\u0e2d\u0e07\u0e23\u0e35\u0e42\u0e21\u0e17\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e01\u0e14\u0e43\u0e19\u0e1b\u0e38\u0e48\u0e21\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e44\u0e1b\u0e43\u0e2a\u0e48\u0e43\u0e19 code&nbsp;&nbsp;\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e14\u0e40\u0e1b\u0e34\u0e14\u0e41\u0e2d\u0e23\u0e4c , \u0e01\u0e14\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34 26 \u0e2d\u0e07\u0e28\u0e32 , \u0e01\u0e14\u0e1e\u0e31\u0e14\u0e25\u0e21\u0e40\u0e1a\u0e32 &#8230;. \u0e17\u0e38\u0e01\u0e1b\u0e38\u0e48\u0e21\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e01\u0e14\u0e21\u0e31\u0e19\u0e01\u0e47\u0e08\u0e30\u0e43\u0e2b\u0e49\u0e15\u0e31\u0e27 protocol \u0e17\u0e35\u0e48\u0e41\u0e15\u0e01\u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19&nbsp;&nbsp;\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e43\u0e19\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e40\u0e0a\u0e48\u0e19\u0e19\u0e35\u0e49\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e2a\u0e31\u0e48\u0e07\u0e40\u0e1b\u0e34\u0e14\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e43\u0e14 \u0e46 \u0e08\u0e32\u0e01\u0e19\u0e2d\u0e01\u0e1a\u0e49\u0e32\u0e19 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19\u0e40\u0e23\u0e32\u0e01\u0e33\u0e25\u0e31\u0e07\u0e40\u0e14\u0e34\u0e19\u0e17\u0e32\u0e07\u0e01\u0e25\u0e31\u0e1a\u0e1a\u0e49\u0e32\u0e19\u0e2d\u0e32\u0e01\u0e32\u0e28\u0e23\u0e49\u0e2d\u0e19\u0e21\u0e32\u0e01\u0e2d\u0e22\u0e32\u0e01\u0e08\u0e30\u0e40\u0e1b\u0e34\u0e14\u0e41\u0e2d\u0e23\u0e4c\u0e01\u0e47\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e41\u0e04\u0e48\u0e2b\u0e22\u0e34\u0e1a\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e02\u0e36\u0e49\u0e19\u0e21\u0e32\u0e41\u0e25\u0e49\u0e27\u0e2a\u0e31\u0e48\u0e07\u0e40\u0e1b\u0e34\u0e14\u0e41\u0e2d\u0e23\u0e4c\u0e08\u0e32\u0e01 web dashboard \u0e43\u0e19\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e15\u0e31\u0e27 ESP32 \u0e17\u0e35\u0e48\u0e1a\u0e49\u0e32\u0e19\u0e01\u0e47\u0e08\u0e30\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 protocol \u0e08\u0e32\u0e01 infrared LED \u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e2d\u0e23\u0e4c\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e31\u0e48\u0e07\u0e43\u0e2b\u0e49\u0e41\u0e2d\u0e23\u0e4c\u0e40\u0e1b\u0e34\u0e14<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e43\u0e19 project \u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e32\u0e18\u0e34\u0e15\u0e19\u0e35\u0e49\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e20\u0e32\u0e1e\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07\u0e19\u0e35\u0e49\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/764\/091\/000\/mrskvf473wzh9JNqsbczLk-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e04\u0e25\u0e34\u0e1b\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e18\u0e34\u0e15\u0e43\u0e2b\u0e49\u0e14\u0e39\u0e27\u0e48\u0e32 ESP32 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 infrared protocol \u0e08\u0e32\u0e01 infrared LED \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e41\u0e2d\u0e23\u0e4c\u0e41\u0e17\u0e19\u0e01\u0e32\u0e23\u0e01\u0e14\u0e23\u0e35\u0e42\u0e21\u0e17\u0e08\u0e23\u0e34\u0e07 \u0e46 \u0e44\u0e14\u0e49 &#8230;. \u0e43\u0e19\u0e04\u0e25\u0e34\u0e1b\u0e2b\u0e25\u0e31\u0e07\u0e08\u0e32\u0e01\u0e44\u0e1f\u0e2a\u0e35\u0e41\u0e14\u0e07\u0e01\u0e23\u0e30\u0e1e\u0e23\u0e34\u0e1a 9 \u0e04\u0e23\u0e31\u0e49\u0e07\u0e41\u0e25\u0e49\u0e27\u0e43\u0e2b\u0e49\u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e17\u0e35\u0e48 infrared LED 2 \u0e15\u0e31\u0e27\u0e08\u0e30\u0e40\u0e2b\u0e47\u0e19\u0e27\u0e48\u0e32\u0e21\u0e35\u0e08\u0e38\u0e14\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e08\u0e32\u0e07 \u0e46 \u0e02\u0e36\u0e49\u0e19\u0e41\u0e27\u0e49\u0e1a\u0e19\u0e36\u0e07 \u0e19\u0e31\u0e48\u0e19\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e21\u0e31\u0e19\u0e2a\u0e48\u0e07\u0e04\u0e25\u0e37\u0e48\u0e19\u0e41\u0e2a\u0e07\u0e2d\u0e34\u0e19\u0e1f\u0e23\u0e32\u0e40\u0e23\u0e14\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e41\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e40\u0e23\u0e32\u0e08\u0e30\u0e44\u0e14\u0e49\u0e22\u0e34\u0e19\u0e40\u0e2a\u0e35\u0e22\u0e07\u0e41\u0e2d\u0e23\u0e4c\u0e17\u0e33\u0e07\u0e32\u0e19\u0e14\u0e31\u0e07 &#8220;\u0e15\u0e35\u0e4a\u0e14&#8221;&nbsp;&nbsp;\u0e0b\u0e36\u0e48\u0e07\u0e1b\u0e01\u0e15\u0e34\u0e40\u0e23\u0e32\u0e14\u0e27\u0e07\u0e15\u0e32\u0e08\u0e30\u0e21\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e40\u0e2b\u0e47\u0e19\u0e41\u0e2a\u0e07 infrared \u0e17\u0e35\u0e48\u0e2a\u0e48\u0e07\u0e08\u0e32\u0e01 infrared LED \u0e19\u0e35\u0e49 \u0e41\u0e15\u0e48\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e2b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e41\u0e1a\u0e1a\u0e08\u0e32\u0e07 \u0e46<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"ESP32 \u0e01\u0e31\u0e1a infrared LED \u0e04\u0e38\u0e21\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/6r4dmIzqJis?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Code \u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;Arduino.h>\n#include &lt;Wire.h>\n#include &lt;Adafruit_GFX.h>\n#include &lt;Adafruit_SH110X.h>\n#include &lt;IRremoteESP8266.h>\n#include &lt;IRsend.h>\n#include &lt;ir_Neoclima.h>\n\n\/\/ OLED Display Configuration\n#define SCREEN_WIDTH 128\n#define SCREEN_HEIGHT 64\n#define OLED_RESET     -1 \/\/ Share reset pin or set to -1 if not used\nAdafruit_SH1106G display = Adafruit_SH1106G(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, OLED_RESET);\n\n\/\/ Hardware Pins\nconst uint16_t kIrLedPin = 14; \nconst uint16_t kIndicatorLedPin = 11; \nconst int I2C_SDA_PIN = 40;\nconst int I2C_SCL_PIN = 42;\n\nIRNeoclimaAc neoclimaAC(kIrLedPin);\n\n\/\/ Intervals in milliseconds\nconst unsigned long INTERVAL_STATE_1_TO_2 = (3 * 60) * 1000UL; \nconst unsigned long INTERVAL_STATE_2_TO_1 = (9 * 60) * 1000UL;       \n\nbool isCurrentStateOne = true;\nunsigned long previousMillis = 0;\nunsigned long lastOledUpdateMillis = 0;\n\n\/\/ Raw 12-byte states captured from the original remote control\nuint8_t rawStateOne&#91;12] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x7A, 0x80, 0x2A, 0xA5, 0xCD};\nuint8_t rawStateTwo&#91;12] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x7A, 0x80, 0x2D, 0xA5, 0xCF};\n\n\/\/ Function declarations\nvoid sendStateOne();\nvoid sendStateTwo();\nvoid flashLED(); \nvoid updateOLEDCountdown(unsigned long elapsed, unsigned long totalDuration, const char* stateName);\n\nvoid setup() {\n  pinMode(kIndicatorLedPin, OUTPUT); \n  \n  \/\/ Initialize Custom I2C Pins for ESP32-S3\n  Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN);\n  \n  \/\/ Initialize SH1106 OLED (Address 0x3C is common for these modules)\n  if(!display.begin(0x3C, true)) { \n    \/\/ If initialization fails, loop infinitely or handle error\n    while(true);\n  }\n  \n  display.clearDisplay();\n  display.setTextColor(SH110X_WHITE);\n  display.display();\n\n  neoclimaAC.begin();\n  \n  \/\/ Initial transmission\n  sendStateOne();\n  previousMillis = millis(); \n  updateOLEDCountdown(0, INTERVAL_STATE_1_TO_2, \"State One\");\n}\n\nvoid loop() {\n  unsigned long currentMillis = millis();\n  unsigned long currentInterval = isCurrentStateOne ? INTERVAL_STATE_1_TO_2 : INTERVAL_STATE_2_TO_1;\n  unsigned long elapsedMillis = currentMillis - previousMillis;\n\n  \/\/ Update the countdown display once every second\n  if (currentMillis - lastOledUpdateMillis >= 1000UL) {\n    lastOledUpdateMillis = currentMillis;\n    \n    \/\/ Prevent elapsed from exceeding total interval before state switch clears it\n    if (elapsedMillis > currentInterval) elapsedMillis = currentInterval; \n    \n    updateOLEDCountdown(elapsedMillis, currentInterval, isCurrentStateOne ? \"State One\" : \"State Two\");\n  }\n\n  \/\/ State switching logic\n  if (isCurrentStateOne) {\n    if (elapsedMillis >= INTERVAL_STATE_1_TO_2) {\n      sendStateTwo();\n      isCurrentStateOne = false;     \n      previousMillis = currentMillis; \n      lastOledUpdateMillis = currentMillis;\n      updateOLEDCountdown(0, INTERVAL_STATE_2_TO_1, \"State Two\");\n    }\n  } else {\n    if (elapsedMillis >= INTERVAL_STATE_2_TO_1) {\n      sendStateOne();\n      isCurrentStateOne = true;      \n      previousMillis = currentMillis; \n      lastOledUpdateMillis = currentMillis;\n      updateOLEDCountdown(0, INTERVAL_STATE_1_TO_2, \"State One\");\n    }\n  }\n}\n\nvoid updateOLEDCountdown(unsigned long elapsed, unsigned long totalDuration, const char* stateName) {\n  long remainingSeconds = (totalDuration - elapsed) \/ 1000UL;\n  if (remainingSeconds &lt; 0) remainingSeconds = 0;\n\n  int minutes = remainingSeconds \/ 60;\n  int seconds = remainingSeconds % 60;\n\n  display.clearDisplay();\n  \n  \/\/ Header: Active State\n  display.setTextSize(1);\n  display.setCursor(0, 4);\n  display.print(\"Sending: \");\n  display.println(stateName);\n  \n  \/\/ Visual divider line\n  display.drawFastHLine(0, 18, 128, SH110X_WHITE);\n\n  \/\/ Large Countdown Display\n  display.setTextSize(2);\n  display.setCursor(12, 32);\n  \n  \/\/ Format matching: \"3m 30s\" or \"9m 0s\"\n  display.print(minutes);\n  display.print(\"m \");\n  display.print(seconds);\n  display.print(\"s\");\n  \n  display.display();\n}\n\nvoid flashLED() {\n  for (int i = 0; i &lt; 9; i++) {\n    digitalWrite(kIndicatorLedPin, HIGH);\n    delay(166); \n    digitalWrite(kIndicatorLedPin, LOW);\n    delay(167); \n  }\n}\n\nvoid sendStateOne() {\n  flashLED(); \n  neoclimaAC.setRaw(rawStateOne);\n  neoclimaAC.send();\n}\n\nvoid sendStateTwo() {\n  flashLED(); \n  neoclimaAC.setRaw(rawStateTwo);\n  neoclimaAC.send();\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;ESP32 (EP.6) \u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e08\u0e30\u0e02\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 ESP32 \u0e01\u0e31\u0e1a\u0e15\u0e31\u0e27\u0e23\u0e31\u0e1a\u0e41\u0e25\u0e30\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 Infrared&nbsp;&nbsp;\u0e19\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e2d\u0e35\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e21\u0e32\u0e01\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a\u0e15\u0e31\u0e27\u0e23\u0e31\u0e1a\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e2d\u0e34\u0e19\u0e1f\u0e23\u0e32\u0e40\u0e23\u0e14 38 &#8211; 40 KHz \u0e08\u0e32\u0e01 remote \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e41\u0e25\u0e30\u0e41\u0e2d\u0e23\u0e4c&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49 ESP32 + Infrared LED \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13\u0e41\u0e17\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 remote control \u0e44\u0e1b\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e2d\u0e30\u0e44\u0e23\u0e01\u0e47\u0e44\u0e14\u0e49\u0e43\u0e19\u0e1a\u0e49\u0e32\u0e19 \u0e01\u0e23\u0e30\u0e17\u0e39\u0e49\u0e40\u0e01\u0e48\u0e32\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14\ud83d\uded1 EP.1&nbsp;&nbsp;\u0e41\u0e19\u0e30\u0e19\u0e33\u0e40\u0e1a\u0e37\u0e49\u0e2d\u0e07\u0e15\u0e49\u0e19\u0e43\u0e2b\u0e49\u0e23\u0e39\u0e49\u0e08\u0e31\u0e01 ESP32https:\/\/pantip.com\/topic\/44159372\ud83d\uded1 EP.2&nbsp;&nbsp;\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 ESP32 \u0e01\u0e31\u0e1a web dashboardhttps:\/\/pantip.com\/topic\/44161526\ud83d\uded1 EP.3&nbsp;&nbsp;\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 ESP32 \u0e01\u0e31\u0e1a sensor \u0e15\u0e48\u0e32\u0e07 \u0e46https:\/\/pantip.com\/topic\/44163637\ud83d\uded1 EP.4&nbsp;&nbsp;ESP32 \u0e01\u0e31\u0e1a dashboard + \u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19 Linehttps:\/\/pantip.com\/topic\/44165778\ud83d\uded1 EP.5&nbsp;&nbsp;ESP32 \u0e01\u0e31\u0e1a\u0e07\u0e32\u0e19 PWMhttps:\/\/pantip.com\/topic\/44167818 concept \u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e47\u0e21\u0e35\u0e40\u0e1e\u0e35\u0e22\u0e07 2 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19\u0e04\u0e23\u0e31\u0e1a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e41\u0e23\u0e01\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e02\u0e35\u0e22\u0e19 Code \u0e43\u0e2b\u0e49 ESP32 \u0e23\u0e31\u0e1a\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 infrared &hellip; <a href=\"https:\/\/navy007.com\/WP\/archives\/355\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;ESP32 (EP.6) ESP32 \u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 Infrared&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[260,3],"tags":[271,270,272],"class_list":["post-355","post","type-post","status-publish","format-standard","hentry","category-arduino-esp32","category-3","tag-infrared-led","tag-tsop4838","tag-272"],"_links":{"self":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/comments?post=355"}],"version-history":[{"count":2,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/355\/revisions"}],"predecessor-version":[{"id":357,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/355\/revisions\/357"}],"wp:attachment":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/media?parent=355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/categories?post=355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/tags?post=355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}