งานที่ 13
ระบบควบคุมพัดลมอัจฉริยะด้วย IoT โดยใช้ ESP8266 และ Blynk
IOTโดยSourav Gupta 13 ส.ค. 25640
IoT กำลังเป็นที่นิยมในทุกหนทุกแห่งและเป็นหนึ่งในสิ่งที่ดีที่สุดที่สามารถนำมาใช้เพื่อทำให้ชีวิตง่ายขึ้น มีโปรเจ็กต์ระบบอัตโนมัติภายในบ้านที่ใช้ IoT มากมาย บนอินเทอร์เน็ต แต่ไม่มีโครงการใดที่ให้คุณควบคุมความเร็วของพัดลมบนอินเทอร์เน็ตได้ ในโครงการนี้ เราจะสร้าง วงจรควบคุมความเร็วพัดลมIoT เพื่อควบคุมความเร็วของพัดลมปกติหรืออุปกรณ์อื่นๆ โดยใช้ Blynk วงจรนี้แตกต่างจากวงจรอื่นในสองวิธีคือประการแรกคือการควบคุมแบบ TRIAC และประการที่สองคือติดตั้งง่ายมาก เราได้ออกแบบระบบที่สมบูรณ์เพื่อให้พอดีกับตัวเครื่องที่มีขนาดกะทัดรัด ทำให้ง่ายต่อการติดตั้งและติดตั้งกับพัดลมเพดานหรือพัดลมติดผนังของคุณ การออกแบบที่กะทัดรัดนี้เป็นไปได้โดยบอร์ด PCB ที่ประดิษฐ์โดย PCBWayนอกจากนี้เรายังจะแสดงให้คุณเห็นว่าบอร์ดได้รับการออกแบบและสั่งซื้อจาก PCBway อย่างไร ดังนั้น มาดูแผนโครงการและสร้างตัวควบคุมพัดลมที่ใช้ IoT ที่ออกแบบมาอย่าง ดี
ส่วนประกอบที่จำเป็นสำหรับการสร้างตัวควบคุมความเร็วพัดลมที่ใช้ IoT
ที่นี่ เราจะใช้ระบบควบคุมที่ใช้ IoT ราคาประหยัด ซึ่งจะเป็นประโยชน์สำหรับแอปพลิเคชันต่อไปนี้:
- ผลิตภัณฑ์ง่าย ๆ ที่จะรับอินพุต AC และควบคุมเอาต์พุต
- ทำตัวเหมือนชุดอุปกรณ์ระหว่างเครื่องใช้ไฟฟ้า
- พร้อมลุยไม่มีดัดแปลง
- ใช้การเชื่อมต่ออินเทอร์เน็ตและเชื่อมต่อกับเครือข่าย Wi-Fi ในบริเวณใกล้เคียงเพื่อรับการเชื่อมต่ออินเทอร์เน็ต
- ใช้แอปพลิเคชันมือถือ (ไม่ใช่เครื่องมือกำหนดเอง แต่เป็นเครื่องมือสำเร็จรูป)
- ควบคุมอุปกรณ์ได้มากถึง 250 วัตต์ในคราวเดียวและไม่ต้องดัดแปลงอะไรมาก
- มี Buzzer ที่จะแจ้งให้ผู้ใช้ทราบเมื่อมีการเปลี่ยนแปลงสถานะ
เพื่อให้เป็นไปตามข้อกำหนดของโครงการข้างต้น จำเป็นต้องมีส่วนประกอบดังต่อไปนี้:
จำนวน | ค่า | อุปกรณ์ | บรรจุุภัณฑ์ | อะไหล่ |
2 | ขั้วต่อสกรู ระยะพิทช์ 3.5 มม. | ตัวเชื่อมต่อ | W237-132 | X1, X2 |
1 | *DNP* - ย่อสิ่งนี้ | จัมเปอร์ | 0805 | R3 |
1 | 0.1uF / 400VAC / ฟิล์มโพลีเอสเตอร์ | ตัวเก็บประจุ | C150-054X183 | C2 |
1 | 0.1uF / 6.3V | ตัวเก็บประจุ | 0603 | C4 |
2 | 0.1uF / 6.3V | ตัวเก็บประจุ | 0805 | C1, C7 |
1 | 100R | ตัวต้านทาน - TH - 0.25W | 0309/10 | R6 |
1 | 100R | ตัวต้านทาน | 0603 | R5 |
1 | 10K | ตัวต้านทาน | 0805 | R23, R17 |
1 | 10nF 400V | ตัวเก็บประจุ | C075-052X106 | C3 |
1 | 10uF / 6.3V | ตัวเก็บประจุ | 0805 | C8 |
5 | 12k | ตัวต้านทาน | 0805 | R18, R19, R20, R21, R22 |
1 | 1K | ตัวต้านทาน | 0805 | R25, R4 |
1 | 2.2uF / 6.3V | ตัวเก็บประจุ | 0805 | C6 |
1 | 220uF 12v | ตัวเก็บประจุ | E2,5-7 | C15 |
1 | 2N7002 | MOSFET | SOT23 | Q2 |
1 | 4.7mH 0.4A | อีเอ็มไอโช๊ค | U9.8 | L4 |
2 | 47k | ตัวต้านทาน | 0805 | R1, R2 |
1 | 56R | ตัวต้านทาน-TH-0.25W | 0309/10 | R7 |
1 | 56R/2W | ตัวต้านทาน - TH - 2W | 0309/10 | R12 |
1 | AMS1117-3.3V | ตัวควบคุม - 3.3V | SOT229P700X180-4N | U2 |
1 | BC847ALT1SMD | ทรานซิสเตอร์ | SOT23 | Q1 |
1 | BT136 | TRIAC | TO220CS | T1 |
1 | ESP-12E/F | ไดรเวอร์ WiFi & MCU | ESP-12E | IC1 |
1 | HLK-5M05 | โมดูล SMPS | CONV_HLK-5M05 | PS1 |
1 | MB10S | สะพานไดโอด | SOIC-4 | B1 |
1 | MOC3021M | ไดร์เวอร์ TRIAC | DIL06 | OK1 |
1 | PC817 | Opto-Coupler | DIL04 | OK2 |
1 | Buzzer | Buzzer | รอบ 12 มม. | LS1 |
1 | PCB | PCB | 2 - เลเยอร์ - 70um | |
1 | สิ่งที่ส่งมาด้วย |
ไดอะแกรมแผนผังตัวควบคุมความเร็วพัดลมที่ใช้ IoT
แผนภาพวงจรที่สมบูรณ์สำหรับตัวควบคุมพัดลมที่ใช้ IoT แสดง ไว้ด้านล่าง:
การทำงานของวงจรนั้นไม่ซับซ้อนและค่อนข้างตรงไปตรงมา วงจรประกอบด้วยสิ่งต่อไปนี้:
- ตัวแปลง AC เป็น DC
- วงจรข้ามศูนย์
- TRIAC และวงจรการขับขี่
- Buzzer
- ไมโครคอนโทรลเลอร์
ตัวแปลง AC เป็น DC:
ต้องใช้ระดับแรงดันไฟฟ้าสองระดับเพื่อเรียกใช้วงจร ที่นี่ PS1 เป็นหน่วยจ่ายไฟที่แปลง AC เป็น 5V 1A ซึ่งใช้สำหรับการทำงานระดับวงจร อย่างไรก็ตาม เนื่องจากเราใช้ ESP12F เราจึงต้องใช้ 3.3V เพื่อเรียกใช้ไมโครคอนโทรลเลอร์ โมดูล Hi-Link 5V 1A ใช้เพื่อแปลงไฟ AC 230V เป็น DC 5V 1A สิ่งนี้จะถูกแปลงเพิ่มเติมเป็น 3.3V ที่จำเป็นสำหรับไมโครคอนโทรลเลอร์โดยใช้ตัวควบคุม AMS1117-3.3V LDO U2
จุดประสงค์ของ L4 คือการลดEMI โหมดทั่วไปที่จะป้อนในโมดูล SMPS หากคุณยังใหม่กับ EMI คุณสามารถดูบทความเกี่ยวกับพื้นฐานของการรบกวนทางแม่เหล็กไฟฟ้าและเทคนิคการออกแบบเพื่อลด EMIใน SMPS ได้
วงจรข้ามศูนย์:
วงจรข้ามศูนย์ใช้เพื่อตรวจจับเวลาหรือเหตุการณ์เมื่อใดก็ตามที่คลื่นไซน์ข้ามบริเวณศูนย์ แต่ทำไมเราต้องทำ? เป็นเพราะเราต้องเปลี่ยน (เพิ่ม/ลด) แรงดันไฟฟ้ากระแสสลับนี้เพื่อควบคุมความเร็วของพัดลม เวลาที่ดีที่สุดในการเริ่มเปลี่ยนคลื่นไฟฟ้ากระแสสลับคือเมื่อคลื่นผ่านจุดศูนย์ สำหรับผู้เริ่มต้น อาจสร้างความสับสน โปรดอ่านบทแนะนำการข้ามศูนย์เพื่อทำความเข้าใจพื้นฐาน
ในวงจรนี้ ไดโอดบริดจ์จะแปลงคลื่นไซน์ไซน์ไฟฟ้ากระแสสลับเป็นพัลส์ที่เท่ากันซึ่งจะเกิดขึ้น 100 ครั้งในหนึ่งวินาที เนื่องจากคลื่นไซน์ 50 Hz ตัดผ่านศูนย์ 100 ครั้งในหนึ่งวินาที ซึ่งจะถูกแปลงเป็นระดับลอจิก 3.3V เพิ่มเติมโดยใช้ออปโตคัปเปลอร์ ออปโตคัปเปลอร์ใช้ด้วยเหตุผลสองประการ ประการแรกคือการแปลง DC ไฟฟ้าแรงสูงเป็นระดับลอจิกแรงดันต่ำและอีกเหตุผลหนึ่งคือการแยกสายไฟฟ้าแรงสูงออกจากส่วนไมโครคอนโทรลเลอร์แรงดันต่ำ ตัวต้านทานสองตัวคือ R1 และ R2 ใช้เพื่อจำกัดกระแสไฟ LED ของออปโตคัปเปลอร์
TRIAC และวงจรการขับขี่:
TRIACเป็นอุปกรณ์แบบสองทิศทางที่นำกระแสทั้งสองด้านของเทอร์มินัล คุณลักษณะแบบสองทิศทางของ TRIAC มีประโยชน์มากในการควบคุมอุปกรณ์ที่ทำงานด้วยกระแสสลับ (AC) ดังนั้นโดยใช้การควบคุมมุมเฟส AC บน TRIACเราจึงสามารถควบคุมกระแสเฉลี่ยที่ไหลเข้าสู่โหลดได้ ดังนั้น การตรวจจับการข้ามเป็นศูนย์ หากเราเปิด TRIAC ด้วยความล่าช้า กระแสโหลดสามารถควบคุมได้ ที่นี่ เรากำลังตรวจจับการข้ามศูนย์และเปิด TRIAC ด้วยความล่าช้าและควบคุมกระแสที่ไหลไปยังพัดลม
เนื่องจาก FAN เป็นโหลดอุปนัย จึงใช้วงจร RC Snubber R12 และ C3 เพื่อป้องกัน TRIAC จากการสร้าง EMF ด้านหลัง ตัวต้านทาน R6 และ R7 ใช้เพื่อควบคุมกระแสทริกเกอร์ของ TRIAC
อย่างไรก็ตาม TRIAC สามารถ BTA16 หรือ BT136ได้ ทั้งสองมีความเหมาะสม ที่นี่เราใช้ BT136 ซึ่งมีกระแสไฟสูงสุด 4A แรงดันเกทประตูของ BT136 นั้นน้อยมากเช่นกัน สามารถขับเคลื่อนด้วยวงจรดิจิตอลได้เช่นกัน
BC847 เป็นทรานซิสเตอร์ที่นำ MOC3021 และ Opto Isolator ที่ใช้ TRIAC ซึ่งใช้ในการเปิด TRIAC
วงจรออด:
วงจร Buzzer เป็นออดแบบกลมมาตรฐานที่ควบคุมโดยใช้ MOSFET 2N7002
ไมโครคอนโทรลเลอร์:
ไมโครคอนโทรลเลอร์ที่ใช้สำหรับโครงการนี้คือ ESP12 ที่ได้รับความนิยมอย่างกว้างขวาง มี Wi-Fi และราคาถูกมากเช่นกัน วงจรดึงขึ้นจำเป็นสำหรับการทำงานที่เหมาะสมของโมดูล
การผลิต PCB สำหรับวงจรควบคุมพัดลม IoT
PCB ได้รับการออกแบบโดยแยกจากแรงดันไฟฟ้า AC เป็น DC ได้อย่างเหมาะสม อย่างไรก็ตาม นี่คือ PCB ที่อัปเดตแล้วจากอันที่ใช้เพื่อการทดสอบ มีส่วนประกอบไม่กี่ชิ้นที่ทำผ่านรูเพื่อชดเชยปัญหาการกวาดล้างแทนที่จะเป็นส่วนประกอบขนาดเล็กของ SMD นอกจากนี้ ส่วนพิน Boot และ RST ยังให้ปุ่มเชื่อมต่อที่จะเป็นประโยชน์ระหว่างวัตถุประสงค์ในการเขียนโปรแกรม ด้านล่างนี้คือมุมมองโมเดล 3 มิติของชั้นบนสุดและชั้นล่างของ PCB:
เลย์เอาต์ PCB สำหรับวงจรด้านบนนั้นสามารถดาวน์โหลดได้เป็น Gerber จากลิงค์ด้านล่าง:
สั่งซื้อ PCB จาก PCBWay
ตอนนี้ หลังจากเสร็จสิ้นการออกแบบ คุณสามารถดำเนินการสั่งซื้อ PCB ได้:
ขั้นตอนที่ 1: เข้าสู่ https://www.pcbway.com/ลงทะเบียนหากนี่เป็นครั้งแรกของคุณ จากนั้น ในแท็บ PCB Prototype ให้ป้อนขนาดของ PCB จำนวนเลเยอร์ และจำนวน PCB ที่คุณต้องการ
ขั้นตอนที่ 2: ดำเนินการต่อโดยคลิกที่ปุ่ม 'เสนอราคาทันที' คุณจะถูกนำไปที่หน้าเพื่อตั้งค่าพารามิเตอร์เพิ่มเติมบางอย่าง เช่น ประเภทของบอร์ด, เลเยอร์, วัสดุสำหรับ PCB, ความหนา และอื่นๆ โดยส่วนใหญ่จะถูกเลือกตามค่าเริ่มต้น หากคุณเลือกพารามิเตอร์เฉพาะใดๆ คุณสามารถเลือกได้ ที่นี่.
ขั้นตอนที่ 3: ขั้นตอนสุดท้ายคือการอัปโหลดไฟล์ Gerber และดำเนินการชำระเงิน เพื่อให้แน่ใจว่ากระบวนการนี้ราบรื่น PCBWAY จะตรวจสอบว่าไฟล์ Gerber ของคุณถูกต้องหรือไม่ก่อนดำเนินการชำระเงิน ด้วยวิธีนี้ คุณจึงมั่นใจได้ว่า PCB ของคุณเป็นมิตรกับการผลิตและจะเข้าถึงคุณได้เมื่อได้รับมอบหมาย
การประกอบ PCB ตัวควบคุมพัดลม
หลังจากที่บอร์ดได้รับคำสั่งแล้ว ก็มาถึงฉันหลังจากผ่านไปหลายวันผ่านผู้ให้บริการจัดส่งในกล่องที่บรรจุฉลากอย่างดี คุณภาพของ PCB นั้นดีเช่นเคย ชั้นบนสุดและชั้นล่างสุดของกระดานแสดงไว้ด้านล่าง:
หลังจากตรวจสอบรอยเท้าและรอยเท้าให้ถูกต้องแล้ว ฉันดำเนินการประกอบ PCB กระดานบัดกรีอย่างสมบูรณ์มีลักษณะดังนี้:
การกำหนดค่า Blynk เพื่อควบคุมความเร็วพัดลม
ตอนนี้เราได้ประกอบ PCB แล้ว เราสามารถกำหนดค่าแอป Blynk และตั้งโปรแกรม ESP ได้ สำหรับผู้ที่ไม่รู้ว่า Blynk เป็นแอปพลิเคชั่นที่สามารถทำงานบนอุปกรณ์ Android และ iOS เพื่อควบคุมอุปกรณ์และเครื่องใช้ IoT ใด ๆ โดยใช้สมาร์ทโฟน ก่อนอื่นต้องสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) เพื่อควบคุมพัดลม ก่อนการติดตั้ง ให้ดาวน์โหลด Blynk Application จาก Google Play Store (ผู้ใช้ iOS สามารถดาวน์โหลดได้จาก App Store) หลังการติดตั้ง ลงทะเบียนโดยใช้อีเมลและรหัสผ่านของคุณ
หลังจากติดตั้งสำเร็จแล้ว ให้เปิดแอปพลิเคชัน จากนั้นเราจะได้หน้าจอพร้อมตัวเลือก "โครงการใหม่" คลิกแล้วจะมีหน้าจอใหม่ปรากฏขึ้น ซึ่งเราต้องตั้งค่าพารามิเตอร์ เช่น ชื่อโครงการ บอร์ด และประเภทการเชื่อมต่อ ในโครงการของเรา เลือกอุปกรณ์เป็น "ESP8266" และประเภทการเชื่อมต่อเป็น "Wi-Fi" และคลิกที่ "สร้าง"
หลังจากสร้างโครงการสำเร็จแล้ว คุณจะได้รับ Authenticate ID ในจดหมายลงทะเบียนของเรา บันทึก ID รับรองความถูกต้องเพื่อใช้อ้างอิงในอนาคต
ตอนนี้ ขั้นตอนต่อไปคือการเพิ่มวิดเจ็ตเพื่อควบคุมความเร็วพัดลมและการเปิด/ปิดพัดลม ให้คลิกที่เครื่องหมาย + และเพิ่มวิดเจ็ต Slider
หลังจากลากวิดเจ็ตไปยังโปรเจ็กต์ของเราแล้ว ตอนนี้ เราต้องตั้งค่าพารามิเตอร์ที่ใช้เพื่อส่งค่าตัวเลื่อนไปยัง ESP คลิกที่ตัวเลื่อน จากนั้นเราจะได้หน้าจอชื่อการตั้งค่าตัวเลื่อน คลิกที่ PIN และเลือกประเภท PIN เป็นเสมือนและชื่อ PIN เป็น V0 พินนี้จะเข้าถึงได้โดยแอป BLYNK
จากนั้นเลือกช่วง Slider จาก 0 ถึง 100
รหัสสำหรับตัวควบคุมความเร็วพัดลมที่ใช้ IoT
รหัสที่สมบูรณ์สำหรับการควบคุมความเร็วพัดลม AC โดยใช้ ESP8266อยู่ที่ส่วนท้ายของเอกสาร เพื่อทำความเข้าใจว่าโค้ดตัวควบคุมพัดลมทำงานอย่างไร ในที่นี้เราจะอธิบายโค้ดในตัวอย่างเล็กๆ น้อยๆ ประการแรก ขอบคุณ RobotDynOfficial สำหรับการสนับสนุนไลบรารีที่ยอดเยี่ยมของ AC dimmer โดยใช้ TRIAC และ Zero Cross Detection ไลบรารีที่ใช้สามารถติดตั้งได้จากลิงค์ GitHub ด้านล่าง
https://github.com/RobotDynOfficial/RBDDimmer
เนื่องจากเราใช้ Blynk สถาปัตยกรรมโค้ดจึงใช้จากตัวอย่าง Blynk - Virtual Pin Read
BLYNK_WRITE(V0) { int pinValue = param.asInt(); // กำหนดค่าขาเข้าจากพิน V1 ให้กับตัวแปร pwm = pinValue; buzz_notify(); Serial.println("ได้รับค่า PWM - "); Serial.println(pwm); Serial.println("\n"); }
ฟังก์ชั่นข้างต้นจะถูกเรียกเมื่อใดก็ตามที่มีการเปลี่ยนแปลงค่าหรือตัวเลื่อนใหม่ในแอป Blynk และตั้งค่าเอาต์พุต PWM ระหว่างการเปลี่ยนแปลงเหล่านี้ Buzzer จะเริ่มส่งเสียงบี๊บ
วงเป็นโมฆะ () { Blynk.run(); map_pwm = แผนที่ (pwm, 0, 100, 0, 87); // analogRead (analog_pin), min_analog, max_analog, 0%, 100%); dimmer.setPower(map_pwm); // name.setPower(0%-100%) }
87% ถูกใช้ขณะทดสอบกำลังสูงสุดที่ 87% สำหรับคำอธิบายโค้ดโดยละเอียด โปรดอ่านความคิดเห็นเกี่ยวกับโค้ดในส่วนโค้ดที่ด้านล่างของหน้านี้
การควบคุมความเร็วพัดลมโดยใช้ Blynk และ ESP-12E
ด้วยวงจรควบคุมพัดลมที่ใช้ IoT ของฉันพร้อมสำหรับการดำเนินการ ฉันจึงไปที่พัดลมติดผนัง ตรวจสอบสายไฟ และเชื่อมต่อการตั้งค่าตัวควบคุมพัดลมดังแสดงในภาพด้านล่าง เมื่อเสร็จแล้ว ตอนนี้ฉันควบคุมพัดลมจากโทรศัพท์ได้แล้ว
ในทำนองเดียวกัน คุณสามารถควบคุมพัดลมแบบไร้สายโดยใช้โทรศัพท์หรือแล็ปท็อป คุณยังสามารถตั้งเวลาในแอพพลิเคชั่น blynk เพื่อเปิด/ปิดพัดลมโดยอัตโนมัติในช่วงเวลาเฉพาะของวัน วิดีโอและโค้ดที่ใช้งานได้เต็มรูปแบบสามารถดูได้ที่ด้านล่าง หวังว่าคุณจะสนุกกับโครงการและได้เรียนรู้บางสิ่งที่เป็นประโยชน์ หากคุณมีคำถามใด ๆ โปรดทิ้งไว้ในส่วนความคิดเห็นด้านล่างหรือใช้ฟอรัมของเรา เพื่อเริ่มการสนทนาเกี่ยวกับเรื่องนี้
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <RBDdimmer.h>
#define outputPin 14
#define zerocross 4 // สำหรับบอร์ดที่มีพินอินพุต CHANGEABLE
#define buzz 5
//#define TRIAC 14 นิ้ว
pwm=0;
int map_pwm=0;
// คุณควรได้รับ Auth Token ในแอป Blynk
// ไปที่การตั้งค่าโครงการ (ไอคอนน็อต)
char auth[] = "โทเค็น BLYNK";
// ข้อมูลรับรอง WiFi ของคุณ
// ตั้งรหัสผ่านเป็น "" สำหรับเครือข่ายที่เปิดอยู่
ถ่าน ssid[] = "xxxx";
ถ่านผ่าน[] = "xxxxxx";
// เป็นโมฆะ ICACHE_RAM_ATTR ISRoutine ();
dimmerLamp หรี่ (outputPin, zerocross); //เริ่มต้นพอร์ตสำหรับหรี่สำหรับ ESP8266, ESP32,
เป็นโมฆะ buzz_notify (เป็นโมฆะ) {
digitalWrite (buzz, HIGH);
ล่าช้า (1000);
digitalWrite (ฉวัดเฉวียน, ต่ำ);
ล่าช้า (1000);
}
BLYNK_WRITE (V0)
{
int pinValue = param.asInt (); // กำหนดค่าขาเข้าจากพิน V1 ให้กับตัวแปร
pwm = pinValue;
buzz_notify();
Serial.println("ได้รับค่า PWM - ");
Serial.println(pwm);
Serial.println("\n");
}
การตั้งค่าเป็นโมฆะ ()
{
// ดีบักคอนโซล
pinMode (buzz, OUTPUT);
Serial.begin(115200);
buzz_notify ();
Blynk.begin(รับรองความถูกต้อง, ssid, ผ่าน);
dimmer.begin (NORMAL_MODE, เปิด); // การเริ่มต้นหรี่: name.begin (MODE, STATE)
// เป็นโมฆะ ICACHE_RAM_ATTR ISRoutine ();
// คุณยังสามารถระบุเซิร์ฟเวอร์:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}
วงเป็นโมฆะ ()
{
Blynk.run ();
map_pwm = แผนที่ (pwm, 0, 100, 0, 87); // analogRead (analog_pin), min_analog, max_analog, 100%, 0%);
dimmer.setPower(map_pwm); // name.setPower(0%-100%)
}
ความคิดเห็น
แสดงความคิดเห็น