{"id":361,"date":"2026-07-30T15:24:32","date_gmt":"2026-07-30T08:24:32","guid":{"rendered":"https:\/\/navy007.com\/WP\/?p=361"},"modified":"2026-07-30T15:25:51","modified_gmt":"2026-07-30T08:25:51","slug":"esp32-ep-8-esp32-%e0%b8%84%e0%b8%a7%e0%b8%9a%e0%b8%84%e0%b8%b8%e0%b8%a1%e0%b8%ad%e0%b8%b8%e0%b8%9b%e0%b8%81%e0%b8%a3%e0%b8%93%e0%b9%8c%e0%b9%84%e0%b8%9f%e0%b8%9f%e0%b9%89%e0%b8%b2%e0%b9%83","status":"publish","type":"post","link":"https:\/\/navy007.com\/WP\/archives\/361","title":{"rendered":"ESP32 (EP.8) ESP32\u00a0\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e08\u0e30\u0e02\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e43\u0e0a\u0e49 ESP32 \u0e01\u0e31\u0e1a\u0e23\u0e35\u0e42\u0e21\u0e17\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 ESP32 \u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07\u0e08\u0e30\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e21\u0e32\u0e01&nbsp;&nbsp;\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01 ESP32 \u0e21\u0e35\u0e02\u0e32 GPIO \u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01 (\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14\u0e16\u0e36\u0e07\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13 15 \u0e02\u0e32\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e1a\u0e1a digital ON\/OFF)&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e23\u0e35\u0e42\u0e21\u0e17 1 \u0e2d\u0e31\u0e19\u0e01\u0e47\u0e08\u0e30\u0e21\u0e35\u0e17\u0e31\u0e49\u0e07\u0e41\u0e1b\u0e49\u0e19\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e41\u0e25\u0e30\u0e1b\u0e38\u0e48\u0e21\u0e2d\u0e37\u0e48\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e31\u0e19&nbsp;&nbsp;\u0e19\u0e31\u0e48\u0e19\u0e01\u0e47\u0e2b\u0e21\u0e32\u0e22\u0e04\u0e27\u0e32\u0e21\u0e27\u0e48\u0e32\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e14\u0e49\u0e19\u0e31\u0e1a\u0e2a\u0e34\u0e1a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48\u0e21\u0e35\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07\u0e42\u0e14\u0e22\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e19\u0e31\u0e48\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a\u0e42\u0e15\u0e4a\u0e30\u0e2b\u0e23\u0e37\u0e2d\u0e19\u0e2d\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e1a\u0e19\u0e40\u0e15\u0e35\u0e22\u0e07\u0e01\u0e47\u0e44\u0e14\u0e49\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">project \u0e19\u0e35\u0e49\u0e04\u0e48\u0e2d\u0e19\u0e02\u0e49\u0e32\u0e07\u0e08\u0e30\u0e07\u0e48\u0e32\u0e22\u0e21\u0e32\u0e01 &#8230;. \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e08\u0e30\u0e21\u0e35 2 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e02\u0e31\u0e49\u0e19\u0e41\u0e23\u0e01\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e23\u0e32\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e2b\u0e32 code \u0e17\u0e35\u0e48\u0e15\u0e31\u0e27\u0e23\u0e35\u0e42\u0e21\u0e17\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 Infrared \u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e01\u0e48\u0e2d\u0e19&nbsp;&nbsp;\u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 infrared \u0e17\u0e35\u0e48\u0e23\u0e35\u0e42\u0e21\u0e17\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 pulse train \u0e41\u0e1a\u0e1a\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/832\/091\/000\/ms777exk2a5bO0oG8fguh3-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e0b\u0e36\u0e48\u0e07\u0e01\u0e47\u0e41\u0e19\u0e48\u0e19\u0e2d\u0e19\u0e27\u0e48\u0e32\u0e17\u0e38\u0e01\u0e1b\u0e38\u0e48\u0e21\u0e02\u0e2d\u0e07\u0e23\u0e35\u0e42\u0e21\u0e17\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e08\u0e30\u0e21\u0e35 code \u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19&nbsp;&nbsp;\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e02\u0e2d\u0e07 code \u0e19\u0e35\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e23\u0e31\u0e1a\u0e42\u0e14\u0e22 ESP32 \u0e21\u0e31\u0e19\u0e08\u0e30\u0e41\u0e1b\u0e25\u0e07 pulse train \u0e17\u0e35\u0e48\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e38\u0e14 data \u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a HEX (Hexadecimal numbers) \u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e07\u0e32\u0e19\u0e23\u0e48\u0e27\u0e21\u0e01\u0e31\u0e1a library \u0e04\u0e23\u0e31\u0e1a &#8230;. \u0e0b\u0e36\u0e48\u0e07 library \u0e43\u0e2b\u0e21\u0e48\u0e2a\u0e38\u0e14\u0e17\u0e35\u0e48\u0e41\u0e19\u0e30\u0e19\u0e33\u0e01\u0e47\u0e04\u0e37\u0e2d &#8220;IRremote&#8221; library (\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e42\u0e14\u0e22 shirriff \/ z3t0 \/ ArminJo)&nbsp;&nbsp;\u0e15\u0e31\u0e27\u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14\u0e19\u0e35\u0e49\u0e17\u0e33\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e14\u0e35\u0e41\u0e25\u0e30\u0e43\u0e2b\u0e49 HEX data \u0e2a\u0e31\u0e49\u0e19\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14&nbsp;&nbsp;\u0e14\u0e39\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e04\u0e25\u0e34\u0e1b\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-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=\"\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 ESP32 \u0e01\u0e31\u0e1a\u0e23\u0e35\u0e42\u0e21\u0e17\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/8tRtMW_8Suw?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\">\u0e08\u0e32\u0e01\u0e04\u0e25\u0e34\u0e1b\u0e19\u0e35\u0e49\u0e08\u0e30\u0e40\u0e2b\u0e47\u0e19\u0e27\u0e48\u0e32\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e40\u0e23\u0e32\u0e01\u0e14\u0e1b\u0e38\u0e48\u0e21\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02 1 2 3 \u0e41\u0e25\u0e30\u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e21\u0e31\u0e19\u0e08\u0e30\u0e43\u0e2b\u0e49 HEX data \u0e17\u0e35\u0e48\u0e2a\u0e31\u0e49\u0e19\u0e21\u0e32\u0e01&nbsp;&nbsp;\u0e40\u0e23\u0e32\u0e01\u0e47\u0e40\u0e2d\u0e32 HEX data \u0e19\u0e35\u0e49\u0e44\u0e1b\u0e43\u0e2a\u0e48\u0e43\u0e19 code \u0e02\u0e2d\u0e07 ESP32 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e31\u0e48\u0e07\u0e07\u0e32\u0e19 GPIO \u0e43\u0e2b\u0e49 ON \/ OFF \u0e15\u0e32\u0e21\u0e1b\u0e38\u0e48\u0e21\u0e02\u0e2d\u0e07\u0e23\u0e35\u0e42\u0e21\u0e17\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e01\u0e14\u0e44\u0e14\u0e49<\/p>\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&gt;\n#include &lt;IRremote.hpp&gt;\n\n\/\/ Hardware Pin Definitions\nconst int IR_RECEIVE_PIN = 15;\nconst int PIN_BTN1 = 21;\nconst int PIN_BTN2 = 38;\nconst int PIN_BTN3 = 39;\nconst int PIN_BTN4 = 47;\nconst int PIN_BUZZER = 4;\n\n\/\/ Captured IR Raw Data Constants\nconst uint32_t IR_BTN_1 = 0x7308CF;\nconst uint32_t IR_BTN_2 = 0xB304CF;\nconst uint32_t IR_BTN_3 = 0x330CCF;\nconst uint32_t IR_BTN_4 = 0xD302CF;\n\n\/\/ Variables to track output states\nbool statePin21 = LOW;\nbool statePin38 = LOW;\nbool statePin39 = LOW;\nbool statePin47 = LOW;\n\n\/\/ Non-blocking Buzzer Timing Variables\nbool buzzerActive = false;\nunsigned long buzzerStartTime = 0;\nconst unsigned long BUZZER_DURATION = 200; \/\/ 0.5 second beep duration\n\nvoid setup() {\n  Serial.begin(115200);\n\n  \/\/ Initialize GPIO outputs\n  pinMode(PIN_BTN1, OUTPUT);\n  pinMode(PIN_BTN2, OUTPUT);\n  pinMode(PIN_BTN3, OUTPUT);\n  pinMode(PIN_BTN4, OUTPUT);\n  pinMode(PIN_BUZZER, OUTPUT);\n\n  digitalWrite(PIN_BTN1, LOW);\n  digitalWrite(PIN_BTN2, LOW);\n  digitalWrite(PIN_BTN3, LOW);\n  digitalWrite(PIN_BTN4, LOW);\n  digitalWrite(PIN_BUZZER, LOW);\n\n  \/\/ Initialize IR Receiver\n  IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);\n  Serial.println(\"ESP32-S3 IR Control System Ready.\");\n}\n\nvoid loop() {\n  \/\/ 1. Process Incoming IR Commands\n  if (IrReceiver.decode()) {\n    \/\/ Ignore repeat hold signals to prevent accidental fast toggling\n    if (!(IrReceiver.decodedIRData.flags &amp; IRDATA_FLAGS_IS_REPEAT)) {\n      uint32_t rawData = IrReceiver.decodedIRData.decodedRawData;\n\n      \/\/ Trigger Buzzer for 0.5 sec upon receiving any IR command\n      digitalWrite(PIN_BUZZER, HIGH);\n      buzzerActive = true;\n      buzzerStartTime = millis();\n\n      switch (rawData) {\n        case IR_BTN_1:\n          statePin21 = !statePin21;\n          digitalWrite(PIN_BTN1, statePin21);\n          Serial.print(\"Button 1 pressed -&gt; GPIO 21 state: \");\n          Serial.println(statePin21 ? \"ON\" : \"OFF\");\n          break;\n\n        case IR_BTN_2:\n          statePin38 = !statePin38;\n          digitalWrite(PIN_BTN2, statePin38);\n          Serial.print(\"Button 2 pressed -&gt; GPIO 38 state: \");\n          Serial.println(statePin38 ? \"ON\" : \"OFF\");\n          break;\n\n        case IR_BTN_3:\n          statePin39 = !statePin39;\n          digitalWrite(PIN_BTN3, statePin39);\n          Serial.print(\"Button 3 pressed -&gt; GPIO 39 state: \");\n          Serial.println(statePin39 ? \"ON\" : \"OFF\");\n          break;\n\n        case IR_BTN_4:\n          statePin47 = !statePin47;\n          digitalWrite(PIN_BTN4, statePin47);\n          Serial.print(\"Button 4 pressed -&gt; GPIO 47 state: \");\n          Serial.println(statePin47 ? \"ON\" : \"OFF\");\n          break;\n\n        default:\n          \/\/ Unmapped IR codes\n          break;\n      }\n    }\n\n    IrReceiver.resume(); \/\/ Enable receiving the next signal\n  }\n\n  \/\/ 2. Non-blocking Buzzer Timer (turns OFF active buzzer after 500ms)\n  if (buzzerActive &amp;&amp; (millis() - buzzerStartTime &gt;= BUZZER_DURATION)) {\n    digitalWrite(PIN_BUZZER, LOW);\n    buzzerActive = false;\n  }\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\">\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e21\u0e35\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e35\u0e49&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/832\/091\/000\/ms77esq8kxeMNmXHNzVIq-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">LED 4 \u0e14\u0e27\u0e07\u0e43\u0e19\u0e20\u0e32\u0e1e\u0e15\u0e48\u0e2d\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a GPIO \u0e02\u0e2d\u0e07 ESP32 &#8230;. \u0e0b\u0e36\u0e48\u0e07\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e08\u0e23\u0e34\u0e07\u0e40\u0e23\u0e32\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e48\u0e2d\u0e27\u0e07\u0e08\u0e23\u0e08\u0e32\u0e01 GPIO \u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e44\u0e1b\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e0b\u0e36\u0e48\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f 220 \u0e42\u0e27\u0e25\u0e15\u0e4c&nbsp;&nbsp;\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e15\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e07\u0e48\u0e32\u0e22\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e43\u0e0a\u0e49\u0e04\u0e23\u0e31\u0e1a\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e15\u0e32\u0e21\u0e20\u0e32\u0e1e\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/832\/091\/000\/ms77e5dm1q9vr8HXy97O9a-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2b\u0e32 HEX data \u0e02\u0e2d\u0e07\u0e41\u0e15\u0e48\u0e25\u0e30\u0e1b\u0e38\u0e48\u0e21\u0e43\u0e19\u0e01\u0e32\u0e23\u0e01\u0e14\u0e23\u0e35\u0e42\u0e21\u0e17&nbsp;&nbsp;\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e21\u0e35\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e35\u0e49<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/832\/091\/000\/ms77knpc2uk33REuAPcHj4-o.jpg\" alt=\"\"\/><\/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&gt;\n#include &lt;IRremote.hpp&gt;\n\n\/\/ Define the GPIO pin where your IR receiver module (e.g., VS1838B) OUT pin is connected\nconst int IR_RECEIVE_PIN = 15; \n\nvoid setup() {\n  \/\/ Initialize Serial communication at 115200 baud\n  Serial.begin(115200);\n  while (!Serial) delay(10); \/\/ Wait for Serial to open\n\n  Serial.println(\"\\n--- ESP32 IR Code Scanner ---\");\n  Serial.println(\"Point your remote at the receiver and press any button...\\n\");\n\n  \/\/ Start the IR receiver\n  \/\/ ENABLE_LED_FEEDBACK blinks the ESP32's built-in LED whenever an IR signal is detected\n  IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);\n}\n\nvoid loop() {\n  \/\/ Check if an IR signal has been received and decoded\n  if (IrReceiver.decode()) {\n    \n    \/\/ Ignore repeat signals (when you hold down a button)\n    if (!(IrReceiver.decodedIRData.flags &amp; IRDATA_FLAGS_IS_REPEAT)) {\n      \n      Serial.print(\"Protocol: \");\n      Serial.print(getProtocolString(IrReceiver.decodedIRData.protocol));\n      \n      \/\/ Print the 8-bit Command in HEX format (Most common for button mapping)\n      Serial.print(\" | Command (HEX): 0x\");\n      if (IrReceiver.decodedIRData.command &lt; 0x10) Serial.print(\"0\"); \/\/ Leading zero formatting\n      Serial.print(IrReceiver.decodedIRData.command, HEX);\n\n      \/\/ Print the full Raw Data\/Address frame in HEX format for reference\n      Serial.print(\" | Raw Data: 0x\");\n      Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);\n    } \n    else {\n      Serial.println(\"&#91;Button Held Down - Repeat Signal]\");\n    }\n\n    \/\/ Prepare the receiver to accept the next IR signal\n    IrReceiver.resume(); \n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e43\u0e2b\u0e49\u0e17\u0e48\u0e32\u0e19\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19 HEX data \u0e15\u0e32\u0e21\u0e02\u0e2d\u0e07\u0e23\u0e35\u0e42\u0e21\u0e17\u0e17\u0e48\u0e32\u0e19<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/832\/091\/000\/ms77vqah1c138W8qDm0uBv-o.png\" alt=\"\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e08\u0e30\u0e02\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e43\u0e0a\u0e49 ESP32 \u0e01\u0e31\u0e1a\u0e23\u0e35\u0e42\u0e21\u0e17\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07 \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 ESP32 \u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07\u0e08\u0e30\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e21\u0e32\u0e01&nbsp;&nbsp;\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e08\u0e32\u0e01 ESP32 \u0e21\u0e35\u0e02\u0e32 GPIO \u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01 (\u0e2a\u0e39\u0e07\u0e2a\u0e38\u0e14\u0e16\u0e36\u0e07\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13 15 \u0e02\u0e32\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e1a\u0e1a digital ON\/OFF)&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e23\u0e35\u0e42\u0e21\u0e17 1 \u0e2d\u0e31\u0e19\u0e01\u0e47\u0e08\u0e30\u0e21\u0e35\u0e17\u0e31\u0e49\u0e07\u0e41\u0e1b\u0e49\u0e19\u0e15\u0e31\u0e27\u0e40\u0e25\u0e02\u0e41\u0e25\u0e30\u0e1b\u0e38\u0e48\u0e21\u0e2d\u0e37\u0e48\u0e19\u0e08\u0e33\u0e19\u0e27\u0e19\u0e21\u0e32\u0e01\u0e40\u0e0a\u0e48\u0e19\u0e01\u0e31\u0e19&nbsp;&nbsp;\u0e19\u0e31\u0e48\u0e19\u0e01\u0e47\u0e2b\u0e21\u0e32\u0e22\u0e04\u0e27\u0e32\u0e21\u0e27\u0e48\u0e32\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e14\u0e49\u0e19\u0e31\u0e1a\u0e2a\u0e34\u0e1a\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48\u0e21\u0e35\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07\u0e42\u0e14\u0e22\u0e17\u0e35\u0e48\u0e40\u0e23\u0e32\u0e19\u0e31\u0e48\u0e07\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e31\u0e1a\u0e42\u0e15\u0e4a\u0e30\u0e2b\u0e23\u0e37\u0e2d\u0e19\u0e2d\u0e19\u0e2d\u0e22\u0e39\u0e48\u0e1a\u0e19\u0e40\u0e15\u0e35\u0e22\u0e07\u0e01\u0e47\u0e44\u0e14\u0e49\u0e04\u0e23\u0e31\u0e1a project \u0e19\u0e35\u0e49\u0e04\u0e48\u0e2d\u0e19\u0e02\u0e49\u0e32\u0e07\u0e08\u0e30\u0e07\u0e48\u0e32\u0e22\u0e21\u0e32\u0e01 &#8230;. \u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e08\u0e30\u0e21\u0e35 2 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e17\u0e48\u0e32\u0e19\u0e31\u0e49\u0e19 \u0e02\u0e31\u0e49\u0e19\u0e41\u0e23\u0e01\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e23\u0e32\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e2b\u0e32 code \u0e17\u0e35\u0e48\u0e15\u0e31\u0e27\u0e23\u0e35\u0e42\u0e21\u0e17\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e2a\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 Infrared \u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e01\u0e48\u0e2d\u0e19&nbsp;&nbsp;\u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e31\u0e0d\u0e0d\u0e32\u0e13 infrared \u0e17\u0e35\u0e48\u0e23\u0e35\u0e42\u0e21\u0e17\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 pulse train \u0e41\u0e1a\u0e1a\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49 \u0e0b\u0e36\u0e48\u0e07\u0e01\u0e47\u0e41\u0e19\u0e48\u0e19\u0e2d\u0e19\u0e27\u0e48\u0e32\u0e17\u0e38\u0e01\u0e1b\u0e38\u0e48\u0e21\u0e02\u0e2d\u0e07\u0e23\u0e35\u0e42\u0e21\u0e17\u0e04\u0e2d\u0e19\u0e42\u0e17\u0e23\u0e25\u0e08\u0e30\u0e21\u0e35 code \u0e15\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19&nbsp;&nbsp;\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e02\u0e2d\u0e07 code \u0e19\u0e35\u0e49\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e23\u0e31\u0e1a\u0e42\u0e14\u0e22 ESP32 \u0e21\u0e31\u0e19\u0e08\u0e30\u0e41\u0e1b\u0e25\u0e07 pulse train \u0e17\u0e35\u0e48\u0e0b\u0e31\u0e1a\u0e0b\u0e49\u0e2d\u0e19\u0e2d\u0e2d\u0e01\u0e21\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e38\u0e14 data \u0e43\u0e19\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a HEX (Hexadecimal numbers) \u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e17\u0e33\u0e07\u0e32\u0e19\u0e23\u0e48\u0e27\u0e21\u0e01\u0e31\u0e1a library \u0e04\u0e23\u0e31\u0e1a &#8230;. \u0e0b\u0e36\u0e48\u0e07 &hellip; <a href=\"https:\/\/navy007.com\/WP\/archives\/361\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;ESP32 (EP.8) ESP32\u00a0\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e43\u0e19\u0e2b\u0e49\u0e2d\u0e07&#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":[278,276,277],"class_list":["post-361","post","type-post","status-publish","format-standard","hentry","category-arduino-esp32","category-3","tag-ir-library","tag-ir-remote","tag-277"],"_links":{"self":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/361","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=361"}],"version-history":[{"count":2,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/361\/revisions"}],"predecessor-version":[{"id":363,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/361\/revisions\/363"}],"wp:attachment":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/media?parent=361"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/categories?post=361"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/tags?post=361"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}