สารบัญ:
- ขั้นตอนที่ 1: ตัวรับสัญญาณกลางแจ้ง
- ขั้นตอนที่ 2: เชื่อมต่อฮาร์ดแวร์ตัวรับกลางแจ้ง
- ขั้นตอนที่ 3: เครื่องส่งสัญญาณในร่ม
- ขั้นตอนที่ 4: เชื่อมต่อฮาร์ดแวร์เครื่องส่งสัญญาณในร่ม
- ขั้นตอนที่ 5: การเชื่อมต่อกับ Adafruit.IO และ IFTTT
- ขั้นตอนที่ 6: การอัปโหลดรหัส & การแก้ไข WiFi SSID และรหัสผ่าน
วีดีโอ: ประตูสัตว์เลี้ยงกลางแจ้ง IoT: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ฉันได้รับแรงบันดาลใจจากคำแนะนำนี้ในการสร้างประตูสุ่มไก่อัตโนมัติ ฉันไม่เพียงต้องการจับเวลาประตูเล้าไก่เท่านั้น แต่ยังต้องการเชื่อมต่อประตูกับอินเทอร์เน็ตด้วย เพื่อที่ฉันจะได้ควบคุมประตูด้วยโทรศัพท์หรือคอมพิวเตอร์ของฉัน ประตูนี้สร้างขึ้นสำหรับเล้าไก่ของฉัน แต่มันสามารถนำไปใช้กับที่อยู่อาศัยประเภทอื่นสำหรับสัตว์เลี้ยงหลากหลายชนิดได้อย่างง่ายดาย คุณสามารถใช้มอเตอร์ 12V ประเภทต่างๆ ได้นอกเหนือจากมอเตอร์เสาอากาศรถยนต์รุ่นเก่าที่ฉันใช้
หลังจากตั้งค่าและเชื่อมต่อ Adafruit IO และ IFTTT กับ ESP8266 ของฉันแล้ว ประตูเล้าไก่ของฉันก็สามารถควบคุมออนไลน์ได้ ประตูสามารถเปิดหรือปิดได้:
1) ในเวลาที่แน่นอนที่ฉันเข้าสู่ adafruit.io
2) โดยการกดปุ่มบนโทรศัพท์ของฉัน
3) โดยการส่งข้อความไปยังหมายเลขที่กำหนด
4) โดยการคลิกที่ปุ่มบน adafruit.io
5) โดยการกดปุ่มทางกายภาพ
ที่ด้านบนของคุณสมบัติเหล่านั้น ประตูสุ่มไก่สามารถส่งการแจ้งเตือนแบบพุชไปยังโทรศัพท์ของฉันผ่านแอป IFTTT เกี่ยวกับปัญหาใดๆ กับประตู เช่น ประตูไม่สามารถเปิดหรือปิดได้
เนื่องจากเล้าไก่ของฉันอยู่ห่างจากเราเตอร์ WiFi ของฉันประมาณ 500 ฟุต ฉันจึงใช้ตัวส่งและตัวรับสัญญาณ RFM69HCW 433MHz ที่จับคู่กับ ESP8266 เพื่อทำโครงการนี้ให้สำเร็จ มีกล่องส่งสัญญาณในร่มสีดำพร้อมฮาร์ดแวร์ที่เชื่อมต่อกับอินเทอร์เน็ตและกล่องรับสัญญาณภายนอกสีเทาที่ควบคุมมอเตอร์
คำแนะนำนี้จะนำคุณผ่านขั้นตอนการสร้างฮาร์ดแวร์ที่จำเป็นในการควบคุมมอเตอร์ 12V ที่เปิดหรือปิดประตูเล้าไก่ของฉัน
ฉันใช้ส่วนต่อไปนี้:
Adafruit 32u4 พร้อม 433MHz RFM69HCW - $25
Adafruit MCP23017 I2C 16 ตัวขยายพอร์ตอินพุต/เอาต์พุต IC - $2.95
Adafruit Feather HUZZAH พร้อม ESP8266 WiFi - $16.95
Adafruit วิทยุ FeatherWing 433MHz RFM69HCW - $10
ตัวเชื่อมต่อ Adafruit SMA สำหรับ PCB หนา 1.6 มม. - $2.50
ขั้วต่อเสาอากาศ Adafruit uFL SMA - $0.75
ปุ่มกด Adafruit RGB - $10.95
แหล่งจ่ายไฟ 12V - $7
แหล่งจ่ายไฟ USB 5V - $7
สายไมโคร USB - $5
บอร์ดรีเลย์ 4 ช่อง (ใช้ 2 ช่องได้)- $7
ตัวแปลง DC-DC Buck (ใช้เพียงอันเดียวแต่มาเป็นแพ็ค 5 ชิ้น) - $20
Reed Switch (เซ็นเซอร์สวิตช์ประตูแม่เหล็ก) - $9
2x 433MHz เสาอากาศรอบทิศทาง - $6
อะแดปเตอร์สายเคเบิล uFL เป็น SMA (ใช้เพียงอันเดียวแต่มาในแพ็ค 2) - $5
กล่องโครงการ ABS กลางแจ้งกันน้ำ - $11
กล่องโปรเจ็กต์ ABS สีดำ - $10
จอ LCD ตัวอักษรสีน้ำเงิน 20x4 - $10
มอเตอร์เสาอากาศรถยนต์ 12V - ~ $ 25 บน ebay
ลวดและตัวต้านทาน
ขั้นตอนที่ 1: ตัวรับสัญญาณกลางแจ้ง
ตัวรับสัญญาณภายนอกประกอบด้วย Adafruit 32u4 พร้อม RFM69HCW 433MHz ที่เชื่อมต่อกับรีเลย์สองสามตัวที่เปิดหรือปิดไฟสำหรับมอเตอร์ 12V โมดูลเหล่านี้รวมถึงตัวแปลง DC-DC 12V ถึง 5V อยู่ภายในกล่องโครงการสีเทากันน้ำ ในที่สุดก็มีเซ็นเซอร์สวิตช์ประตูที่เชื่อมต่อกับหมุดหนึ่งของไมโครคอนโทรลเลอร์ 32u4 Arduino ที่ตรวจจับได้ว่าประตูเปิดหรือปิดอย่างถูกต้องหรือไม่เมื่อควรจะมี
ทุก ๆ 15 วินาที เครื่องส่งสัญญาณในร่มจะส่ง "เปิด" หรือ "ปิด" จากคำสั่งที่ได้รับ Arduino 32u4 จะเปิดหรือปิดรีเลย์ สำหรับมอเตอร์ที่ฉันเลือกซึ่งเป็นมอเตอร์เสาอากาศรถยนต์รุ่นเก่า ฉันต้องเปิดหรือปิดรีเลย์สองตัวเนื่องจากวิธีการต่อสายไฟของมอเตอร์ โดยทั่วไปมีรีเลย์สำหรับเปิดเครื่องและรีเลย์อีกตัวที่ควบคุมว่ามอเตอร์จะขยายหรือหดกลับหรือไม่
เมื่อได้รับการส่งสัญญาณแบบเปิดหรือปิดแล้ว ตัวรับสัญญาณภายนอกอาคารจะตอบสนองด้วย "sensorOpen" หรือ "sensorClosed" เพื่อระบุสถานะของเซ็นเซอร์สวิตช์ประตู ตามหลักการแล้ว คำสั่ง "open" จะส่งคืนการตอบสนอง "sensorOpen" อย่างไรก็ตาม หากประตูติดขัดหรือมอเตอร์ติดขัด คำสั่งเหล่านี้จะไม่ตรงกัน เมื่อไม่ตรงกัน เครื่องส่งสัญญาณในร่มจะแสดงข้อมูลนั้นและการแจ้งเตือนแบบพุชจะถูกส่งไปยังโทรศัพท์ของคุณ
ขั้นตอนที่ 2: เชื่อมต่อฮาร์ดแวร์ตัวรับกลางแจ้ง
ฮาร์ดแวร์สำหรับตัวรับสัญญาณภายนอกอาคารนั้นต่อสายไม่ยากเกินไป ฉันรวมแผนผังที่น่าสนใจไว้ด้านล่างเพื่อให้ดูหมุดที่ฉันใช้ได้ง่าย
ดังที่ฉันได้กล่าวไว้ข้างต้น มอเตอร์ที่ฉันใช้ต้องการรีเลย์สองตัว ฉันรวมรูปภาพของ pinout วินาทีที่คุณต่อ 12V เข้ากับสายสีแดง มอเตอร์จะหดกลับหากต่อขยายออก หากคุณเชื่อมต่อ 12V กับสายสีแดงและสายสีเขียวพร้อมกัน มอเตอร์จะยืดออก
สวิตช์กกที่ฉันเชื่อมโยงด้านบนควรต่อสายเป็นสวิตช์ปิดปกติ ความแตกต่างระหว่างปกติเปิดและปิดปกติได้อธิบายไว้ในรูปภาพที่ฉันแนบด้านบน เมื่อใช้ซอฟต์แวร์ จะมีตัวต้านทานแบบดึงขึ้นภายในติดอยู่กับพินอินพุตของ 32u4 ดังนั้นสิ่งที่คุณต้องทำคือเชื่อมต่อสวิตช์ประตูกับพินอินพุตและลงกราวด์ด้วย
คุณจะต้องต่อเสาอากาศเข้ากับ Adafruit 32u4 โปรดดูบทแนะนำที่อธิบายอย่างดีของ Adafruit ในขั้นตอนนี้ ฉันเลือกใช้เสาอากาศภายนอกแทนสายไฟเพื่อให้ได้ระยะที่ดีขึ้น
ขั้นตอนที่ 3: เครื่องส่งสัญญาณในร่ม
เครื่องส่งสัญญาณในร่มประกอบด้วย Adafruit Radio FeatherWing 433MHz RFM69HCW ที่ซ้อนกันบน Adafruit Feather HUZZAH พร้อม ESP8266 WiFi โมดูลเหล่านี้เชื่อมต่อกับจอแสดงผลแบบอักขระ 20x4 และปุ่ม RGB สีเงินภายในกล่องโปรเจ็กต์สีดำ
จอแสดงผลมีนาฬิกาซิงค์ NTC ความแรง RSSI ในหน่วย dB (วัดความแรงของสัญญาณวิทยุ) เวลาที่ประตูเล้าไก่จะเปิด เวลาที่ประตูเล้าไก่จะปิด และสถานะปัจจุบันของประตู ปุ่มจะเป็นสีแดงเมื่อปิดประตู และเป็นสีเขียวเมื่อเปิดประตู
หากตัวรับสัญญาณภายนอกขาดพลังงานหรือไม่สามารถส่งสัญญาณ 433MHz ได้ไม่ว่าด้วยเหตุผลใดก็ตาม จอแสดงผลและปุ่ม RGB จะเข้าสู่โหมดข้อผิดพลาดแรกจากสองโหมดที่เป็นไปได้ ในโหมดข้อผิดพลาดแรก จอแสดงผลจะแจ้งว่า "ข้อผิดพลาด! ลองรีสตาร์ทเครื่องรับภายนอก" และปุ่มจะไม่มีสี หากเซ็นเซอร์สวิตช์ประตูตรวจพบว่าประตูปิดหรือเปิดไม่ถูกต้อง จอแสดงผลและปุ่ม RGB จะเข้าสู่โหมดข้อผิดพลาดที่สองจากสองโหมด ในโหมดข้อผิดพลาดที่สอง จอแสดงผลจะแจ้งว่า "ERROR! Door or switch sensor problems" และปุ่มจะไม่มีสี เมื่อปัญหาแก้ไขได้เอง จอแสดงผลและปุ่ม RGB จะกลับสู่สภาวะปกติ คุณสามารถรับการแจ้งเตือนแบบพุชไปยังโทรศัพท์ของคุณได้หากเกิดโหมดข้อผิดพลาดใดโหมดหนึ่งเหล่านี้ (ฉันจะดำเนินการตั้งค่าดังกล่าวในขั้นตอนต่อไป)
ขั้นตอนที่ 4: เชื่อมต่อฮาร์ดแวร์เครื่องส่งสัญญาณในร่ม
หลังจากซ้อน Adafruit Radio FeatherWing 433MHz RFM69HCW ที่ด้านบนของ Adafruit Feather HUZZAH ที่มี ESP8266 WiFi แล้ว เหลือเพียง 2 พินที่ไม่ถูกยึด I2C จะยึด SDA และ SCL นี่คือเหตุผลที่ฉันเลือกใช้วงจรรวม (IC) MCP23017 เป็น IC ที่เจ๋งจริงๆ ที่เชื่อมต่อพินอินพุต/เอาต์พุตเพิ่มเติมได้ถึง 16 พินกับไมโครคอนโทรลเลอร์ใดๆ ผ่าน I2C นอกจากนี้ยังมีไลบรารี่ Adafruit-RGB-LCD-Shield ที่เขียนไว้ล่วงหน้าซึ่งใช้ IC นี้กับการแสดงอักขระที่เขียนในทางเทคนิคสำหรับผลิตภัณฑ์ Adafruit นี้ อย่างไรก็ตาม มันใช้งานได้ดีสำหรับโครงการนี้
แนวคิดในการใช้ MCP23017 กับการแสดงตัวอักษรมาจากคำแนะนำที่เขียนได้ดีมาก กรุณาตรวจสอบออก!
ฉันใช้คำสั่งนั้นและแทนที่จะเชื่อมต่อหลายปุ่มและจอแสดงผล RGB กับ IC ฉันเชื่อมต่อเพียงปุ่มเดียวที่มีไฟ LED RGB อยู่ข้างในและจอแสดงผลขาวดำกับ IC ซึ่งทำให้ฉันสามารถกำหนด PIN 1 ของ IC (โดยทั่วไปใช้สำหรับไฟแบ็คไลท์สีน้ำเงินของจอแสดงผล RGB) เป็นไฟแบ็คไลท์สำหรับจอแสดงผลขาวดำ PIN 28 (โดยทั่วไปจะใช้สำหรับไฟแบ็คไลท์สีเขียวของจอแสดงผล RGB) เป็นไฟ LED สีแดงภายใน ปุ่ม และ PIN 27 (โดยทั่วไปใช้สำหรับไฟแบ็คไลท์สีแดงของจอแสดงผล RGB) เป็นไฟ LED สีเขียวภายในปุ่ม PIN 24 เชื่อมต่อกับด้านหนึ่งของปุ่มและอีกด้านหนึ่งเชื่อมต่อกับกราวด์ คุณสามารถเห็นพินของปุ่มในภาพที่แนบมาด้านบน (ฉันออกจากแคโทดสีน้ำเงินหลุด)
นอกจากการใช้คำสั่งที่ฉันเชื่อมโยงเพื่อช่วยต่อการแสดงผลแล้ว ฉันได้รวมแผนผังที่จะช่วยให้คุณเชื่อมต่อทุกอย่างได้
คุณจะต้องสั้นสามพินที่ด้านบนของ FeatherWing 433MHz RFM69HCW ตามที่อธิบายในบทช่วยสอน Adafruit นี้ คุณจะต้องต่อเสาอากาศเข้ากับ FeatherWing 433MHz RFM69HCW โปรดดูบทแนะนำที่อธิบายอย่างดีของ Adafruit ในขั้นตอนนี้ ฉันเลือกใช้เสาอากาศภายนอกที่มีคอนเน็กเตอร์ SMA ที่ติดตั้งด้านข้างแทนการใช้สายไฟเพื่อให้ได้ระยะที่ดีขึ้น
ขั้นตอนที่ 5: การเชื่อมต่อกับ Adafruit. IO และ IFTTT
อดาฟรุต ไอโอ:
โปรดปฏิบัติตามคำแนะนำในบทช่วยสอนของ Adafruit เพื่อสมัครใช้งาน Adafruit. IO หากคุณไม่มีบัญชี คุณควรอ่านว่าฟีดและแดชบอร์ดคืออะไร
กล่าวอย่างง่าย ๆ แดชบอร์ดเป็นเหมือนส่วนต่อประสานกราฟิกกับผู้ใช้ในขณะที่ฟีดคือสิ่งที่คุณส่งข้อมูลไปเพื่อให้คุณสามารถจัดเก็บบนอินเทอร์เน็ต คุณจะต้องสร้าง 1 แดชบอร์ดและ 4 ฟีด ฉันตั้งชื่อของฉันก่อนที่ฉันจะรู้วิธีสะกดเล้าไก่อย่างถูกต้อง ดังนั้นโปรดยกโทษให้การสะกดผิด หากคุณไม่ต้องการเปลี่ยนชื่อฟีดในโค้ด Arduino ให้ใช้ชื่อเดียวกับที่ฉันทำ
สร้างสี่ฟีดก่อน:
1) "Chicken Coup" สำหรับสวิตช์เปิด/ปิด
2) "Chicken Coup Timer" นี่สำหรับเวลาเปิด
3) "Chicken Coup Timer 2" นี่สำหรับตัวจับเวลาปิด
4) "Chicken Coup Error Message" สำหรับข้อความแสดงข้อผิดพลาด
สร้างแดชบอร์ดถัดไปที่เรียกว่า Chicken Coup และเพิ่ม 4 บล็อกโดยใช้ปุ่ม + สีน้ำเงิน โปรดดูภาพด้านบนสำหรับประเภทของบล็อกที่คุณควรวางและชื่อของบล็อก ตรวจสอบให้แน่ใจว่าได้ตั้งชื่อสถานะสวิตช์ว่า "เปิด" และ "ปิด"
IFTTT:
ส่วน IFTTT ของโครงการนี้เพิ่มความสามารถในการกดปุ่มบนโทรศัพท์ของคุณและส่งข้อความเพื่อเปิดหรือปิดประตูเล้าไก่ นอกจากนี้ยังอนุญาตให้แอป IFTTT ส่งการแจ้งเตือนแบบพุชหากมีสิ่งใดถูกเผยแพร่ไปยังฟีดข้อความแสดงข้อผิดพลาด Chicken Coup หากคุณไม่ต้องการความสามารถเหล่านี้ คุณสามารถข้ามส่วนนี้ได้
ขั้นแรก ตั้งค่าบัญชี IFTTT หากคุณยังไม่มี หากคุณต้องการใช้แอปเพล็ตที่สร้างไว้ล่วงหน้าที่ฉันสร้างขึ้น เพียงไปที่บัญชีของฉันแล้วเปิดแอปเพล็ตที่คุณต้องการ ไม่เช่นนั้น คุณจะต้องสร้างข้อมูลของคุณเอง และสมัครรับข้อมูลหรือเผยแพร่ฟีด adafruit ที่คุณสร้างไว้ด้านบน
ขั้นตอนที่ 6: การอัปโหลดรหัส & การแก้ไข WiFi SSID และรหัสผ่าน
คุณจะต้องผ่านหน้านี้ของบทช่วยสอน Adafruit เพื่อให้สามารถอัปโหลดรหัสไปยังเครื่องส่งสัญญาณในอาคารได้
คุณจะต้องผ่านหน้านี้ของบทช่วยสอน Adafruit เพื่อให้สามารถอัปโหลดโค้ดไปยังเครื่องรับภายนอกได้
คุณจะต้องติดตั้งไลบรารี RFM69, ไลบรารี Adafruit_RGBLCDShield, ไลบรารีนาฬิกา NTC ที่เรียกว่า simpleDSTadjust และไลบรารีทิกเกอร์ คุณสามารถหาบทแนะนำเกี่ยวกับวิธีการทำได้ที่นี่
เปิด Arduino IDE และอัปโหลดรหัส "Outdoor_Receiver.ino" ไปยัง Arduino 32u4 กลางแจ้งผ่านสาย USB
จากนั้น เปิด "Indoor_Transmitter.ino" เปิดแท็บ config.h แล้วป้อนชื่อ WiFi (SSID) และรหัสผ่านภายในเครื่องหมายคำพูด จากนั้น รับชื่อผู้ใช้ Adafruit. IO และรหัส IO โดยทำตามหน้าบทช่วยสอนนี้และป้อนลงในแท็บ config.h
หากคุณเปลี่ยนชื่อฟีด Adafruit IO คุณจะต้องแก้ไขโค้ดในแท็บหลัก Indoor_Transmitter แก้ไขสิ่งต่อไปนี้:
AdafruitIO_Feed *toggleSwitch = io.feed("ไก่รัฐประหาร");
AdafruitIO_Feed *timer = io.feed ("ตัวจับเวลาการทำรัฐประหารไก่");
AdafruitIO_Feed *timer2 = io.feed("Chicken Coup Timer 2");
AdafruitIO_Feed *error = io.feed ("ข้อความแสดงข้อผิดพลาดของ Chicken Coup");
นั่นคือทั้งหมดที่คุณต้องทำ! หากคุณต้องการทำความเข้าใจเพิ่มเติมว่าร่างทั้งสองทำงานอย่างไร ฉันแสดงความเห็นเกี่ยวกับโค้ดนี้ โปรดแจ้งให้เราทราบหากคุณมีคำถามใดๆ ขอให้โชคดี!
แนะนำ:
IoT APIS V2 - ระบบชลประทานพืชอัตโนมัติที่เปิดใช้งาน IoT แบบอัตโนมัติ: 17 ขั้นตอน (พร้อมรูปภาพ)
IoT APIS V2 - ระบบชลประทานพืชอัตโนมัติที่เปิดใช้งาน IoT แบบอัตโนมัติ: โครงการนี้เป็นวิวัฒนาการของคำสั่งก่อนหน้าของฉัน: APIS - ระบบชลประทานพืชอัตโนมัติฉันใช้ APIS มาเกือบปีแล้วและต้องการปรับปรุงจากการออกแบบก่อนหน้านี้: ความสามารถในการ ตรวจสอบโรงงานจากระยะไกล นี่คือวิธีที่
โมดูลพลังงาน IoT: การเพิ่มคุณสมบัติการวัดพลังงาน IoT ให้กับตัวควบคุมการชาร์จพลังงานแสงอาทิตย์ของฉัน: 19 ขั้นตอน (พร้อมรูปภาพ)
โมดูลพลังงาน IoT: การเพิ่มคุณสมบัติการวัดพลังงาน IoT ให้กับตัวควบคุมการชาร์จพลังงานแสงอาทิตย์ของฉัน: สวัสดีทุกคน ฉันหวังว่าพวกคุณทุกคนจะยอดเยี่ยม! ในคำแนะนำนี้ฉันจะแสดงให้คุณเห็นว่าฉันสร้างโมดูลการวัดพลังงาน IoT ที่คำนวณปริมาณพลังงานที่สร้างโดยแผงโซลาร์เซลล์ของฉันได้อย่างไรซึ่งถูกใช้โดยตัวควบคุมการชาร์จพลังงานแสงอาทิตย์ของฉัน t
ระบบตรวจสอบโรงงาน IoT (ด้วยแพลตฟอร์ม IBM IoT): 11 ขั้นตอน (พร้อมรูปภาพ)
ระบบตรวจสอบโรงงาน IoT (ด้วยแพลตฟอร์ม IBM IoT): ภาพรวม Plant Monitoring System (PMS) เป็นแอปพลิเคชันที่สร้างขึ้นโดยคำนึงถึงบุคคลที่อยู่ในชนชั้นแรงงานโดยคำนึงถึงนิ้วหัวแม่มือสีเขียว ทุกวันนี้ คนทำงานมีงานยุ่งมากกว่าที่เคย ความก้าวหน้าในอาชีพการงานและการจัดการการเงินของพวกเขา
IoT เมนส์คอนโทรลเลอร์ ตอนที่ 9: IoT, ระบบอัตโนมัติภายในบ้าน: 10 ขั้นตอน (พร้อมรูปภาพ)
IoT เมนส์คอนโทรลเลอร์ ส่วนที่ 9: IoT ระบบอัตโนมัติในบ้าน: ข้อจำกัดความรับผิดชอบ โปรดอ่านก่อน รายละเอียดของโครงการนี้อธิบายได้โดยใช้ไฟหลัก (ในกรณีนี้คือ UK 240VAC RMS) ในขณะที่ใช้ความระมัดระวังทุกประการเพื่อใช้หลักปฏิบัติที่ปลอดภัยและหลักการออกแบบที่ดี มีความเสี่ยงที่อาจถึงแก่ชีวิตได้เสมอ เลือก
IOT Smoke Detector: อัปเดตเครื่องตรวจจับควันไฟที่มีอยู่ด้วย IOT: 6 ขั้นตอน (พร้อมรูปภาพ)
IOT Smoke Detector: Update Existing Smoke Detector With IOT: List of contributors,Inventor:Tan Siew Chin, Tan Yit Peng, Tan Wee Heng Supervisor: Dr Chia Kim Seng ภาควิชาวิศวกรรมเมคคาทรอนิกส์และหุ่นยนต์ คณะวิศวกรรมไฟฟ้าและอิเล็กทรอนิกส์ Universiti Tun Hussein Onn Malaysia.Distribut