สารบัญ:

IDC2018IOT GarbageCan-Online: 7 ขั้นตอน
IDC2018IOT GarbageCan-Online: 7 ขั้นตอน

วีดีโอ: IDC2018IOT GarbageCan-Online: 7 ขั้นตอน

วีดีโอ: IDC2018IOT GarbageCan-Online: 7 ขั้นตอน
วีดีโอ: Create A Free Online Store in 2024 ~ A Free Shopping Cart Tutorial For Beginners 2024, พฤศจิกายน
Anonim
Image
Image
อะไหล่ที่จำเป็น
อะไหล่ที่จำเป็น

บทนำ

ทุกคนรู้ว่าจะเกิดอะไรขึ้นเมื่อเราทิ้งถังขยะไว้ในถังขยะนานเกินไปโดยไม่ต้องถอดออก สิ่งที่ชัดเจนที่สุดคือไม่มีที่ว่างให้เก็บขยะเพิ่ม แต่มันเริ่มมีกลิ่นเหม็น และมันก็ไม่เป็นที่พอใจอย่างมาก

ด้วยโครงการนี้ เรามุ่งหวังที่จะช่วยคุณตรวจสอบถังขยะรอบๆ บ้าน\พื้นที่ทำงาน\ฯลฯ เพื่อให้คุณทราบได้เสมอว่าถังขยะเต็มเมื่อใด และสามารถดำเนินการได้ทันทีโดยนำขยะออกไป

ระบบจะแจ้งเตือนคุณทางโทรศัพท์หรือแดชบอร์ดแจ้งเตือนว่าคุณต้องล้างถังขยะ ระบบจะคำนึงถึงระดับความสมบูรณ์ของถังขยะ แต่ยังรวมถึงอุณหภูมิและความชื้นที่วัดได้ภายในด้วย เราทุกคนต่างคุ้นเคยกับความเร่งด่วนในการทิ้งถังขยะในวันที่อากาศร้อนและชื้น…

คุณสมบัติหลัก

  1. แดชบอร์ดการตรวจสอบ:

    • ส่วนหลัก:

      • ระดับความสมบูรณ์ของถังขยะแต่ละถัง
      • อุณหภูมิและความชื้นของถังขยะแต่ละชนิด
    • ส่วนสถิติ:

      • ถังขยะอย่างเต็มที่
      • ถังขยะที่ร้อนแรงที่สุด
  2. ระบบแจ้งเตือนและแจ้งเตือน:

    • รองรับเหตุการณ์ต่อไปนี้:

      • ถังขยะเต็ม
      • เกิดข้อผิดพลาดของเซ็นเซอร์
    • การแจ้งเตือนความสมบูรณ์จะพิจารณาถึงระดับความสมบูรณ์ของถังขยะ แต่ยังรวมถึงระดับอุณหภูมิและความชื้นของถังขยะด้วย
    • การแจ้งเตือนสามารถส่งผ่านการแจ้งเตือนทางโทรศัพท์และการแจ้งเตือนบนแดชบอร์ด
    • สามารถเปิดและปิดช่องการแจ้งเตือนแต่ละช่องผ่านแดชบอร์ดได้
  3. ความสามารถในการปรับขนาด:

    • การใช้ปุ่มปรับเทียบทำให้สามารถปรับระบบให้เป็นถังขยะต่างๆ ที่มีความจุต่างกันได้
    • สามารถเพิ่มถังขยะได้ค่อนข้างง่าย สามารถประกอบระบบเดียวกันบนถังขยะใหม่ ตั้งค่า ID ถังขยะและปรับเทียบ (กดปุ่ม) การมีถังขยะมากกว่า 3 กระป๋องจะต้องมีการขยาย Dashboard (งานง่ายที่จะดำเนินการ)

พวกเราคือใคร?

โครงการนี้สร้างขึ้น (ด้วยความรักและความทุ่มเท!) โดย Rom Cyncynatus และ Daniel Alima - นักศึกษาของ IDC Herzliya เป็นโครงการสุดท้ายสำหรับหลักสูตร IoT ของเรา เราหวังว่าคุณจะพบว่างานของเรามีประโยชน์ และสนุกกับการใช้มัน!

ขั้นตอนที่ 1: อะไหล่ที่จำเป็น

ในการสร้างระบบ คุณจะต้องได้รับส่วนประกอบและชิ้นส่วนดังต่อไปนี้:

  1. ถังขยะ(ควรมีฝาปิด): จะใช้สำหรับ…ก็.. คุณรู้ไหมว่าเราจะทำอย่างไรกับอันนี้ดี?;)
  2. เขียงหั่นขนม: เพื่อเชื่อมต่อส่วนประกอบต่าง ๆ ทั้งหมดโดยไม่ต้องใช้การบัดกรี
  3. NodeMCU (ESP-8266): ทำหน้าที่อ่านเซ็นเซอร์และส่งข้อมูลไปยังคลาวด์
  4. Distance IR Sensor - Sharp 0A41SK: เซ็นเซอร์นี้จะวัดปริมาณขยะ (ระดับความสมบูรณ์) ภายในกระป๋อง
  5. Temperature & Humidity Sensor - DHT11: เซ็นเซอร์นี้จะวัดอุณหภูมิและความชื้นภายในถังขยะ
  6. สวิตช์ชั่วขณะ: จะใช้ในการสอบเทียบเซ็นเซอร์ระยะทางตามขนาดของถังขยะ
  7. อลูมิเนียมฟอยล์: จะใช้เป็นตัวตรวจจับสถานะฝา - ไม่ว่าจะเปิดหรือปิด
  8. สายจัมเปอร์: ให้มาก และมีความยาวและสีต่างกัน จะเชื่อมโยงทุกอย่างเข้าด้วยกัน
  9. Duct Tape: เราจะต้องติดของเข้าที่
  10. สาย Micro-USB: เพื่อเชื่อมต่อ NodeMCU กับคอมพิวเตอร์ของคุณสำหรับการตั้งโปรแกรม และต่อมาสำหรับแหล่งจ่ายไฟ
  11. แหล่งจ่ายไฟ USB (เครื่องชาร์จสมาร์ทโฟน): จะจ่ายไฟให้กับ NodeMCU เมื่อติดตั้งบนถังขยะ

ขั้นตอนที่ 2: การเดินสายไฟและการประกอบ

การเดินสายไฟและการประกอบ
การเดินสายไฟและการประกอบ
การเดินสายไฟและการประกอบ
การเดินสายไฟและการประกอบ
การเดินสายไฟและการประกอบ
การเดินสายไฟและการประกอบ

การเดินสายไฟ

วาง NodeMCU ไว้บนเขียงหั่นขนม เพื่อให้สะดวกต่อการต่อเข้ากับถังขยะของคุณในภายหลัง และต่อสาย USB เข้ากับมัน จากนั้น ให้ดูแผนภาพการเดินสายไฟด้านบนเพื่อเชื่อมต่อส่วนประกอบต่างๆ กับ NodeMCU ตรวจสอบให้แน่ใจว่าได้ใช้สายไฟยาวสำหรับเซ็นเซอร์และสายไฟแสดงสถานะ เพื่อให้สะดวกในการติดตั้งระบบและใช้งานถังขยะร่วมกับระบบ

  • เซ็นเซอร์ IR ระยะทาง - Sharp 0A41SK:

    • วิน (แดง) วิน
    • GND (สีดำ) GND
    • Vout (สีเหลือง) A0
  • เซ็นเซอร์อุณหภูมิและความชื้น - DHT11:

    • วิน (แดง) 3V3
    • GND (สีดำ) GND
    • DATA (สีเหลือง) D4
  • สวิตช์ชั่วขณะ:

    • Pin1 D3
    • Pin2 GND
  • สถานะของฝาปิด (เปิด\ปิด) สายไฟ:

    • ลวด1 D2
    • Wire2 GND

การประกอบ

การประกอบระบบบนถังขยะนั้นค่อนข้างง่าย ติดเขียงหั่นขนมเข้ากับถังขยะ ควรปิดฝาให้สนิท ใช้เทปพันสายไฟหรือสายรัดเพื่อยึดให้เข้าที่ แล้ว:

  1. วางเซ็นเซอร์ระยะ IR ไว้ตรงกลางฝา (จากด้านใน!) ตรวจสอบให้แน่ใจว่าได้รักษาความปลอดภัยอย่างถูกต้อง มิฉะนั้น คุณจะพบกับการอ่านที่ผิดพลาด!
  2. วางเซ็นเซอร์อุณหภูมิและความชื้นไว้ในถังขยะ ปลอดภัยด้วยเทป
  3. ปิดฝาด้านข้างและปลายถังขยะด้วยกระดาษฟอยล์อลูมิเนียม ตรวจสอบให้แน่ใจว่ามีการสัมผัสที่ดีเมื่อปิดฝา นี้จะส่งสัญญาณระบบว่าถังขยะเปิดหรือปิด จากนั้นติดสายไฟสถานะฝาปิดแต่ละเส้นในฟอยล์อะลูมิเนียมแผ่นใดอันหนึ่ง แล้วยึดด้วยเทป

ขั้นตอนที่ 3: ตั้งค่า MQTT, Node-RED และ IFTTT

ตั้งค่า MQTT, Node-RED และ IFTTT
ตั้งค่า MQTT, Node-RED และ IFTTT
ตั้งค่า MQTT, Node-RED และ IFTTT
ตั้งค่า MQTT, Node-RED และ IFTTT
ตั้งค่า MQTT, Node-RED และ IFTTT
ตั้งค่า MQTT, Node-RED และ IFTTT

ตรรกะของโครงการส่วนใหญ่ถูกนำไปใช้จริงในระบบคลาวด์ NodeMCU ส่งข้อมูลไปยังเซิร์ฟเวอร์ MQTT และ Node-RED ใช้งานและใช้ตรรกะกับเซิร์ฟเวอร์ (เพิ่มเติมเกี่ยวกับสถาปัตยกรรมในอนาคต) สุดท้ายนี้ เราใช้ IFTTT เพื่อส่งการแจ้งเตือนแบบพุช (การแจ้งเตือน) ไปยังสมาร์ทโฟนของเรา

เราจะใช้บริการคลาวด์ CloudMQTT และ FRED เป็นเซิร์ฟเวอร์ MQTT และ Node-RED ตามลำดับ และเราจะใช้ IFTTT สำหรับการแจ้งเตือนแบบพุช

  1. ลงชื่อสมัครใช้ CloudMQTT ด้วยแผนฟรี จดข้อมูลประจำตัวของคุณไปยังเซิร์ฟเวอร์ MQTT (ชื่อผู้ใช้และรหัสผ่าน)
  2. ลงทะเบียนกับ IFTTT สร้างแอปเพล็ตใหม่ของ "การแจ้งเตือนแอป Webhooks IFTTT" ใช้ "การแจ้งเตือนโทรศัพท์มือถือ" เป็นชื่อกิจกรรมของ WebHookds ศึกษาภาพด้านบนสำหรับรายละเอียดที่สำคัญ จดบันทึกคีย์ API ผู้ผลิตของคุณ
  3. ดาวน์โหลดแอป IFTTT ลงในโทรศัพท์ของคุณและลงชื่อเข้าใช้ด้วยข้อมูลประจำตัวของคุณ สิ่งนี้จะช่วยให้คุณได้รับการแจ้งเตือนแบบพุช
  4. ลงชื่อสมัครใช้ FRED ด้วยแผนฟรี
  5. เมื่อคุณเปิดใช้งานอินสแตนซ์ FRED แล้ว ให้นำเข้าโฟลว์ที่แนบมาเข้าไป (ปุ่ม 3 แถบนำเข้าจากคลิปบอร์ด) เพียงวางเนื้อหาของแต่ละไฟล์ (widgest.json, alerts.json, Statistics.json) แล้วนำเข้า
  6. แก้ไขหนึ่งในโหนด MQTT (หนึ่งอันเพียงพอ) เพื่ออัปเดตข้อมูลประจำตัว CloudMQTT ของคุณ
  7. แก้ไขโหนด IFTTT เพื่ออัปเดตคีย์ API ตัวสร้าง IFTTT ของคุณ

ขั้นตอนที่ 4: ตั้งโปรแกรม NodeMCU และการสอบเทียบความจุของถังขยะ

เมื่อเราวางสายทุกอย่างเรียบร้อยแล้ว เราต้องตั้งโปรแกรม NodeMCU ด้วยซอฟต์แวร์ที่เหมาะสม (สเก็ตช์) เพื่อที่มันจะใช้ประโยชน์จากทุกสิ่งที่เชื่อมต่อและสื่อสารกับอินเทอร์เน็ตได้จริง

  1. ดาวน์โหลดและติดตั้ง Arduino IDE จากที่นี่
  2. ติดตั้งและตั้งค่าประเภทบอร์ด NodeMCU ตามที่อธิบายไว้ในตอนต้นของคำแนะนำต่อไปนี้
  3. ติดตั้งไลบรารีต่อไปนี้ (Sketch Include Library Manage Libraries…):

    1. ห้องสมุด Adafruit MQTT (โดย Adafruit)
    2. ไลบรารีเซ็นเซอร์ DHT (โดย Adafruit)
    3. SharpIR (โดย Giuseppe Masino)
    4. EEPROMANทุกอย่าง - คำอธิบายที่นี่
  4. เปิดไฟล์ GarbageCanOnline.ino และอัปเดตสิ่งต่อไปนี้:

    1. ข้อมูลรับรอง WiFi ของคุณ (WLAN_SSID, WLAN_PASS)
    2. ข้อมูลประจำตัว CloudMQTT ของคุณ (MQTT_USERNAME, MQTT_PASSWORD)
    3. หากนี่คือถังขยะที่สองหรือมากกว่า ให้เปลี่ยน ID ถังขยะ (GARBAGECAN_ID)
  5. อัปโหลดภาพร่างที่อัปเดตไปยัง NodeMCU ของคุณ
  6. เปิดหน้าต่างการตรวจสอบซีเรียล (Ctrl+M) และตรวจสอบให้แน่ใจว่าสามารถเผยแพร่ข้อมูลเซ็นเซอร์ไปยัง CloudMQTT
  7. ตอนนี้ เมื่อปิดฝาและถังขยะว่างเปล่า ให้กดปุ่มปรับเทียบค้างไว้เพื่อปรับเทียบความจุของถังขยะ
  8. ถังขยะพร้อมแล้ว คุณสามารถยกเลิกการเชื่อมต่อจากคอมพิวเตอร์ของคุณ และเชื่อมต่อในตำแหน่งที่กำหนดโดยใช้แหล่งจ่ายไฟ USB

ขั้นตอนที่ 5: การใช้ระบบ

การใช้ระบบ
การใช้ระบบ
การใช้ระบบ
การใช้ระบบ
การใช้ระบบ
การใช้ระบบ

หากคุณมาไกลถึงขนาดนี้ ทุกอย่างก็ควรจะเริ่มต้นขึ้น ให้เราทำภาพรวมโดยย่อของลักษณะการใช้งานต่างๆ ของระบบ

เราคิดว่าคุณมีขยะเพียงตัวเดียวที่สามารถเชื่อมต่อได้ แต่มันง่ายที่จะเพิ่มในภายหลัง!

ขั้นแรก ให้สังเกตแดชบอร์ดหลัก คุณควรอยู่ในหน้าจอหลักโดยเห็นระดับความเต็มของถังขยะ อุณหภูมิ และความชื้น คุณสามารถควบคุมการแจ้งเตือนทางโทรศัพท์และการแจ้งเตือนบนแดชบอร์ดได้โดยใช้สวิตช์ทางด้านซ้าย

เมื่อปริมาณขยะในขยะเปลี่ยนแปลงได้ คุณจะเห็นมาตรวัดเปลี่ยนไปตามนั้น นี่เป็นกรณีของกราฟอุณหภูมิและความชื้นด้วย

เมื่อระดับความสมบูรณ์ถึง 85%-90% (เกณฑ์ที่แน่นอนขึ้นอยู่กับอุณหภูมิและความชื้น) หรือเกิดข้อผิดพลาดของเซ็นเซอร์ คุณจะได้รับการแจ้งเตือนผ่านวิธีการที่คุณต้องการ คุณจะได้รับการแจ้งเตือนทุกๆ 1 ชั่วโมงต่อถังขยะ

ในมุมมองสถิติ คุณจะเห็นถังขยะเต็มถังและถังขยะที่ร้อนแรงที่สุดในปัจจุบัน ชื่อที่ไม่ยกยอถ้าเราอาจจะบอกว่า…

ขั้นตอนที่ 6: ทำความเข้าใจโฟลว์

เข้าใจกระแส
เข้าใจกระแส
เข้าใจกระแส
เข้าใจกระแส
เข้าใจกระแส
เข้าใจกระแส
เข้าใจกระแส
เข้าใจกระแส

อย่างที่คุณอาจสังเกตเห็นแล้วว่า ระบบมี "ชิ้นส่วนที่เคลื่อนไหว" มากมาย เราจะพยายามชี้แจงว่าสิ่งต่าง ๆ เชื่อมโยงถึงกันอย่างไร

อันดับแรก เรามีถังขยะพร้อม NodeMCU และเซ็นเซอร์ เราสามารถมีสิ่งเหล่านี้ได้มากมาย แค่ "สำเนา" ของกันและกัน

NodeMCU วัดเซ็นเซอร์ต่างๆ ที่วางไว้ในถังขยะ และเผยแพร่ข้อมูลไปยังเซิร์ฟเวอร์ MQTT (โปรโตคอล MQTT) คุณสามารถมองว่าเซิร์ฟเวอร์ MQTT เป็นการแลกเปลี่ยนข้อมูลขนาดใหญ่ ซึ่งถังขยะจำนวนมากสามารถรายงานข้อมูลของตนได้

เอนทิตีอื่นที่เชื่อมต่อกับเซิร์ฟเวอร์ MQTT คือ Node-RED Node-RED รับฟังข้อความต่าง ๆ ที่มาจากถังขยะที่บรรทุกข้อมูลทางประสาทสัมผัส และใช้ตรรกะของมันกับมัน มันทำงานโดยใช้ "กระแส" ของข้อมูล ทุกครั้งที่ได้รับข้อความ ตามประเภทของข้อความ (หัวข้อ MQTT) ข้อความจะเข้าสู่สายปฏิบัติการเฉพาะที่สิ้นสุดการเปิดใช้งานคุณสมบัติต่างๆ ของระบบ (อัปเดตแดชบอร์ด การส่งการแจ้งเตือน ฯลฯ) พูดได้ถูกต้องมาก ว่า Node-RED เป็น "สมอง" ของระบบ รับรู้ทุกสิ่งที่เกิดขึ้นทุกที่ และสามารถดำเนินการตามนั้นได้

ภายใน Node-RED เราได้สร้างกระแสข้อมูลหลัก 3 ประการ:

  1. วิดเจ็ต - ข้อมูลทางประสาทสัมผัสที่ป้อนลงใน Node-RED จะแสดงบนแดชบอร์ดผ่านมาตรวัดและกราฟ
  2. การแจ้งเตือน - ข้อมูลทางประสาทสัมผัสจะได้รับการประมวลผลเพื่อสรุปว่าควรเปิดการแจ้งเตือน (บนแดชบอร์ดหรือบนแอปสมาร์ทโฟน) ระดับความสมบูรณ์โดยคำนึงถึงอุณหภูมิและความชื้นเพื่อตัดสินใจแจ้งให้ผู้ใช้ทราบว่าถังขยะเต็ม นอกจากนี้ยังมีการรายงานข้อผิดพลาดทางประสาทสัมผัสโดยขั้นตอนเดียวกัน
  3. สถิติ - ข้อมูลทางประสาทสัมผัสถูกรวบรวมเพื่อแสดงถังขยะที่เต็มและร้อนแรงที่สุด

เพื่อให้ Node-RED ส่งการแจ้งเตือนแบบพุช จะเชื่อมต่อกับบริการที่เรียกว่า IFTTT (โดยโปรโตคอล HTTP) มันเปิดใช้งานเหตุการณ์ IFTTT บางอย่างด้วยข้อความแจ้งเตือนที่เกี่ยวข้อง และ IFTTT จะส่งการแจ้งเตือนไปยังสมาร์ทโฟนของเรา (โปรโตคอล HTTP & XMPP)

ศึกษาจากภาพด้านบนเพื่อทำความเข้าใจ (a) โครงสร้างทั่วไปของระบบ และ (b) ข้อมูล 3 แบบที่แตกต่างกันภายใน Node-RED

ขั้นตอนที่ 7: ความท้าทาย ข้อจำกัด และแผนสำหรับอนาคต…

ความท้าทาย

ความท้าทายหลักในโครงการนี้ส่วนใหญ่เป็นการจัดการบริการ MQTT และ Node-RED เราใช้ AdafruitIO เป็นครั้งแรก แต่การใช้งาน MQTT แบบกำหนดเองนั้นไม่ค่อยดีสำหรับเรา ไม่สะดวกในการทำงานกับ "ฟีด" ใน Node-RED ดังนั้นในที่สุด เราก็เลือกใช้ CloudMQTT ซึ่งอิงตามเซิร์ฟเวอร์ Mosquitto MQTT และมีมาตรฐานมากกว่า จากนั้นเราก็ไปจัดการ Node-RED ซึ่งค่อนข้างท้าทาย ส่วนใหญ่เป็นเพราะ Node-RED เป็นสัตว์เดรัจฉาน ตัวอย่างเช่น มีความครอบคลุมและเป็นมืออาชีพมากกว่า IFTTT ในมุมมองของเรา เราต้องปรับและเรียนรู้วิธีการใช้แนวทางการออกแบบตามกระแสเพื่อสร้างคุณลักษณะที่จำเป็นของระบบ ยิ่งไปกว่านั้น ข้อดีที่ใหญ่ที่สุดประการหนึ่งคือการรองรับโค้ดจาวาสคริปต์ แต่ต้องใช้เวลาสักพักกว่าจะชิน เพราะเราไม่ใช่โปรแกรมเมอร์จาวาสคริปต์ ถึงแม้ว่าทั้งหมดนั้น เราสนุกกับการทำงานกับเครื่องมือนี้มาก และเราพบว่าเครื่องมือนี้น่าสนใจและมีประโยชน์มาก

ข้อจำกัด

ในส่วนที่เกี่ยวกับข้อจำกัด อย่างแรกคือความจริงที่ว่าเราใช้บริการฟรีเท่านั้น และจะไม่อนุญาตให้ใช้อย่างเต็มรูปแบบ แผนบริการฟรีของ CloudMQTT จะไม่อนุญาตให้มีการเชื่อมต่อแบบขนานมากกว่า 5 รายการ ซึ่งหมายความว่าเราสามารถมีถังขยะได้เพียง 4 กระป๋องและ Node-RED แผนฟรี FRED Node-RED อนุญาตให้ใช้งานได้ตลอด 24 ชั่วโมง หลังจากนั้นคุณต้องเข้าสู่ระบบด้วยตนเองและรีเซ็ตตัวจับเวลา อย่างไรก็ตาม ปัญหาเหล่านี้แก้ไขได้อย่างง่ายดายด้วยการเรียกใช้บริการเหล่านี้ในเครื่อง หรือจ่ายเพิ่มเล็กน้อยเพื่อขจัดข้อจำกัด ข้อจำกัดที่สองคือเมื่อเพิ่มขยะที่สี่และต่อไป เขาต้องแก้ไขโฟลว์วิดเจ็ตใน Node-RED ด้วยตนเองเพื่อเพิ่มวิดเจ็ตที่เหมาะสม

แผนสำหรับอนาคต

เรามีแนวคิดบางอย่างที่จะปรับปรุงระบบของเราให้ดียิ่งขึ้นและขยายออกไป:

  1. ย้ายไปยังบริการคลาวด์ที่ไม่ฟรี (ทำงานวันเดียว).
  2. การเพิ่มเครื่องอัดขยะลงในถังขยะซึ่งจะช่วยลดความถี่ในการทิ้งขยะ (ทำงาน 4 เดือน)
  3. การทำงานกับถังขยะในเมืองและอุตสาหกรรมเพื่อปรับปรุงประสิทธิภาพของรถบรรทุกในเมืองที่จัดการขยะในเมือง นี่หมายถึงการปรับปรุงแดชบอร์ดและระบบแจ้งเตือนอย่างมากเพื่อให้คนขับรถบรรทุกสามารถวางแผนเส้นทางได้ดีขึ้นมากเมื่อจัดการกับขยะ (ทำงาน 6 เดือน).
  4. การเพิ่มความสามารถในการรีไซเคิลลงในถังขยะ เช่น ความสามารถในการเทสารละลายชีวภาพพิเศษลงในขยะและช่วยรีไซเคิลในขณะที่ยังอยู่ในถังขยะ สามารถใช้ในประเทศได้ เช่น การผลิตปุ๋ยหมักสำหรับสวน แต่สามารถใช้กับกระป๋องอุตสาหกรรมได้อย่างชัดเจนเช่นกัน (ทำงาน 6 เดือน).

แนะนำ: