{"id":214,"date":"2023-08-31T09:42:10","date_gmt":"2023-08-31T02:42:10","guid":{"rendered":"https:\/\/dw.rmutsv.ac.th\/dprofile\/?p=214"},"modified":"2025-02-13T10:19:44","modified_gmt":"2025-02-13T03:19:44","slug":"%e0%b9%80%e0%b8%81%e0%b8%a1%e0%b8%aa%e0%b9%8c-chicken-try-to-fly-%e0%b8%94%e0%b9%89%e0%b8%a7%e0%b8%a2-pygame","status":"publish","type":"post","link":"https:\/\/dp.rmutsv.ac.th\/?p=214","title":{"rendered":"\u0e23\u0e30\u0e1a\u0e1a\u0e2a\u0e41\u0e01\u0e19\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e49\u0e27\u0e22 OpenCV \u0e41\u0e25\u0e30\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e44\u0e2d\u0e1e\u0e35"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u0e19\u0e32\u0e22\u0e13\u0e20\u0e31\u0e17\u0e23 \u0e2b\u0e2d\u0e21\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e23 011<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e04\u0e13\u0e30\u0e27\u0e34\u0e28\u0e27\u0e01\u0e23\u0e23\u0e21\u0e28\u0e32\u0e2a\u0e15\u0e23\u0e4c \u0e2a\u0e32\u0e02\u0e32\u0e27\u0e34\u0e28\u0e27\u0e01\u0e23\u0e23\u0e21\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e27\u0e34\u0e0a\u0e32 : 04-513-201 \u0e01\u0e32\u0e23\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e02\u0e31\u0e49\u0e19\u0e2a\u0e39\u0e07<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1.\u0e04\u0e27\u0e32\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e21\u0e32<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">     \u0e43\u0e19\u0e22\u0e38\u0e04\u0e17\u0e35\u0e48\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e01\u0e49\u0e32\u0e27\u0e2b\u0e19\u0e49\u0e32\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e23\u0e27\u0e14\u0e40\u0e23\u0e47\u0e27 \u0e1e\u0e1a\u0e27\u0e48\u0e32\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e23\u0e30\u0e1a\u0e1a\u0e2a\u0e41\u0e01\u0e19\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e23\u0e30\u0e1a\u0e1a\u0e41\u0e25\u0e30\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e21\u0e32\u0e01\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e43\u0e19\u0e2b\u0e25\u0e32\u0e22\u0e2a\u0e16\u0e32\u0e19\u0e01\u0e32\u0e23\u0e13\u0e4c\u0e15\u0e48\u0e32\u0e07\u0e46<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">    \u0e01\u0e32\u0e23\u0e41\u0e1c\u0e19\u0e41\u0e25\u0e30\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e23\u0e30\u0e1a\u0e1a\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e23\u0e27\u0e21\u0e01\u0e31\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e43\u0e19\u0e0a\u0e35\u0e27\u0e34\u0e15\u0e1b\u0e23\u0e30\u0e08\u0e33\u0e27\u0e31\u0e19\u0e40\u0e1b\u0e47\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e43\u0e19\u0e17\u0e34\u0e28\u0e17\u0e32\u0e07\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e17\u0e35\u0e48\u0e19\u0e48\u0e32\u0e2a\u0e19\u0e43\u0e08\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14\u0e43\u0e19\u0e1b\u0e31\u0e08\u0e08\u0e38\u0e1a\u0e31\u0e19 \u0e41\u0e21\u0e49\u0e41\u0e15\u0e48\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c\u0e21\u0e37\u0e2d\u0e16\u0e37\u0e2d\u0e01\u0e47\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35 Python \u0e40\u0e1b\u0e47\u0e19\u0e20\u0e32\u0e29\u0e32\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e17\u0e35\u0e48\u0e21\u0e35\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e49\u0e27\u0e22\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e48 OpenCV \u0e41\u0e25\u0e30 face_recognition<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0e14\u0e49\u0e27\u0e22\u0e40\u0e2b\u0e15\u0e38\u0e19\u0e35\u0e49&nbsp;<\/strong>\u0e23\u0e30\u0e1a\u0e1a\u0e23\u0e30\u0e1a\u0e1a\u0e2a\u0e41\u0e01\u0e19\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e2a\u0e1a\u0e32\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2.\u0e27\u0e31\u0e15\u0e16\u0e38\u0e1b\u0e23\u0e30\u0e2a\u0e07\u0e04\u0e4c<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e23\u0e30\u0e1a\u0e1a\u0e23\u0e31\u0e01\u0e29\u0e32\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e17\u0e35\u0e48\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e2a\u0e1a\u0e32\u0e22\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19<\/li>\n\n\n\n<li>\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e28\u0e36\u0e01\u0e29\u0e32\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e20\u0e32\u0e29\u0e32 c++ \u0e41\u0e25\u0e30 Python<\/li>\n\n\n\n<li>\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e17\u0e31\u0e19\u0e17\u0e35<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">3.\u0e02\u0e2d\u0e1a\u0e40\u0e02\u0e15<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e14\u0e49\u0e27\u0e22 Line notify<\/li>\n\n\n\n<li>\u0e21\u0e35\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 IP Camera \u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e31\u0e1a\u0e21\u0e39\u0e25\u0e20\u0e32\u0e1e\u0e2a\u0e48\u0e07\u0e44\u0e1b Python<\/li>\n\n\n\n<li>\u0e21\u0e35\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07 Python \u0e41\u0e25\u0e30 ESP32<\/li>\n\n\n\n<li>\u0e21\u0e35\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\u0e1c\u0e48\u0e32\u0e19\u0e08\u0e2d LCD ,\u0e2b\u0e25\u0e2d\u0e14\u0e44\u0e1f LED \u0e41\u0e25\u0e30Servo Motor<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">4.\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e17\u0e35\u0e48\u0e04\u0e32\u0e14\u0e27\u0e48\u0e32\u0e08\u0e30\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e40\u0e01\u0e34\u0e14\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e30\u0e14\u0e27\u0e01\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e23\u0e30\u0e1a\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e23\u0e30\u0e1a\u0e1a\u0e15\u0e48\u0e32\u0e07\u0e46<\/li>\n\n\n\n<li>\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e17\u0e31\u0e19\u0e17\u0e35\u0e41\u0e1a\u0e1a Real Time<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">5.\u0e04\u0e27\u0e32\u0e21\u0e23\u0e39\u0e49\u0e17\u0e35\u0e48\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e02\u0e49\u0e2d\u0e07<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">5.1 <strong>CV2<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">    OpenCV (Open Source Computer Vision Library) \u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e38\u0e14\u0e04\u0e25\u0e31\u0e07\u0e23\u0e2b\u0e31\u0e2a\u0e0b\u0e2d\u0e1f\u0e15\u0e4c\u0e41\u0e27\u0e23\u0e4c\u0e42\u0e2d\u0e40\u0e1e\u0e19\u0e0b\u0e2d\u0e23\u0e4c\u0e2a\u0e17\u0e35\u0e48\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e02\u0e36\u0e49\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30 OpenCV \u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e25\u0e32\u0e01\u0e2b\u0e25\u0e32\u0e22\u0e02\u0e2d\u0e07\u0e1f\u0e31\u0e07\u0e01\u0e4c\u0e0a\u0e31\u0e19\u0e41\u0e25\u0e30\u0e2d\u0e31\u0e25\u0e01\u0e2d\u0e23\u0e34\u0e17\u0e36\u0e21\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d, \u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\u0e08\u0e31\u0e1a\u0e27\u0e31\u0e15\u0e16\u0e38, \u0e01\u0e32\u0e23\u0e23\u0e30\u0e1a\u0e38\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32, \u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21\u0e27\u0e31\u0e15\u0e16\u0e38, \u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e20\u0e32\u0e1e\u0e01\u0e32\u0e23\u0e22\u0e37\u0e19\u0e22\u0e31\u0e19\u0e15\u0e31\u0e27\u0e15\u0e19, \u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d, \u0e41\u0e25\u0e30\u0e21\u0e32\u0e01\u0e21\u0e32\u0e22\u0e2d\u0e37\u0e48\u0e19 \u0e46<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"788\" height=\"606\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-357.png\" alt=\"\" class=\"wp-image-9541\" style=\"width:341px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-357.png 788w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-357-300x231.png 300w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-357-768x591.png 768w\" sizes=\"auto, (max-width: 788px) 100vw, 788px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">5.3 <strong>Face_recognition&nbsp;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">  face_recognition \u0e40\u0e1b\u0e47\u0e19\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21\u0e40\u0e0a\u0e34\u0e07\u0e0b\u0e2d\u0e1f\u0e15\u0e4c\u0e41\u0e27\u0e23\u0e4c (software library) \u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e02\u0e36\u0e49\u0e19\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e01\u0e32\u0e23\u0e08\u0e14\u0e08\u0e33\u0e41\u0e25\u0e30\u0e23\u0e30\u0e1a\u0e38\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e43\u0e19\u0e23\u0e39\u0e1b\u0e20\u0e32\u0e1e\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e01\u0e32\u0e23\u0e40\u0e23\u0e35\u0e22\u0e19\u0e23\u0e39\u0e49\u0e02\u0e2d\u0e07\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07 (machine learning) \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e42\u0e2d\u0e40\u0e1e\u0e19\u0e0b\u0e2d\u0e23\u0e4c\u0e2a (open source) \u0e41\u0e25\u0e30\u0e16\u0e39\u0e01\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e42\u0e14\u0e22\u0e0a\u0e38\u0e21\u0e0a\u0e19\u0e19\u0e31\u0e01\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e41\u0e25\u0e30\u0e19\u0e31\u0e01\u0e2a\u0e19\u0e31\u0e1a\u0e2a\u0e19\u0e38\u0e19\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"412\" height=\"309\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-356.png\" alt=\"\" class=\"wp-image-9532\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-356.png 412w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-356-300x225.png 300w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong><em>5.3 <\/em>socket<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> Socket \u0e43\u0e19 Python \u0e04\u0e37\u0e2d\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35 (library) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e41\u0e25\u0e30\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22 \u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e1c\u0e48\u0e32\u0e19\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22\u0e43\u0e19\u0e42\u0e1b\u0e23\u0e41\u0e01\u0e23\u0e21 Python \u0e44\u0e14\u0e49\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e21\u0e35\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35 socket \u0e43\u0e2b\u0e49\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e2b\u0e23\u0e37\u0e2d\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e43\u0e19\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22 TCP\/IP \u0e0b\u0e36\u0e48\u0e07\u0e40\u0e1b\u0e47\u0e19\u0e42\u0e1b\u0e23\u0e42\u0e15\u0e04\u0e2d\u0e25\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1c\u0e48\u0e32\u0e19\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22\u0e2d\u0e34\u0e19\u0e40\u0e17\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e47\u0e15<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5.4 <strong>requests<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35 requests \u0e43\u0e19 Python \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21 Line Notify \u0e17\u0e33\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e17\u0e33\u0e01\u0e32\u0e23\u0e17\u0e33\u0e23\u0e49\u0e2d\u0e07\u0e02\u0e2d HTTP POST \u0e44\u0e1b\u0e22\u0e31\u0e07 API \u0e02\u0e2d\u0e07 Line Notify \u0e14\u0e49\u0e27\u0e22\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">5.5 <strong>&lt;WiFi.h&gt;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp; \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e41\u0e25\u0e30\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e44\u0e23\u0e49 \u0e43\u0e19 ESP32 \u0e40\u0e1b\u0e47\u0e19\u0e15\u0e31\u0e27\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e17\u0e35\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22 Wi-Fi \u0e41\u0e25\u0e30\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e41\u0e1a\u0e1a\u0e44\u0e23\u0e49\u0e2a\u0e32\u0e22 \u0e0b\u0e36\u0e48\u0e07\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2b\u0e25\u0e32\u0e01\u0e2b\u0e25\u0e32\u0e22\u0e43\u0e19\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 \u0e40\u0e0a\u0e48\u0e19 \u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e01\u0e31\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22\u0e2d\u0e34\u0e19\u0e40\u0e17\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e47\u0e15, \u0e01\u0e32\u0e23\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e23\u0e49\u0e2a\u0e32\u0e22,\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e44\u0e23\u0e49\u0e2a\u0e32\u0e22\u0e41\u0e25\u0e30\u0e2d\u0e37\u0e48\u0e19 \u0e46  \u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e40\u0e1b\u0e47\u0e19 Client \u0e41\u0e25\u0e30 ESP32 \u0e40\u0e1b\u0e47\u0e19 Host \u0e2a\u0e48\u0e07\u0e23\u0e31\u0e1a\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e01\u0e31\u0e19<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;WiFi.h&gt;\nconst char* ssid = \"*********\";\nconst char* pass = \"********\";\nint port = 6969;\nbool isConnected = false;\nWiFiServer server(port);\nWiFiClient client;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">5.6 <strong>\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25 <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e01\u0e32\u0e23\u0e41\u0e2a\u0e14\u0e07\u0e1c\u0e25\u0e21\u0e35 2 \u0e2d\u0e22\u0e48\u0e32\u0e07\u0e04\u0e37\u0e2d LED \u0e08\u0e30\u0e1a\u0e2d\u0e01\u0e2a\u0e16\u0e32\u0e19\u0e30WiFi \u0e41\u0e25\u0e30 \u0e01\u0e25\u0e49\u0e2d\u0e07 \u0e21\u0e35\u0e2a\u0e48\u0e27\u0e19\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e43\u0e19\u0e01\u0e32\u0e23\u0e1e\u0e31\u0e12\u0e19\u0e32\u0e41\u0e25\u0e30\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e23\u0e30\u0e1a\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19\u0e02\u0e2d\u0e07\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e41\u0e25\u0e30WiFi\u0e43\u0e19\u0e42\u0e04\u0e23\u0e07\u0e07\u0e32\u0e19 \u0e08\u0e2d\u0e20\u0e32\u0e1e\u0e1c\u0e25\u0e36\u0e01\u0e40\u0e2b\u0e25\u0e27\u0e08\u0e30\u0e43\u0e0a\u0e49 \u0e44\u0e25\u0e1a\u0e23\u0e32\u0e23\u0e35\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e41\u0e25\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e1a\u0e19\u0e08\u0e2d LCD (Liquid Crystal Display) \u0e17\u0e35\u0e48\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e1c\u0e48\u0e32\u0e19\u0e2a\u0e32\u0e22\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 I2C<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"302\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-354.png\" alt=\"\" class=\"wp-image-9511\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-354.png 403w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-354-300x225.png 300w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">5.7 <strong>Servo motor <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e04\u0e37\u0e2d\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e01\u0e32\u0e23\u0e2b\u0e21\u0e38\u0e19\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e17\u0e35\u0e48\u0e02\u0e2d\u0e07\u0e2d\u0e30\u0e44\u0e23\u0e1a\u0e32\u0e07\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e43\u0e19\u0e2d\u0e07\u0e04\u0e4c\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e2d\u0e34\u0e40\u0e25\u0e47\u0e01\u0e17\u0e23\u0e2d\u0e19\u0e34\u0e01\u0e2a\u0e4c \u0e08\u0e33\u0e25\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e30\u0e15\u0e39\u0e2b\u0e23\u0e37\u0e2d\u0e40\u0e02\u0e49\u0e32\u0e23\u0e30\u0e1a\u0e1a\u0e02\u0e2d\u0e07\u0e08\u0e23\u0e34\u0e07\u0e44\u0e14\u0e49<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"265\" height=\"353\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-355.png\" alt=\"\" class=\"wp-image-9520\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-355.png 265w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-355-225x300.png 225w\" sizes=\"auto, (max-width: 265px) 100vw, 265px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">6.\u0e1c\u0e25\u0e01\u0e32\u0e23\u0e14\u0e33\u0e40\u0e19\u0e34\u0e19\u0e01\u0e32\u0e23<\/h2>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"484\" height=\"272\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-358.png\" alt=\"\" class=\"wp-image-9559\" style=\"width:584px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-358.png 484w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-358-300x169.png 300w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><figcaption class=\"wp-element-caption\">Diagram\u0e02\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e1a\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14<\/figcaption><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e41\u0e23\u0e01\u0e04\u0e37\u0e2d \u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19\u0e42\u0e04\u0e49\u0e14 Python<\/strong> \u0e40\u0e02\u0e35\u0e22\u0e19\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e23\u0e31\u0e1a\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e20\u0e32\u0e1e\u0e08\u0e32\u0e01\u0e01\u0e25\u0e49\u0e2d\u0e07 \u0e2a\u0e48\u0e07\u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e44\u0e1b\u0e22\u0e31\u0e07 Line notify \u0e41\u0e25\u0e30\u0e40\u0e1b\u0e47\u0e19 Client<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#\u0e02\u0e2d\u0e1a\u0e04\u0e38\u0e13 google \u0e41\u0e25\u0e30 gpt 3.5 \u0e17\u0e35\u0e48\u0e0a\u0e48\u0e27\u0e22\u0e1c\u0e21\nimport socket\nimport cv2\nimport time\nimport face_recognition\nimport requests\nimport os\n\n# Initialize known faces and their encodings\nknown_face_encodings = &#091;]\nknown_face_names = &#091;]\n\n# Load known faces and their encodings from the \"known_faces\" folder\nknown_faces_folder = \"krit\/\"\n\n# Loop through the files in the folder\nfor filename in os.listdir(known_faces_folder):\n    if filename.endswith(\".jpg\"):\n        image_path = os.path.join(known_faces_folder, filename)\n        image_of_person = face_recognition.load_image_file(image_path)\n        face_encoding = face_recognition.face_encodings(image_of_person)&#091;0]\n        name = filename.split(\".\")&#091;0]  # Extract the name from the filename\n        known_face_encodings.append(face_encoding)\n        known_face_names.append(name)\n\n# Add a new person to the recognition system\nnew_person_folder = \"napat\/\"\n\n# Loop through the files in the folder\nfor filename in os.listdir(new_person_folder):\n    if filename.endswith(\".jpg\"):\n        image_path = os.path.join(new_person_folder, filename)\n        image_of_person = face_recognition.load_image_file(image_path)\n        face_encodings = face_recognition.face_encodings(image_of_person)\n\n        if len(face_encodings) &gt; 0:\n            # Take the first face encoding (assuming there's only one face in each photo)\n            face_encoding = face_encodings&#091;0]\n\n            # Extract the name from the filename (you can name the files as the person's name)\n            #name = filename.split(\".\")&#091;0]\n\n            known_face_encodings.append(face_encoding)\n            known_face_names.append(\"napat\")\n\n# Rest of your code remains the same\n\n\n# Replace with your ESP32's IP address and port\nesp32_ip = \"xxx.xxx.xxx.xxx\"\nesp32_port = 6969\n\ns = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\ns.connect((esp32_ip, esp32_port))\nprint(f\"Connected to ESP32 at {esp32_ip}:{esp32_port}\")\n\ncap = cv2.VideoCapture(0)\nface_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')\n\n# Line Notify Token - Replace with your actual Line Notify token\nline_notify_token = 'kpYRmm3K3qrpd7hkbn7WPtj0Ac5PbgXURP3DTAlplmX'\n\ndef send_line_notification(message, image_path=None):\n    url = 'https:\/\/notify-api.line.me\/api\/notify'\n    headers = {\n        'Authorization': f'Bearer {line_notify_token}'\n    }\n    data = {\n        'message': message\n    }\n\n    files = None\n    if image_path:\n        files = {'imageFile': open(image_path, 'rb')}\n\n    response = requests.post(url, headers=headers, data=data, files=files)\n\n    if response.status_code == 200:\n        print('Line notification sent successfully')\n    else:\n        print('Failed to send Line notification')\n\ntry:\n    matches = &#091;]  # Initialize 'matches' outside the loop\n    while True:\n        ret, frame = cap.read()\n        if not ret:\n            print(\"Failed to capture a frame.\")\n            break\n\n        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n        faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5, minSize=(30, 30))\n\n        matches = &#091;]  # Reset 'matches' for each frame\n\n        for (x, y, w, h) in faces:\n            cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)\n\n        face_locations = face_recognition.face_locations(frame)\n        face_encodings = face_recognition.face_encodings(frame, face_locations)\n\n        for (x, y, w, h) in faces:\n            if face_encodings:\n                matches = face_recognition.compare_faces(known_face_encodings, face_encodings&#091;0])\n                name = \"Unknown\"\n\n                if True in matches:\n                    first_match_index = matches.index(True)\n                    name = known_face_names&#091;first_match_index]\n\n                # Draw the name of the recognized face\n                cv2.rectangle(frame, (x, y - 20), (x + w, y), (0, 255, 0), cv2.FILLED)\n                font = cv2.FONT_HERSHEY_DUPLEX\n                cv2.putText(frame, name, (x + 6, y - 6), font, 0.5, (0, 0, 0), 1)\n\n        cv2.imshow(\"Face Recognition\", frame)\n\n        if True in matches:\n            message = \"on\"\n            # Capture a photo and save it\n            photo_filename = 'captured_photo.jpg'\n            cv2.imwrite(photo_filename, frame)\n            # Send Line notification with the photo\n            send_line_notification(f'\u0e21\u0e35\u0e04\u0e19\u0e40\u0e02\u0e49\u0e32\u0e23\u0e30\u0e1a\u0e1a \u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e04\u0e37\u0e2d: {name}', image_path=photo_filename)\n        else:\n            message = \"off\"\n\n        s.send(message.encode('utf-8'))\n\n        if cv2.waitKey(1) &amp; 0xFF == ord('q'):\n            break\n\n        time.sleep(1)  # Add a 1-second delay\n\n    cv2.destroyAllWindows()\n    cap.release()\nexcept Exception as e:\n    print(f\"Error: {e}\")\nfinally:\n    s.close()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e15\u0e48\u0e2d\u0e21\u0e32<\/strong> Ardunio ESP32 <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;WiFi.h&gt;\n#include &lt;LiquidCrystal_I2C.h&gt;\n#include &lt;ESP32Servo.h&gt;\n\n#define I2C_ADDR 0x27\n#define LCD_COLUMNS 16\n#define LCD_ROWS 2\n\nLiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_ROWS);\n\nServo myservo;\n\n#define LED_ONE 12\n#define LED_TWO 14\n\nconst char* ssid = \"kranax1150\";\nconst char* pass = \"123456789\";\nint port = 6969;\nbool isConnected = false;\n\nWiFiServer server(port);\nWiFiClient client;\n\nbool servoIsOpen = false;\n\nvoid setup() {\n  Serial.begin(115200);\n  WiFi.begin(ssid, pass);\n\n  pinMode(LED_ONE, OUTPUT);\n  pinMode(LED_TWO, OUTPUT);\n\n  lcd.init();\n  lcd.backlight();\n\n  myservo.attach(4);\n\n  while (WiFi.status() != WL_CONNECTED) {\n    Serial.println(\"Connecting...\");\n    digitalWrite(LED_ONE, HIGH);\n    lcd.clear();\n    lcd.setCursor(0, 0);\n    lcd.print(\"Connecting...\");\n    delay(1200);\n    digitalWrite(LED_ONE, LOW);\n    lcd.clear();\n    lcd.setCursor(0, 1);\n    lcd.print(\"Connecting...\");\n    delay(1200);\n  }\n\n  isConnected = true;\n  digitalWrite(LED_TWO, HIGH);\n  Serial.print(\"Server started on IP address: \");\n  Serial.println(WiFi.localIP());\n  lcd.clear();\n  lcd.setCursor(0, 0);\n  lcd.print(\"Welcome to COE\");\n  Serial.print(\"Port: \");\n  Serial.println(port);\n  myservo.write(0); \/\/ Initialize servo to 0 degrees\n\n  server.begin();\n}\n\nvoid loop() {\n  if (WiFi.status() != WL_CONNECTED &amp;&amp; isConnected) {\n    \/\/ WiFi reconnection handling\n    Serial.println(\"WiFi disconnected!\");\n    isConnected = false;\n    digitalWrite(LED_TWO, LOW);\n\n    while (WiFi.status() != WL_CONNECTED) {\n      Serial.println(\"Reconnecting..\");\n      digitalWrite(LED_ONE, HIGH);\n      lcd.clear();\n      lcd.setCursor(0, 0);\n      lcd.print(\"Reconnecting...\");\n      delay(500);\n      digitalWrite(LED_ONE, LOW);\n      lcd.clear();\n      lcd.setCursor(0, 1);\n      lcd.print(\"Reconnecting...\");\n      delay(500);\n    }\n\n    isConnected = true;\n    Serial.print(\"Reconnected to WiFi. IP address: \");\n    digitalWrite(LED_TWO, HIGH);\n    Serial.println(WiFi.localIP());\n    lcd.clear();\n    lcd.setCursor(0, 0);\n    lcd.print(\"Welcome to COE\");\n  }\n\n  if (client) {\n    if (!client.connected()) {\n      \/\/ Client disconnection handling\n      digitalWrite(LED_ONE, LOW);\n      lcd.setCursor(0, 1);\n      lcd.print(\"Client fail\");\n      client.stop(); \/\/ Close the disconnected client\n      Serial.println(\"Client disconnected, LED_ONE turned off\");\n\n      \/\/ Add code to make LED_TWO blink for 0.5 seconds\n      digitalWrite(LED_TWO, HIGH);\n      delay(500);\n      digitalWrite(LED_TWO, LOW);\n      Serial.println(\"LED_TWO blinked for 0.5 seconds\");\n    } else {\n      while (client.available()) {\n        String message = client.readStringUntil('\\n');\n        Serial.print(\"Received: \");\n        Serial.println(message);\n\n        if (message.equals(\"on\")) {\n          digitalWrite(LED_ONE, HIGH);\n          Serial.println(\"LED_ONE turned on\");\n\n          if (!servoIsOpen) {\n            myservo.write(90); \/\/ Rotate servo to 90 degrees (open)\n            delay(1000); \/\/ Wait for 1 second to see the servo position\n            servoIsOpen = true;\n          }\n\n          lcd.clear();\n          lcd.setCursor(0, 1);\n          lcd.print(\"Welcome User\");\n\n          for (int i = 0; i &lt;= 4; i++) {\n            lcd.setCursor(0, 0);\n            lcd.print(\"Countdown: \" + String(i));\n            delay(1000);\n          }\n\n          lcd.clear();\n          lcd.setCursor(0, 0);\n          lcd.print(\"Welcome to COE\");\n          digitalWrite(LED_ONE, LOW);\n          Serial.println(\"LED_ONE turned off\");\n\n          if (servoIsOpen) {\n            myservo.write(0); \/\/ Rotate servo to 0 degrees (close)\n            delay(1000); \/\/ Wait for 1 second to see the servo position\n            servoIsOpen = false;\n          }\n        } else if (message.equals(\"off\")) {\n          digitalWrite(LED_ONE, LOW);\n          Serial.println(\"LED_ONE turned off\");\n          lcd.clear();\n          lcd.setCursor(0, 0);\n          lcd.print(\"Welcome to COE\");\n        }\n      }\n    }\n  }\n\n  if (!client) {\n    client = server.available();\n  }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0e01\u0e32\u0e23\u0e17\u0e14\u0e25\u0e2d\u0e07<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>6.1\u0e17\u0e14\u0e25\u0e2d\u0e07\u0e04\u0e27\u0e32\u0e21\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e30\u0e1a\u0e38\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp; \u0e01\u0e32\u0e23\u0e04\u0e27\u0e1a\u0e04\u0e38\u0e21\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e43\u0e19\u0e01\u0e32\u0e23\u0e23\u0e30\u0e1a\u0e38\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e34\u0e48\u0e07\u0e2a\u0e33\u0e04\u0e31\u0e0d\u0e43\u0e19\u0e23\u0e30\u0e1a\u0e1a\u0e2a\u0e41\u0e01\u0e19\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32 \u0e40\u0e1e\u0e23\u0e32\u0e30\u0e21\u0e31\u0e19\u0e21\u0e35\u0e1c\u0e25\u0e15\u0e48\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e1b\u0e25\u0e2d\u0e14\u0e20\u0e31\u0e22\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e\u0e02\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e1a\u0e19\u0e35\u0e49 \u0e42\u0e14\u0e22\u0e08\u0e30\u0e17\u0e14\u0e25\u0e2d\u0e07 20 \u0e04\u0e23\u0e31\u0e49\u0e07\u0e15\u0e48\u0e2d\u0e40\u0e19\u0e37\u0e48\u0e2d\u0e07<\/p>\n\n\n<div class=\"wp-block-image is-style-default\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-419.png\" alt=\"\" class=\"wp-image-10873\" style=\"width:347px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-419.png 640w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-419-300x225.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"728\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/Picture1-1024x728.png\" alt=\"\" class=\"wp-image-10834\" style=\"width:353px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/Picture1-1024x728.png 1024w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/Picture1-300x213.png 300w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/Picture1-768x546.png 768w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/Picture1.png 1464w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong><em>6.2. <\/em><\/strong><strong><em>TCP \/ IP<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>&nbsp;&nbsp;&nbsp;&nbsp; <\/strong>TCP\/IP (Transmission Control Protocol\/Internet Protocol) \u0e40\u0e1b\u0e47\u0e19\u0e0a\u0e38\u0e14\u0e02\u0e49\u0e2d\u0e01\u0e33\u0e2b\u0e19\u0e14 (protocol suite) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e1a\u0e19\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22\u0e2d\u0e34\u0e19\u0e40\u0e17\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e47\u0e15\u0e41\u0e25\u0e30\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e02\u0e48\u0e32\u0e22\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e2d\u0e37\u0e48\u0e19 \u0e46 \u0e42\u0e14\u0e22 TCP\/IP \u0e01\u0e32\u0e23\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07 mqtt \u0e17\u0e33\u0e43\u0e2b\u0e49\u0e44\u0e14\u0e49\u0e1e\u0e1a\u0e21\u0e35\u0e27\u0e34\u0e18\u0e35\u0e2d\u0e37\u0e48\u0e19\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23\u0e23\u0e30\u0e2b\u0e27\u0e48\u0e32\u0e07\u0e2d\u0e38\u0e1b\u0e01\u0e23\u0e13\u0e4c\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e2d\u0e22\u0e39\u0e48<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"484\" height=\"160\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-365.png\" alt=\"\" class=\"wp-image-9616\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-365.png 484w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-365-300x99.png 300w\" sizes=\"auto, (max-width: 484px) 100vw, 484px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"423\" height=\"183\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-436.png\" alt=\"\" class=\"wp-image-11251\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-436.png 423w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-436-300x130.png 300w\" sizes=\"auto, (max-width: 423px) 100vw, 423px\" \/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong><em>6.3 \u0e01\u0e32\u0e23\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19<\/em><\/strong>  Line notify API \u0e1f\u0e23\u0e35\u0e08\u0e32\u0e01 Line \u0e17\u0e33\u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e23\u0e30\u0e1a\u0e1a\u0e41\u0e08\u0e49\u0e07\u0e40\u0e15\u0e37\u0e2d\u0e19\u0e44\u0e14\u0e49\u0e2a\u0e1a\u0e32\u0e22<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"437\" height=\"508\" src=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-367.png\" alt=\"\" class=\"wp-image-9625\" style=\"width:317px;height:auto\" srcset=\"https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-367.png 437w, https:\/\/dp.rmutsv.ac.th\/wp-content\/uploads\/2023\/11\/image-367-258x300.png 258w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u0e2a\u0e23\u0e38\u0e1b\u0e1c\u0e25\u0e41\u0e25\u0e30\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e41\u0e19\u0e30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u0e42\u0e21\u0e40\u0e14\u0e25\u0e43\u0e2b\u0e21\u0e48\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e41\u0e21\u0e48\u0e19\u0e22\u0e33\u0e1b\u0e32\u0e19\u0e01\u0e25\u0e32\u0e07\u0e16\u0e36\u0e07\u0e04\u0e48\u0e2d\u0e22\u0e02\u0e49\u0e32\u0e07\u0e2a\u0e39\u0e07 50-70% \u0e41\u0e15\u0e48\u0e41\u0e25\u0e01\u0e01\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e02\u0e2d\u0e07\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e17\u0e35\u0e48\u0e2a\u0e39\u0e07 \u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e17\u0e35\u0e48\u0e44\u0e21\u0e48\u0e04\u0e48\u0e2d\u0e22\u0e40\u0e2a\u0e16\u0e35\u0e22\u0e23 ESP32 \u0e21\u0e35\u0e27\u0e34\u0e18\u0e35\u0e04\u0e37\u0e2d\u0e15\u0e49\u0e2d\u0e07\u0e21\u0e35wifi \u0e17\u0e35\u0e48\u0e04\u0e27\u0e32\u0e21\u0e40\u0e23\u0e47\u0e27\u0e41\u0e23\u0e07\u0e2a\u0e39\u0e07 \u0e01\u0e25\u0e49\u0e2d\u0e07\u0e17\u0e35\u0e48 Delay \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e23\u0e2dEsp32 \u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e17\u0e31\u0e19 Python \u0e2a\u0e48\u0e27\u0e19 Line notify \u0e17\u0e33\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e14\u0e35\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14 \u0e44\u0e21\u0e48\u0e21\u0e35\u0e01\u0e32\u0e23\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp; \u0e42\u0e21\u0e40\u0e14\u0e25\u0e40\u0e01\u0e48\u0e32\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e41\u0e21\u0e48\u0e19\u0e15\u0e48\u0e33 25-50% \u0e17\u0e33\u0e43\u0e2b\u0e49\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e44\u0e21\u0e48\u0e2a\u0e39\u0e07 \u0e2a\u0e32\u0e40\u0e2b\u0e15\u0e38\u0e10\u0e32\u0e19\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e17\u0e35\u0e48\u0e19\u0e49\u0e2d\u0e22\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e39\u0e07\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e2a\u0e39\u0e07 \u0e41\u0e25\u0e30 Line notify \u0e17\u0e33\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e14\u0e35\u0e17\u0e35\u0e48\u0e2a\u0e38\u0e14 \u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e40\u0e14\u0e34\u0e21<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u0e40\u0e2d\u0e01\u0e2a\u0e32\u0e23\u0e2d\u0e49\u0e32\u0e07\u0e2d\u0e34\u0e07<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Chat Gpt 3.5 \u0e40\u0e27\u0e47\u0e1a\u0e44\u0e0b\u0e15\u0e4c\u0e41\u0e0a\u0e17\u0e1a\u0e2d\u0e17\u0e08\u0e32\u0e01 OpenAI [\u0e2a\u0e37\u0e1a\u0e04\u0e49\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 1 \u0e1e\u0e24\u0e29\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19 2566] https:\/\/chat.openai.com<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An approach for Face Detection and Face Recognition using OpenCV and Face Recognition Libraries in Python<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ainampudi Kumari Sirivarshitha; Kadavakollu Sravani; Kothamasu Santhi Priya; Vasantha Bhavani[\u0e2a\u0e37\u0e1a\u0e04\u0e49\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 25 \u0e15\u0e38\u0e25\u0e32\u0e04\u0e21 2566] <a href=\"https:\/\/ieeexplore.ieee.org\/document\/10113066\">https:\/\/ieeexplore.ieee.org\/document\/10113066<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OpenCV &amp; Python | Computer Vision \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e1c\u0e39\u0e49\u0e40\u0e23\u0e34\u0e48\u0e21\u0e15\u0e49\u0e19 [FULL COURSE] [\u0e2a\u0e37\u0e1a\u0e04\u0e49\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 20 \u0e15\u0e38\u0e25\u0e32\u0e04\u0e21 2566] <a href=\"https:\/\/www.youtube.com\/watch?v=fLDJJXEykvo\">https:\/\/www.youtube.com\/watch?v=fLDJJXEykvo<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">face-recognition 1.3.0 License: MIT License (MIT license )Author Adam Geitgey] [\u0e2a\u0e37\u0e1a\u0e04\u0e49\u0e19\u0e27\u0e31\u0e19\u0e17\u0e35\u0e48 20 \u0e15\u0e38\u0e25\u0e32\u0e04\u0e21 2566] &nbsp;https:\/\/pypi.org\/project\/face-recognition\/<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d\u0e19\u0e33\u0e40\u0e2a\u0e19\u0e2d\u0e01\u0e32\u0e23\u0e17\u0e33\u0e07\u0e32\u0e19<br><\/h2>\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<div class=\"video-container\"><iframe loading=\"lazy\" title=\"\u0e23\u0e30\u0e1a\u0e1a\u0e2a\u0e41\u0e01\u0e19\u0e43\u0e1a\u0e2b\u0e19\u0e49\u0e32\u0e14\u0e49\u0e27\u0e22 openCV \u0e41\u0e25\u0e30\u0e01\u0e25\u0e49\u0e2d\u0e07\u0e44\u0e27\u0e1e\u0e35\" width=\"620\" height=\"349\" src=\"https:\/\/www.youtube.com\/embed\/NlrDqQqKjXU?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><\/div>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u0e19\u0e32\u0e22\u0e13\u0e20\u0e31\u0e17\u0e23 \u0e2b\u0e2d\u0e21\u0e2a\u0e21\u0e1a\u0e31\u0e15\u0e23 011 \u0e04\u0e13\u0e30&#46;&#46;&#46;<\/p>\n","protected":false},"author":103,"featured_media":29958,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-214","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-1"],"_links":{"self":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/214","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/users\/103"}],"replies":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=214"}],"version-history":[{"count":46,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/214\/revisions"}],"predecessor-version":[{"id":11263,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/posts\/214\/revisions\/11263"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=\/wp\/v2\/media\/29958"}],"wp:attachment":[{"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dp.rmutsv.ac.th\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}