{"id":346,"date":"2026-07-17T10:57:28","date_gmt":"2026-07-17T03:57:28","guid":{"rendered":"https:\/\/navy007.com\/WP\/?p=346"},"modified":"2026-07-19T09:29:02","modified_gmt":"2026-07-19T02:29:02","slug":"esp32-ep-4-esp32-%e0%b8%81%e0%b8%b1%e0%b8%9a-dashboard-%e0%b9%81%e0%b8%88%e0%b9%89%e0%b8%87%e0%b9%80%e0%b8%95%e0%b8%b7%e0%b8%ad%e0%b8%99%e0%b8%9c%e0%b9%88%e0%b8%b2%e0%b8%99-line","status":"publish","type":"post","link":"https:\/\/navy007.com\/WP\/archives\/346","title":{"rendered":"ESP32 (EP.4)\u00a0ESP32 \u0e01\u0e31\u0e1a dashboard + \u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19 Line"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u0e08\u0e30\u0e02\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e01\u0e32\u0e23\u0e19\u0e33 ESP32 \u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a web dashboard&nbsp;<em><strong>\u0e1a\u0e19 server \u0e08\u0e23\u0e34\u0e07<\/strong><\/em>&nbsp;\u0e41\u0e25\u0e30\u0e21\u0e35 feature \u0e17\u0e35\u0e48\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e01\u0e47\u0e04\u0e37\u0e2d Line messaging API (\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19 Line)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a web dashboard \u0e1a\u0e19 server \u0e08\u0e23\u0e34\u0e07\u0e04\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e1a\u0e1a IoT \u0e40\u0e15\u0e47\u0e21\u0e15\u0e31\u0e27\u0e04\u0e23\u0e31\u0e1a \u0e20\u0e32\u0e1e\u0e23\u0e27\u0e21\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49\u0e01\u0e47\u0e04\u0e37\u0e2d ESP32 \u0e08\u0e30\u0e23\u0e31\u0e1a data \u0e08\u0e32\u0e01 sensor \u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e41\u0e25\u0e30\u0e15\u0e48\u0e2d GPIO \u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c \/ \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e43\u0e19\u0e1a\u0e49\u0e32\u0e19&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e43\u0e19\u0e1d\u0e31\u0e48\u0e07\u0e1b\u0e25\u0e32\u0e22\u0e17\u0e32\u0e07 PC \/ Notebook \/ \u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32) \u0e01\u0e47\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 web dashboard \u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2b\u0e23\u0e37\u0e2d\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e02\u0e2d\u0e07 sensor \u0e2b\u0e23\u0e37\u0e2d\u0e23\u0e30\u0e1a\u0e1a\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e17\u0e35\u0e48\u0e1a\u0e49\u0e32\u0e19\u0e1c\u0e48\u0e32\u0e19 web dashboard \u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e14\u0e39\u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e01\u0e14\u0e1b\u0e38\u0e48\u0e21\u0e2a\u0e31\u0e48\u0e07\u0e07\u0e32\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\/\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e43\u0e14 \u0e46 \u0e17\u0e35\u0e48\u0e1a\u0e49\u0e32\u0e19\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49 \u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e43\u0e19\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30 IoT \u0e40\u0e15\u0e47\u0e21\u0e15\u0e31\u0e27<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 2 \u0e2d\u0e22\u0e48\u0e32\u0e07<br>\ud83d\uded1 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e41\u0e23\u0e01\u0e04\u0e37\u0e2d\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27<br>\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 IoT \u0e44\u0e14\u0e49\u0e41\u0e1a\u0e1a\u0e04\u0e25\u0e48\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e21\u0e32\u0e01\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35\u0e40\u0e25\u0e22\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32 \u0e0b\u0e36\u0e48\u0e07\u0e43\u0e19\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19\u0e19\u0e35\u0e49\u0e01\u0e32\u0e23\u0e08\u0e30\u0e08\u0e14\u0e17\u0e30\u0e40\u0e1a\u0e35\u0e22\u0e19 Domain name + \u0e40\u0e0a\u0e48\u0e32 web hosting \u0e1a\u0e2d\u0e01\u0e44\u0e14\u0e49\u0e40\u0e25\u0e22\u0e27\u0e48\u0e32\u0e23\u0e32\u0e04\u0e32\u0e15\u0e48\u0e2d\u0e1b\u0e35\u0e44\u0e21\u0e48\u0e16\u0e36\u0e07 1,000 \u0e1a\u0e32\u0e17\u0e01\u0e47\u0e21\u0e35\u0e04\u0e23\u0e31\u0e1a \u0e16\u0e39\u0e01\u0e2a\u0e38\u0e14\u0e17\u0e35\u0e48\u0e1c\u0e21\u0e40\u0e04\u0e22\u0e40\u0e2b\u0e47\u0e19\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13 850 \u0e1a\u0e32\u0e17\u0e01\u0e47\u0e44\u0e14\u0e49\u0e41\u0e25\u0e49\u0e27 \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19\u0e08\u0e36\u0e07\u0e02\u0e2d\u0e41\u0e19\u0e30\u0e19\u0e33\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e22\u0e34\u0e48\u0e07\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e17\u0e48\u0e32\u0e19\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e19\u0e23\u0e39\u0e49\u0e01\u0e32\u0e23\u0e17\u0e33 IoT project \u0e2b\u0e23\u0e37\u0e2d\u0e08\u0e30\u0e1d\u0e36\u0e01\u0e1d\u0e35\u0e21\u0e37\u0e2d\u0e01\u0e31\u0e1a ESP32 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 IoT \u0e40\u0e15\u0e47\u0e21\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e01\u0e47\u0e04\u0e27\u0e23\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u0e44\u0e27\u0e49<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e2d\u0e35\u0e01\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e17\u0e35\u0e48\u0e19\u0e34\u0e22\u0e21\u0e01\u0e31\u0e19\u0e21\u0e32\u0e01\u0e01\u0e47\u0e04\u0e37\u0e2d &#8220;Cloud IoT&#8221; \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19 ThingsBoard , Adafruit IO , Blynk , Thinger.io , ThingSpeak&nbsp;&nbsp;\u0e21\u0e31\u0e19\u0e04\u0e37\u0e2d\u0e41\u0e1e\u0e25\u0e15\u0e1f\u0e2d\u0e23\u0e4c\u0e21\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e44\u0e14\u0e49\u0e1f\u0e23\u0e35\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e41\u0e2a\u0e14\u0e07 dashboard \u0e44\u0e14\u0e49\u0e41\u0e25\u0e30\u0e41\u0e17\u0e1a\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49 code \u0e40\u0e25\u0e22 \u0e25\u0e31\u0e01\u0e29\u0e13\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 dashboard + \u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e31\u0e1a ESP32 \u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23 &#8220;\u0e25\u0e32\u0e01\u0e41\u0e25\u0e49\u0e27\u0e27\u0e32\u0e07&#8221; \u0e41\u0e15\u0e48\u0e1c\u0e21\u0e04\u0e34\u0e14\u0e27\u0e48\u0e32\u0e21\u0e31\u0e19\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e21\u0e48\u0e04\u0e48\u0e2d\u0e22\u0e22\u0e37\u0e14\u0e2b\u0e22\u0e38\u0e48\u0e19\u0e2a\u0e31\u0e01\u0e40\u0e17\u0e48\u0e32\u0e44\u0e2b\u0e23\u0e48 \/ \u0e1b\u0e23\u0e31\u0e1a\u0e41\u0e15\u0e48\u0e07\u0e40\u0e2d\u0e07\u0e44\u0e14\u0e49\u0e44\u0e21\u0e48\u0e40\u0e15\u0e47\u0e21\u0e17\u0e35\u0e48\u0e41\u0e25\u0e30\u0e17\u0e35\u0e48\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e43\u0e0a\u0e49\u0e01\u0e31\u0e1a Line messaging API \u0e44\u0e14\u0e49\u0e22\u0e32\u0e01<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\uded1 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e17\u0e35\u0e48\u0e2a\u0e2d\u0e07\u0e04\u0e37\u0e2d Line messaging API<br>Line messaging API \u0e17\u0e35\u0e48\u0e08\u0e30\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e43\u0e19\u0e42\u0e1b\u0e23\u0e40\u0e08\u0e04\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e01\u0e23\u0e30\u0e17\u0e39\u0e49\u0e19\u0e35\u0e49 \u0e17\u0e38\u0e01\u0e04\u0e19\u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e44\u0e14\u0e49\u0e1f\u0e23\u0e35\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49 300 \u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e15\u0e48\u0e2d\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e0b\u0e36\u0e48\u0e07\u0e01\u0e47\u0e16\u0e37\u0e2d\u0e27\u0e48\u0e32\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e40\u0e1f\u0e37\u0e2d\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e14\u0e25\u0e2d\u0e07\u0e41\u0e25\u0e30\u0e40\u0e23\u0e35\u0e22\u0e19\u0e23\u0e39\u0e49\u0e04\u0e23\u0e31\u0e1a &#8230;. \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 Line messaging API \u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e2a\u0e21\u0e31\u0e04\u0e23 LINE Official Account \u0e01\u0e48\u0e2d\u0e19 &#8230; \u0e40\u0e23\u0e34\u0e48\u0e21\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48\u0e04\u0e23\u0e31\u0e1a<br><a href=\"https:\/\/manager.line.biz\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/manager.line.biz\/<\/a><br>\u0e14\u0e39\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e2a\u0e21\u0e31\u0e04\u0e23\u0e17\u0e35\u0e48\u0e19\u0e35\u0e48<br>(\u0e04\u0e25\u0e34\u0e1b\u0e08\u0e32\u0e01\u0e0a\u0e48\u0e2d\u0e07&nbsp;<strong>\u0e04\u0e23\u0e39\u0e2d\u0e20\u0e34\u0e27\u0e31\u0e12\u0e19\u0e4c &#8220;\u0e2a\u0e2d\u0e19\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e2a\u0e37\u0e48\u0e2d&#8221;<\/strong><br><strong>https:\/\/www.youtube.com\/@KruApiwat<\/strong><\/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=\"ep1 \u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Line Messaging API \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e0a\u0e49\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e41\u0e17\u0e19  Line Notify\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/xJ6chRNjD8A?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\"><br><a href=\"https:\/\/www.youtube.com\/watch?v=xJ6chRNjD8A\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e2a\u0e21\u0e31\u0e04\u0e23 LINE Official Account \u0e40\u0e2a\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27\u0e01\u0e47\u0e44\u0e1b enable messaging API &#8230;. \u0e41\u0e25\u0e30\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e17\u0e38\u0e01\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e23\u0e35\u0e22\u0e1a\u0e23\u0e49\u0e2d\u0e22\u0e41\u0e25\u0e49\u0e27\u0e17\u0e31\u0e49\u0e07 4 \u0e20\u0e32\u0e1e\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07\u0e19\u0e35\u0e49\u0e04\u0e37\u0e2d\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25 2 \u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48\u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1b\u0e43\u0e2a\u0e48\u0e43\u0e19 ESP32 code \u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/744\/091\/000\/mroe9d841swnWUDXuI2jec-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/744\/091\/000\/mroe9d8vvco0tQJ4wn68N-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/744\/091\/000\/mroe9d8g1q9vwB74OKLLtd-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/744\/091\/000\/mroe9d9ah1MUP1BATfD-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e04\u0e37\u0e2d\u0e2a\u0e16\u0e32\u0e1b\u0e31\u0e15\u0e22\u0e01\u0e23\u0e23\u0e21\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a IoT \u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b (\u0e0b\u0e36\u0e48\u0e07 project \u0e19\u0e35\u0e49\u0e01\u0e47\u0e43\u0e0a\u0e49\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/744\/091\/000\/mroeb5s2hSIn9cNpd1v-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e08\u0e32\u0e01\u0e20\u0e32\u0e1e\u0e1a\u0e19\u0e19\u0e35\u0e49&nbsp;&nbsp;ESP32 \u0e17\u0e35\u0e48\u0e1a\u0e49\u0e32\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e17\u0e35\u0e48\u0e17\u0e33\u0e07\u0e32\u0e19\u0e40\u0e23\u0e32\u0e01\u0e47\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e1e\u0e35\u0e22\u0e07 client \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e08\u0e30\u0e2a\u0e48\u0e07-\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e02\u0e49\u0e32\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07 web server&nbsp;&nbsp;\u0e43\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e02\u0e2d\u0e07 web server \u0e01\u0e47\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e35\u0e48\u0e40\u0e01\u0e47\u0e1a dashboard + database \u0e0b\u0e36\u0e48\u0e07 database \u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e22\u0e38\u0e48\u0e07\u0e22\u0e32\u0e01\u0e40\u0e1b\u0e47\u0e19\u0e41\u0e1a\u0e1a SQL \u0e40\u0e25\u0e22\u0e04\u0e23\u0e31\u0e1a \u0e43\u0e0a\u0e49\u0e41\u0e1a\u0e1a text file database (JSON) \u0e01\u0e47\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e14\u0e35\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e1e\u0e2d\u0e41\u0e25\u0e49\u0e27\u0e01\u0e31\u0e1a sensor 2 &#8211; 3 \u0e15\u0e31\u0e27\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e40\u0e01\u0e47\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13 1 \u0e2a\u0e31\u0e1b\u0e14\u0e32\u0e2b\u0e4c\u0e15\u0e48\u0e2d\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07\u0e01\u0e31\u0e19<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e43\u0e19 project \u0e17\u0e35\u0e48\u0e1c\u0e21\u0e08\u0e30\u0e2a\u0e32\u0e18\u0e34\u0e15\u0e43\u0e2b\u0e49\u0e14\u0e39\u0e43\u0e19\u0e01\u0e23\u0e30\u0e17\u0e39\u0e49\u0e19\u0e35\u0e49\u0e2b\u0e19\u0e49\u0e32\u0e15\u0e32\u0e02\u0e2d\u0e07 web dashboard \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e15\u0e32\u0e21\u0e20\u0e32\u0e1e\u0e25\u0e48\u0e32\u0e07\u0e04\u0e23\u0e31\u0e1a&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/744\/091\/000\/mroebrub5aa39YCDIq6FE8-o.png\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e1c\u0e21\u0e15\u0e48\u0e2d sensor \u0e44\u0e27\u0e49 2 \u0e15\u0e31\u0e27\u0e01\u0e47\u0e04\u0e37\u0e2d DHT22 \u0e01\u0e31\u0e1a LDR \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e41\u0e2a\u0e14\u0e07\u0e04\u0e48\u0e32\u0e2d\u0e38\u0e13\u0e2b\u0e20\u0e39\u0e21\u0e34\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e41\u0e2a\u0e07\u0e41\u0e2a\u0e14\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e23\u0e32\u0e1f\u0e17\u0e38\u0e01 1 \u0e19\u0e32\u0e17\u0e35\u0e41\u0e25\u0e30\u0e44\u0e14\u0e49\u0e23\u0e27\u0e21\u0e23\u0e30\u0e1a\u0e1a Line messaging API \u0e44\u0e27\u0e49\u0e14\u0e49\u0e27\u0e22&nbsp;&nbsp;\u0e42\u0e14\u0e22\u0e43\u0e19 Code \u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e1b\u0e23\u0e30\u0e15\u0e39\u0e41\u0e25\u0e30\u0e41\u0e2a\u0e07\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e21\u0e35\u0e04\u0e48\u0e32\u0e15\u0e48\u0e33\u0e01\u0e27\u0e48\u0e32\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e44\u0e27\u0e49\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e20\u0e32\u0e1e\u0e02\u0e2d\u0e07\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 \u0e01\u0e47\u0e04\u0e37\u0e2d\u0e21\u0e35 sensor 2 \u0e15\u0e31\u0e27\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\/744\/091\/000\/mroecsbavcoD4j84b8eWG-o.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e41\u0e25\u0e30\u0e43\u0e19\u0e20\u0e32\u0e1e\u0e19\u0e35\u0e49\u0e2a\u0e31\u0e07\u0e40\u0e01\u0e15\u0e08\u0e38\u0e14\u0e2a\u0e35\u0e41\u0e14\u0e07\u0e01\u0e31\u0e1a\u0e19\u0e49\u0e33\u0e40\u0e07\u0e34\u0e19\u0e01\u0e23\u0e30\u0e1e\u0e23\u0e34\u0e1a\u0e2d\u0e22\u0e39\u0e48\u0e01\u0e47\u0e04\u0e37\u0e2d\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e32\u0e22 jumper 2 \u0e40\u0e2a\u0e49\u0e19\u0e17\u0e35\u0e48\u0e1c\u0e21\u0e43\u0e0a\u0e49\u0e41\u0e17\u0e19 switch \u0e08\u0e33\u0e25\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e1b\u0e23\u0e30\u0e15\u0e39\u0e14\u0e49\u0e32\u0e19\u0e2b\u0e19\u0e49\u0e32\u0e41\u0e25\u0e30\u0e14\u0e49\u0e32\u0e19\u0e2b\u0e25\u0e31\u0e07\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e44\u0e1b\u0e22\u0e31\u0e07\u0e40\u0e27\u0e47\u0e1a server \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e40\u0e02\u0e49\u0e32 LINE \u0e43\u0e19\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e1b\u0e23\u0e30\u0e15\u0e39\u0e16\u0e39\u0e01\u0e40\u0e1b\u0e34\u0e14\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e27\u0e48\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e41\u0e2a\u0e07\u0e19\u0e49\u0e2d\u0e22\u0e01\u0e27\u0e48\u0e32\u0e17\u0e35\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e04\u0e23\u0e31\u0e1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/f.ptcdn.info\/744\/091\/000\/mroecsaq1swn8KK6VmcSQ3-o.gif\" alt=\"\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e04\u0e25\u0e34\u0e1a\u0e19\u0e35\u0e49\u0e41\u0e2a\u0e14\u0e07\u0e16\u0e36\u0e07\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19 Line<\/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 dashboard + \u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19 Line\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/S7GRLnLLyPQ?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>\/*\n   ESP32-S3 N16R8 Data Logger &amp; Monitor (Core 3.3.1)\n   Hardware Connections:\n   - DHT22 Data Pin: GPIO 5 (needs 10k pull-up resistor to 3.3V)\n   - LDR\/Voltage Sensor: GPIO 1 (Analog input ADC1_CH0)\n   - Front Door Sensor: GPIO 7 (Logic input with internal pull-up)\n   - Back Door Sensor: GPIO 8 (Logic input with internal pull-up)\n*\/\n\n#include &lt;WiFi.h>\n#include &lt;HTTPClient.h>\n#include &lt;WiFiClientSecure.h>\n#include &lt;DHT.h>\n\n\/\/ Wi-Fi Credentials\nconst char* ssid     = \"NT91124G\";\nconst char* password = \"911928TOT\";\n\n\/\/ API Endpoints &amp; Credentials\nconst char* serverUrl = \"https:\/\/www.navy007.com\/temp32\/data_receiver.php\";\nconst char* lineApiUrl = \"https:\/\/api.line.me\/v2\/bot\/message\/push\";\nconst char* lineToken  = \" Line Token \u0e02\u0e2d\u0e07\u0e17\u0e48\u0e32\u0e19 \"; \nconst char* lineUserId = \" User ID \u0e02\u0e2d\u0e07\u0e17\u0e48\u0e32\u0e19 \";\n\n\/\/ Pins\n#define DHTPIN 5\n#define DHTTYPE DHT22\n#define VOLT_PIN 1\n#define DOOR_FRONT_PIN 7\n#define DOOR_BACK_PIN 8\n\nDHT dht(DHTPIN, DHTTYPE);\n\n\/\/ Timers (Non-blocking)\nunsigned long lastDHTSend = 0;\nunsigned long lastSensorRead = 0;\nconst unsigned long dhtInterval = 60000;   \/\/ 1 minute\nconst unsigned long sensorInterval = 5000; \/\/ 5 seconds\n\n\/\/ State tracking for LINE Spam Prevention\nenum LightState { DARK, PARTLY_CLOUD, STRONG_SUN };\nLightState currentLightState = STRONG_SUN; \nbool isFirstLightRead = true;\n\nint lastFrontDoorState = -1; \nint lastBackDoorState = -1;\n\n\/\/ Float definitions for tracking current values\nfloat currentTemperature = 0.0;\nfloat currentHumidity = 0.0;\nfloat currentVoltGPIO1 = 0.0;\n\nvoid setup() {\n  Serial.begin(115200);\n  \n  \/\/ Setup Sensor Pins\n  dht.begin();\n  pinMode(VOLT_PIN, INPUT); \/\/ ADC1_CH0 (GPIO 1 is safe for ADC)\n  pinMode(DOOR_FRONT_PIN, INPUT_PULLUP);\n  pinMode(DOOR_BACK_PIN, INPUT_PULLUP);\n  \n  \/\/ Setup Wi-Fi\n  WiFi.begin(ssid, password);\n  Serial.print(\"Connecting to Wi-Fi\");\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(\".\");\n  }\n  Serial.println(\"\\nConnected to Wi-Fi Network!\");\n}\n\nvoid loop() {\n  unsigned long currentMillis = millis();\n\n  \/\/ Task 1: Pull DHT22 Data every 1 minute\n  if (currentMillis - lastDHTSend >= dhtInterval) {\n    lastDHTSend = currentMillis;\n    readDHT22();\n    sendDataToServer();\n  }\n\n  \/\/ Task 2 &amp; 3: Monitor GPIO 1, 7, and 8 every 5 seconds\n  if (currentMillis - lastSensorRead >= sensorInterval) {\n    lastSensorRead = currentMillis;\n    monitorPins();\n  }\n}\n\nvoid readDHT22() {\n  float temp = dht.readTemperature();\n  float hum = dht.readHumidity();\n  if (!isnan(temp) &amp;&amp; !isnan(hum)) {\n    currentTemperature = temp;\n    currentHumidity = hum;\n    Serial.printf(\"DHT22 - Temp: %.2f C, Hum: %.2f%%\\n\", temp, hum);\n  } else {\n    Serial.println(\"Error reading from DHT22\");\n  }\n}\n\nvoid monitorPins() {\n  \/\/ --- GPIO 1 Voltage Monitoring ---\n  \/\/ ESP32-S3 ADC has 12-bit resolution (0-4095) spanning ~3.1V depending on calibration\n  int rawADC = analogRead(VOLT_PIN);\n  currentVoltGPIO1 = (rawADC \/ 4095.0) * 3.3; \/\/ Estimated voltage scale\n\n  LightState computedState;\n  if (currentVoltGPIO1 &lt; 2.0) {\n    computedState = DARK;\n  } else if (currentVoltGPIO1 >= 2.0 &amp;&amp; currentVoltGPIO1 &lt;= 2.35) {\n    computedState = PARTLY_CLOUD;\n  } else {\n    computedState = STRONG_SUN;\n  }\n\n  \/\/ Handle state change for light sensor to prevent spamming\n  if (computedState != currentLightState || isFirstLightRead) {\n    currentLightState = computedState;\n    isFirstLightRead = false;\n    \n    if (currentLightState == DARK) {\n      sendLineMessage(\"\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e41\u0e2a\u0e07\u0e15\u0e48\u0e33\u0e40\u0e01\u0e34\u0e19\u0e44\u0e1b\");\n    }\n  }\n\n  \/\/ --- GPIO 7 (Front Door) &amp; GPIO 8 (Back Door) Monitoring ---\n  int frontDoor = digitalRead(DOOR_FRONT_PIN);\n  int backDoor = digitalRead(DOOR_BACK_PIN);\n\n  \/\/ Spam prevention check for front door\n  if (frontDoor != lastFrontDoorState) {\n    lastFrontDoorState = frontDoor;\n    if (frontDoor == HIGH) { \/\/ Logic 1 = Open\n      sendLineMessage(\"\u0e1b\u0e23\u0e30\u0e15\u0e39\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e1b\u0e34\u0e14\");\n    }\n  }\n\n  \/\/ Spam prevention check for back door\n  if (backDoor != lastBackDoorState) {\n    lastBackDoorState = backDoor;\n    if (backDoor == HIGH) { \/\/ Logic 1 = Open\n      sendLineMessage(\"\u0e1b\u0e23\u0e30\u0e15\u0e39\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e1b\u0e34\u0e14\");\n    }\n  }\n\n  Serial.printf(\"GPIO1: %.2f V, Front: %d, Back: %d\\n\", currentVoltGPIO1, frontDoor, backDoor);\n}\n\n\/\/ Function to Send Official LINE Push Notification\nvoid sendLineMessage(String message) {\n  if (WiFi.status() != WL_CONNECTED) return;\n\n  WiFiClientSecure client;\n  client.setInsecure(); \/\/ Required for share hosting or API calls where cert pinning isn't hardcoded\n  HTTPClient http;\n\n  http.begin(client, lineApiUrl);\n  http.addHeader(\"Content-Type\", \"application\/json\");\n  http.addHeader(\"Authorization\", \"Bearer \" + String(lineToken));\n\n  \/\/ Construct official LINE Push Message JSON\n  String jsonPayload = \"{\\\"to\\\":\\\"\" + String(lineUserId) + \"\\\",\\\"messages\\\":&#91;{\\\"type\\\":\\\"text\\\",\\\"text\\\":\\\"\" + message + \"\\\"}]}\";\n\n  int httpResponseCode = http.POST(jsonPayload);\n  if (httpResponseCode > 0) {\n    Serial.println(\"LINE Push Sent successfully: \" + String(httpResponseCode));\n  } else {\n    Serial.println(String(\"Error sending LINE Push: \") + http.errorToString(httpResponseCode).c_str());\n  }\n  http.end();\n}\n\n\/\/ Push latest telemetry to the Apache Share Hosting Server\nvoid sendDataToServer() {\n  if (WiFi.status() != WL_CONNECTED) return;\n\n  WiFiClientSecure client;\n  client.setInsecure();\n  HTTPClient http;\n\n  http.begin(client, serverUrl);\n  http.addHeader(\"Content-Type\", \"application\/x-www-form-urlencoded\");\n\n  \/\/ Format POST payload\n  String postData = \"temp=\" + String(currentTemperature, 2) +\n                    \"&amp;volt=\" + String(currentVoltGPIO1, 2) +\n                    \"&amp;front_door=\" + String(lastFrontDoorState) +\n                    \"&amp;back_door=\" + String(lastBackDoorState);\n\n  int httpResponseCode = http.POST(postData);\n  if (httpResponseCode > 0) {\n    Serial.println(\"Telemetry synced: \" + String(httpResponseCode));\n  } else {\n    Serial.println(String(\"Error syncing telemetry: \") + http.errorToString(httpResponseCode).c_str());\n  }\n  http.end();\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0e08\u0e30\u0e02\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e01\u0e32\u0e23\u0e19\u0e33 ESP32 \u0e44\u0e1b\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a web dashboard&nbsp;\u0e1a\u0e19 server \u0e08\u0e23\u0e34\u0e07&nbsp;\u0e41\u0e25\u0e30\u0e21\u0e35 feature \u0e17\u0e35\u0e48\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e01\u0e47\u0e04\u0e37\u0e2d Line messaging API (\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19 Line) \u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e01\u0e31\u0e1a web dashboard \u0e1a\u0e19 server \u0e08\u0e23\u0e34\u0e07\u0e04\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e1a\u0e1a IoT \u0e40\u0e15\u0e47\u0e21\u0e15\u0e31\u0e27\u0e04\u0e23\u0e31\u0e1a \u0e20\u0e32\u0e1e\u0e23\u0e27\u0e21\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49\u0e01\u0e47\u0e04\u0e37\u0e2d ESP32 \u0e08\u0e30\u0e23\u0e31\u0e1a data \u0e08\u0e32\u0e01 sensor \u0e15\u0e48\u0e32\u0e07 \u0e46 \u0e41\u0e25\u0e30\u0e15\u0e48\u0e2d GPIO \u0e2d\u0e2d\u0e01\u0e44\u0e1b\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c \/ \u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\u0e43\u0e19\u0e1a\u0e49\u0e32\u0e19&nbsp;&nbsp;\u0e41\u0e25\u0e30\u0e43\u0e19\u0e1d\u0e31\u0e48\u0e07\u0e1b\u0e25\u0e32\u0e22\u0e17\u0e32\u0e07 PC \/ Notebook \/ \u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e02\u0e2d\u0e07\u0e40\u0e23\u0e32) \u0e01\u0e47\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 web dashboard \u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e14\u0e39\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e2b\u0e23\u0e37\u0e2d\u0e2a\u0e16\u0e32\u0e19\u0e30\u0e02\u0e2d\u0e07 sensor \u0e2b\u0e23\u0e37\u0e2d\u0e23\u0e30\u0e1a\u0e1a\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e17\u0e35\u0e48\u0e1a\u0e49\u0e32\u0e19\u0e1c\u0e48\u0e32\u0e19 web dashboard \u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e14\u0e39\u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e01\u0e14\u0e1b\u0e38\u0e48\u0e21\u0e2a\u0e31\u0e48\u0e07\u0e07\u0e32\u0e19\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e43\u0e0a\u0e49\u0e44\u0e1f\u0e1f\u0e49\u0e32\/\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e43\u0e14 \u0e46 \u0e17\u0e35\u0e48\u0e1a\u0e49\u0e32\u0e19\u0e40\u0e23\u0e32\u0e44\u0e14\u0e49 \u0e19\u0e35\u0e48\u0e04\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e43\u0e19\u0e25\u0e31\u0e01\u0e29\u0e13\u0e30 IoT \u0e40\u0e15\u0e47\u0e21\u0e15\u0e31\u0e27 \u0e2a\u0e34\u0e48\u0e07\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35 &hellip; <a href=\"https:\/\/navy007.com\/WP\/archives\/346\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;ESP32 (EP.4)\u00a0ESP32 \u0e01\u0e31\u0e1a dashboard + \u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e1c\u0e48\u0e32\u0e19 Line&#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":[254,264,257,265],"class_list":["post-346","post","type-post","status-publish","format-standard","hentry","category-arduino-esp32","category-3","tag-esp32","tag-line-messaging-api","tag-web-dashboard","tag-265"],"_links":{"self":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/346","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=346"}],"version-history":[{"count":4,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/346\/revisions"}],"predecessor-version":[{"id":352,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/posts\/346\/revisions\/352"}],"wp:attachment":[{"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/media?parent=346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/categories?post=346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navy007.com\/WP\/wp-json\/wp\/v2\/tags?post=346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}