ออกตัวก่อนว่า ในการทำ PID control แบบนี้ อาจจะไม่คุ้มค่าคุ้มราคา เมื่อเทียบกับ PID control ที่มีขายทั่วไป แต่ถ้าคุณมีพอจะมีพื้นฐานในการเขียนโปรแกรมอยู่บ้างแล้วนำงานชิ้นนี้ไปดัดแปลง คุณจะได้ PID control เพิ่มอีกหลายตัว จากอุปกรณ์ชุดนี้แค่ชุดเดียว ไม่ง่ายแต่ก็ไม่ยากเกินไปสำหรับคนที่ต้องการจะศึกษาครับ
ในงานชุดนี้เราจะทำ PID control ใช้ร่วมกับ sensor SHT15 ที่ใช้วัดได้ทั้งอุณหภูมิและความชื้นสัมพัทธ์ ในส่วน sensor ผู้อ่านสามารถเปลี่ยนเป็น sensor ใดๆ ก็ได้ แต่ต้องทราบวิธีต่อใช้งานและต้องแก้ code เพื่อใช้ร่วมกับ sensor เบอร์อื่นๆ แต่ในบทความนี้จะกล่าวแค่วิธีการต่อกับ SHT15 เท่านั้น ไปดูกันเลยว่าเราต้องใช้อุปกรณ์อะไรบ้าง
1. สาย usb สำหรับบอร์ด Arduino mega 2560 r3
2. บอร์ด Arduino mega 2560 r3
3. LCD keypad shield V1.1
4. SSR (Solid State Relay)
5. SHT15
6. แผ่น PCB แบบไข่ปลา (ตั้งชื่อเอง ไม่รู้เรียกกันว่าอะไร)
7. Connector ขาว 4 pin
8. Pin header single row ต้องการ 6 pin (รูปอยู่ด้านล่าง)
เครื่องมือที่ต้องใช้
1. Computer
2. หัวแร้ง
3. ตะกั่ว
เมื่อพร้อมแล้วก็ไปโหลดโปรแกรม Arduino IDE ใน www.arduino.org เมื่อดาวน์โหลดและทำการติดตั้งเรียบร้อย ให้ทำการติดตั้ง library อีก 2 ตัวดังนี้
1. Sensirion สำหรับ การใช้อ่านค่าจาก SHT15 ดาวน์โหลดได้ที่ http://playground.arduino.cc/Code/Sensirion เมื่อดาวน์โหลดมาให้ทำการติดตั้ง และตัวนี้พิเศษนิดหน่อยหากตัวที่ดาวน์โหลดเป็นเวอร์ชั่น Sensirion_10Dec2010.zip
ต้องทำการแก้ไขในไฟล์ Sensirion.cpp 3 ขั้นตอน ดังนี้
**ปกติไฟล์ Sensirion.cpp จะอยู่ที่ \Documents\Arduino\libraries\Sensirion
2. PID ดาวน์โหลดไฟล์ได้ที่ http://playground.arduino.cc/Code/PIDLibrary ตัวนี้เมื่อติดตั้งแล้วก็พร้อมใช้เลย
สำหรับวิธีการติดตั้ง library ให้ทำการค้นหาใน internet ได้เองเลยมีหลายเว็บไซต์ได้ทำการอธิบายไว้อย่างละเอียดแล้ว ในบทความนี้ขอข้ามขั้นตอนนี้ไปเลย
เมื่อ Arduino IDE ได้ทำการติดตั้ง library ไว้เรียบร้อยพร้อมใช้งานแล้วให้ดาวน์โหลดตัวโปรแกรมที่ทาง Hughed ได้ทำแจก โดยโปรแกรมที่เขียนตัวนี้มีชื่อว่า PID_For_free.ino โดยไม่สงวนลิขสิทธิ์ใดๆ ทั้งสิ้น ใครจะปรับแต่งอย่างไร อาจจะดีกว่าที่ทาง Hughed เขียนก็ไม่ผิดกฎแต่ประการใดใช้กันได้เต็มที่เลยครับ ดาวน์โหลดที่นี้
ภาพด้านบนนี้แสดงโครงสร้างของงานชิ้นนี้ ในส่วน heater ผู้อ่านอาจจะเปลี่ยนอุปกรณ์อย่างอื่นได้ เช่นหากต้องการใช้ PID ชุดนี้ไปเพิ่มความชื้นให้โรงเรือน ก็อาจจะเปลี่ยนเป็น ปั้มน้ำของหัวพ่นหมอก ก็ได้
ขั้นตอนต่อไปให้ ประกอบ Mega 2560 r3 กับ lcd keypad shield เข้าด้วยกันจะได้เหมือนในภาพต่อไปนี้
เมื่อประกอบได้ตามภาพแล้วก็สามารถ burn โปรแกรมที่ทาง Hughed แจกไปได้เลย เมื่อ burn โปรแกรมลงไปแล้วก็จะได้ดังภาพต่อไปนี้
เมื่อได้ดังภาพด้านบนแล้วก็เข้าสู่ขั้นตอนการประกอบ sensor และ SSR (Solid State Relay) ในขั้นตอนนี้เราจะทำ connector ของ sensor, ssr เข้ากับบอร์ด mega ไม่รู้จะอธิบายอย่างไร ทำตามภาพเลยละกัน ไม่ยากครับ
หางยาวของ pcb ที่ไม่ได้ใช้นั้นตัดทิ้งก็ได้นะครับ เมื่อประกอบเสร็จแล้วก็ต่อเข้ากับ sensor , ssr และ mega 2560 เป็นอันพร้อมใช้ ต่อไปเราก็จะตั้งค่า pid โดยในทางทฤษฏีและการทำงานจะไม่ขอกล่าวถึงตามที่เคยแจ้งไว้ในเพจ แต่จะสอนการตั้งค่า parameter หลักๆ 4 ตัว
ภาพอุปกรณ์ที่ต้องใช้ในการทำ PID ควบคุม Relay แบบ DIY |
2. บอร์ด Arduino mega 2560 r3
3. LCD keypad shield V1.1
4. SSR (Solid State Relay)
5. SHT15
6. แผ่น PCB แบบไข่ปลา (ตั้งชื่อเอง ไม่รู้เรียกกันว่าอะไร)
7. Connector ขาว 4 pin
8. Pin header single row ต้องการ 6 pin (รูปอยู่ด้านล่าง)
ภาพ pin header single row |
1. Computer
2. หัวแร้ง
3. ตะกั่ว
เมื่อพร้อมแล้วก็ไปโหลดโปรแกรม Arduino IDE ใน www.arduino.org เมื่อดาวน์โหลดและทำการติดตั้งเรียบร้อย ให้ทำการติดตั้ง library อีก 2 ตัวดังนี้
1. Sensirion สำหรับ การใช้อ่านค่าจาก SHT15 ดาวน์โหลดได้ที่ http://playground.arduino.cc/Code/Sensirion เมื่อดาวน์โหลดมาให้ทำการติดตั้ง และตัวนี้พิเศษนิดหน่อยหากตัวที่ดาวน์โหลดเป็นเวอร์ชั่น Sensirion_10Dec2010.zip
ต้องทำการแก้ไขในไฟล์ Sensirion.cpp 3 ขั้นตอน ดังนี้
1. เพิ่ม // หน้าบรรทัดที่มีข้อความว่า #include "WConstants.h"
2. เพิ่มบรรทัดที่มีข้อความดังนี้ #include "Arduino.h" หลังจากส่วนของ extern "C" { ... }" โดยต้องเพิ่มก่อนบรรทัด #include “Sensirion.h”
3. Save ไฟล์ Sensirion.cpp เป็นอันเรียบร้อยสำหรับ library นี้
2. เพิ่มบรรทัดที่มีข้อความดังนี้ #include "Arduino.h" หลังจากส่วนของ extern "C" { ... }" โดยต้องเพิ่มก่อนบรรทัด #include “Sensirion.h”
3. Save ไฟล์ Sensirion.cpp เป็นอันเรียบร้อยสำหรับ library นี้
**ปกติไฟล์ Sensirion.cpp จะอยู่ที่ \Documents\Arduino\libraries\Sensirion
2. PID ดาวน์โหลดไฟล์ได้ที่ http://playground.arduino.cc/Code/PIDLibrary ตัวนี้เมื่อติดตั้งแล้วก็พร้อมใช้เลย
สำหรับวิธีการติดตั้ง library ให้ทำการค้นหาใน internet ได้เองเลยมีหลายเว็บไซต์ได้ทำการอธิบายไว้อย่างละเอียดแล้ว ในบทความนี้ขอข้ามขั้นตอนนี้ไปเลย
เมื่อ Arduino IDE ได้ทำการติดตั้ง library ไว้เรียบร้อยพร้อมใช้งานแล้วให้ดาวน์โหลดตัวโปรแกรมที่ทาง Hughed ได้ทำแจก โดยโปรแกรมที่เขียนตัวนี้มีชื่อว่า PID_For_free.ino โดยไม่สงวนลิขสิทธิ์ใดๆ ทั้งสิ้น ใครจะปรับแต่งอย่างไร อาจจะดีกว่าที่ทาง Hughed เขียนก็ไม่ผิดกฎแต่ประการใดใช้กันได้เต็มที่เลยครับ ดาวน์โหลดที่นี้
ภาพบล็อคไดอะแกรม |
ภาพด้านบนนี้แสดงโครงสร้างของงานชิ้นนี้ ในส่วน heater ผู้อ่านอาจจะเปลี่ยนอุปกรณ์อย่างอื่นได้ เช่นหากต้องการใช้ PID ชุดนี้ไปเพิ่มความชื้นให้โรงเรือน ก็อาจจะเปลี่ยนเป็น ปั้มน้ำของหัวพ่นหมอก ก็ได้
ขั้นตอนต่อไปให้ ประกอบ Mega 2560 r3 กับ lcd keypad shield เข้าด้วยกันจะได้เหมือนในภาพต่อไปนี้
ภาพการประกอบ LCD Keypad Shield V1.1 เข้ากับ Arduino Mega 2560 r3 |
ภาพแสดงหน้าจอ LCD หลังจาก burn โปรแกรม PID_for_free.ino ลงไปแล้ว |
ภาพแสดงมุมต่าง ๆ ของ connector |
ภาพแสดงมุมต่าง ๆ ของ connector |
ภาพแสดงมุมต่าง ๆ ของ connector |
ภาพแสดงมุมต่าง ๆ ของ connector |
1. Status ; มี 2 ค่าที่ตั้งได้ คือ
Enable เปิดการใช้งานการควบคุม Relay
Enable เปิดการใช้งานการควบคุม Relay
Disable ปิดการใช้งานการควบคุม Relay
ภาพแสดงเมนู Status Relay |
2. Input ; เลือกว่าต้องการควบคุม ค่าใดระหว่าง by temp(อุณหภูมิ) หรือ by humid(ความชื้นสัมพัทธ์)
ภาพแสดงเมนู Select Input |
direct กล่าวคือ หากอุปกรณ์ที่ควบคุม เมื่อทำงานแล้วทำให้ input มีค่าเพิ่ม เช่น heater(อุณหภูมิเพิ่ม) , เครื่องเพิ่มความชื้น(ความชื้นเพิ่ม)
reverse กล่าวคือ หากอุปกรณ์ที่ควบคุม เมื่อทำงานแล้วทำให้ input มีค่าลดลง เช่น แอร์(อุณหภูมิลดลง) , ระบบ EVAP(อุณหภูมิลดลงถ้าเลือกควบคุมอุณหภูมิ)
reverse กล่าวคือ หากอุปกรณ์ที่ควบคุม เมื่อทำงานแล้วทำให้ input มีค่าลดลง เช่น แอร์(อุณหภูมิลดลง) , ระบบ EVAP(อุณหภูมิลดลงถ้าเลือกควบคุมอุณหภูมิ)
ภาพแสดงเมนู Direction |
ภาพ Setup Mode เข้าได้โดยกดปุ่ม Select ค้างไว้ 3 วินาที ในขณะเครื่องทำงาน |
กดปุ่ม select อีกครั้งเพื่อเป็นการตกลง เข้าไปตั้งค่า 3 ค่า คือ status, input, setpoint และ direction เมื่อตั้งค่าเสร็จแล้วกด reset 1 ครั้ง เพื่อเป็นการเริ่มโปรแกรมใหม่เป็นอันเรียบร้อย
ขอโค๊ดมาศึกษาต่อได้ไม่คับ
ตอบลบทั้งหมด แจกอยู่ในบทความอยู่แล้วนะครับ
ลบแล้วเชื่อมต่อกับแอปอย่างไงครับ
ตอบลบตัวที่แจกฟรีโค้ดฟรีตัวนี้ไม่สามารถเชื่อมต่อแอปได้นะครับ ส่วนตัวที่เป็นข่าวอยู่ในระหว่างการจัดเตรียมโครงการเพื่อให้ได้ใช้งานกันครับ
ลบมีขายสำเร็จเลยมั๊ยล่ะ ทำไม่เป็น 0818331870,0655039544
ตอบลบตัวนี้ไม่ได้ทำขายครับเนื่องจากอยากให้ได้ใช้งานกันในราคาไม่แพงในส่วนของ PID Control ครับผม ส่วนตัวที่เป็นข่าวนั้นอยู่ในระหว่างการจัดเตรียมโครงการเพื่อให้ได้ใช้งานกันครับ ถ้ามีอะไรคืบหน้าจะแจ้งให้ทราบที่หน้าเพจของเรานะครับ
ลบความคิดเห็นนี้ถูกผู้เขียนลบ
ตอบลบ
ลบอยากทราบว่าหากต้องการควบคุม ได้ 2 Relay ทั้ง อุณหภูมิ และความชื้น ต้องทำอย่างไรบ้างครับ
ปล. ตอนนี้กำลังทำโรงเรือนเพาะเห็ดอยู่นะครับ มาเจอบทความนี้พอดีเลย ......ขอบคุณมากครับผม
ต้องปรับแก้โค๊ดให้มี 2 channel ครับ code ภายในลองศึกษาเพิ่มเติมนิดเดียวครับ admin เขียนไว้ให้ปรับแก้ได้ง่ายอยู่แล้วครับผม
ลบสงสัยว่าการความคุมแบบ pid คุมความชื้นได้อยู่ใช่ไหมครับ?? เห็นแต่ความแบบpidกับอุณหภูมิ??
ตอบลบสามารถควบคุมความชื้นได้ครับ ทั้งนี้ขึ้นอยู่กับแบบโรงเรือน และเราต้องเปลี่ยนในส่วนของ sensor และโค๊ดของ sensor ด้วยครับ แต่ตัวที่ขายอยู่ตามท้องตลาดทั่วไปก็มีนะครับ ที่สามารถควบคุม ได้ทั้งอุณหภูมิและความชื้นครับ
ลบส่วนตัวที่เป็นข่าวนั้นอยู่ในระหว่างการจัดเตรียมโครงการเพื่อให้ได้ใช้งานกันครับ
ตอบลบขอ link ด้วยคับ