ในโพสต์นี้เราจะสร้างตู้ฟักไข่โดยใช้ Arduino ซึ่งสามารถควบคุมอุณหภูมิและความชื้นได้เอง โครงการนี้แนะนำโดยคุณอิมรานยูซาฟซึ่งเป็นผู้อ่านเว็บไซต์นี้ตัวยง
บทนำ
โครงการนี้ได้รับการออกแบบตามข้อเสนอแนะของคุณอิมราน แต่มีการปรับเปลี่ยนเพิ่มเติมบางอย่างเพื่อให้โครงการนี้เหมาะสำหรับทุกคน
คุณอาจใช้ความคิดสร้างสรรค์และจินตนาการเพื่อทำโครงงานนี้ให้ลุล่วง
มาทำความเข้าใจกันว่าตู้ฟักไข่คืออะไร? (สำหรับ noobs)
Incubator เป็นอุปกรณ์ที่ปิดล้อมซึ่งสภาพแวดล้อมภายในถูกแยกออกจากสภาพแวดล้อมโดยรอบ
เป็นการสร้างสภาพแวดล้อมที่เอื้ออำนวยสำหรับชิ้นงานที่อยู่ภายใต้การดูแล ตัวอย่างเช่นตู้อบที่ใช้ในการเพาะเลี้ยงจุลินทรีย์ในห้องปฏิบัติการตู้อบจะถูกใช้ในโรงพยาบาลเพื่อดูแลทารกที่คลอดก่อนกำหนด
ประเภทของตู้ฟักไข่ที่เรากำลังจะสร้างในโครงการนี้มีไว้สำหรับฟักไข่ไก่หรือไข่นกอื่น ๆ
ตู้อบทั้งหมดมีสิ่งหนึ่งที่เหมือนกันคือควบคุมอุณหภูมิความชื้นและจัดหาออกซิเจนให้เพียงพอ
คุณสามารถตั้งอุณหภูมิและความชื้นได้โดยกดปุ่มที่ให้มาและยังแสดงอุณหภูมิและความชื้นภายในแบบเรียลไทม์ เมื่อตั้งค่าพารามิเตอร์ทั้งสองแล้วจะควบคุมองค์ประกอบความร้อน (หลอดไฟ) และเครื่องทำไอระเหย (ความชื้น) โดยอัตโนมัติเพื่อให้ตรงตามจุดที่กำหนด
ตอนนี้เรามาทำความเข้าใจกับอุปกรณ์และการออกแบบของตู้ฟักไข่
โครงเครื่องของตู้อบอาจเป็นกล่องโฟม / เทอร์โมคอลหรือแก้วอะคริลิกซึ่งสามารถเป็นฉนวนกันความร้อนได้ดี ฉันอยากจะแนะนำกล่องสไตโรโฟม / เทอร์โมคอลซึ่งจะใช้งานได้ง่ายขึ้น
การออกแบบอุปกรณ์:
หลอดไฟ 25 วัตต์ทำหน้าที่เป็นแหล่งความร้อนวัตต์ที่สูงขึ้นอาจทำร้ายไข่ในภาชนะขนาดเล็ก เครื่องทำไอระเหยมีความชื้นคุณสามารถใช้เครื่องทำไอระเหยที่คล้ายกันดังที่แสดงด้านล่าง
ผลิตไอน้ำหนาซึ่งจะไหลเข้าสู่ตู้อบ ไอน้ำสามารถเคลื่อนย้ายผ่านท่อที่ยืดหยุ่นได้
ท่อยืดหยุ่นอาจมีลักษณะคล้ายกันดังแสดงด้านล่าง:
ไอน้ำอาจไหลเข้าจากด้านบนของกล่องสไตโรโฟม / เทอร์โมคัลตามที่แสดงในการออกแบบอุปกรณ์เพื่อให้ความร้อนส่วนเกินหลุดออกไปแม้จะมีรูควบคุมความชื้นและไม่ทำร้ายไข่
มีกระบอกบรรจุไข่ที่มีรูหลายรูรอบ ๆ เชื่อมต่อกับเซอร์โวมอเตอร์ เซอร์โวมอเตอร์จะหมุนกระบอกสูบ 180 องศาทุกๆ 8 ชั่วโมงจึงหมุนไข่
การหมุนของไข่จะป้องกันไม่ให้ตัวอ่อนติดกับเยื่อหุ้มเปลือกและยังสัมผัสกับวัสดุอาหารในไข่โดยเฉพาะอย่างยิ่งในช่วงแรกของการฟักตัว
กระบอกหมุนต้องมีหลายรูเพื่อให้มีการไหลเวียนของอากาศที่เหมาะสมและกระบอกสูบต้องกลวงทั้งสองด้าน
กระบอกหมุนอาจเป็นท่อพีวีซีหรือกระบอกกระดาษแข็ง
วางไม้ไอศครีมที่ปลายทั้งสองข้างของกระบอกกลวงเพื่อให้แท่งไอศกรีมทำครึ่งวงกลมสองวงเท่ากัน วางแขนของเซอร์โวมอเตอร์ไว้ตรงกลางแท่งไอศกรีม อีกด้านหนึ่งเจาะรูแล้ววางแคะฟันให้แน่น
ใส่ตัวเลือกฟันเข้าไปในกล่องและวางเซอร์โวที่ผนังด้านตรงข้ามภายในกล่อง กระบอกสูบต้องอยู่ในแนวนอนที่สุดเท่าที่จะเป็นไปได้ตอนนี้กระบอกสูบสามารถหมุนได้เมื่อเซอร์โวมอเตอร์หมุน
และใช่ใช้ความคิดสร้างสรรค์ของคุณเพื่อทำให้สิ่งต่างๆดีขึ้น
หากคุณต้องการรองรับไข่มากขึ้นให้ใช้กระบอกสูบดังกล่าวมากขึ้นและสามารถเชื่อมต่อเซอร์โวมอเตอร์หลายตัวบนขาสายควบคุมเดียวกันได้
รูควบคุมความชื้นทำได้โดยการจิ้มดินสอผ่านกล่องสไตโรโฟม / เทอร์โมคอลที่ด้านบน หากคุณทำรูที่ไม่จำเป็นจำนวนมากหรือหากความชื้นหรืออุณหภูมิสูงขึ้นเร็วเกินไปคุณอาจปิดรูบางส่วนโดยใช้เทปไฟฟ้าหรือเทปพันสายไฟ
เซ็นเซอร์ DHT11 เป็นหัวใจหลักของโครงการซึ่งอาจวางไว้ตรงกลางของตู้อบทั้งสี่ด้าน (ด้านใน) แต่อยู่ห่างจากหลอดไฟหรือท่อทางเข้าของความชื้น
สามารถวางพัดลมซีพียูได้ดังแสดงในการออกแบบอุปกรณ์สำหรับการไหลเวียนของอากาศ เพื่อการไหลเวียนของอากาศที่เหมาะสมให้ใช้อย่างน้อยสอง พัดลมดันอากาศไปในทิศทางตรงกันข้าม ตัวอย่างเช่น: พัดลม CPU ตัวหนึ่งดันลงด้านล่างและพัดลม CPU อีกตัวดันขึ้นด้านบน
พัดลม CPU ส่วนใหญ่ทำงานที่ 12V แต่ที่ 9V ใช้งานได้ดี
นั่นคือทั้งหมดที่เกี่ยวกับอุปกรณ์ ตอนนี้มาคุยกันในวงจร
แผนผัง Diagarm:
วงจรข้างต้นใช้สำหรับการเชื่อมต่อ Arduino กับ LCD ปรับโพเทนชิออมิเตอร์ 10K เพื่อปรับความคมชัดของ LCD
Arduino เป็นสมองของโครงการ มีปุ่มกด 3 ปุ่มสำหรับตั้งค่าอุณหภูมิและความชื้น ขา A5 ควบคุมรีเลย์สำหรับเครื่องพ่นไอน้ำและ A4 สำหรับหลอดไฟ เซ็นเซอร์ DHT11 เชื่อมต่อกับพิน A0 หมุด A1, A2 และ A3 ใช้สำหรับปุ่มกด
ขา # 7 (พินที่ไม่ใช่ PWM) เชื่อมต่อกับสายควบคุมของเซอร์โวมอเตอร์เซอร์โวมอเตอร์หลายตัวสามารถเชื่อมต่อกับพิน # 7 ได้ มีความเข้าใจผิดว่าเซอร์โวมอเตอร์ใช้งานได้เฉพาะกับหมุด PWM ของ Arduino ซึ่งไม่เป็นความจริง ทำงานอย่างมีความสุขกับพินที่ไม่ใช่ PWM ด้วย
เชื่อมต่อไดโอด 1N4007 กับขดลวดรีเลย์แบบไบแอสย้อนกลับเพื่อกำจัดแรงดันไฟฟ้าสูงขณะเปิดและปิด
แหล่งจ่ายไฟ:
แหล่งจ่ายไฟข้างต้นสามารถให้แหล่งจ่ายไฟ 9 V และ 5 V สำหรับรีเลย์ Arduino, Servo motor (SG90) และพัดลม CPU แจ็ค DC มีไว้สำหรับเปิดเครื่อง Arduino
ใช้แผงระบายความร้อนสำหรับตัวควบคุมแรงดันไฟฟ้า
นั่นสรุปแหล่งจ่ายไฟ
ดาวน์โหลดไลบรารีเซ็นเซอร์ DHT:
https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip
รหัสโปรแกรม:
//------------------Program Developed by R.GIRISH-------------------//
#include
#include
#include
#define DHT11 A0
const int ok = A1
const int UP = A2
const int DOWN = A3
const int bulb = A4
const int vap = A5
const int rs = 12
const int en = 11
const int d4 = 5
const int d5 = 4
const int d6 = 3
const int d7 = 2
int ack = 0
int pos = 0
int sec = 0
int Min = 0
int hrs = 0
int T_threshold = 25
int H_threshold = 35
int SET = 0
int Direction = 0
boolean T_condition = true
boolean H_condition = true
LiquidCrystal lcd(rs, en, d4, d5, d6, d7)
Servo motor
dht DHT
void setup()
{
pinMode(ok, INPUT)
pinMode(UP, INPUT)
pinMode(DOWN, INPUT)
pinMode(bulb, OUTPUT)
pinMode(vap, OUTPUT)
digitalWrite(bulb, LOW)
digitalWrite(vap, LOW)
digitalWrite(ok, HIGH)
digitalWrite(UP, HIGH)
digitalWrite(DOWN, HIGH)
motor.attach(7)
motor.write(pos)
lcd.begin(16, 2)
Serial.begin(9600)
lcd.setCursor(5, 0)
lcd.print('Digital')
lcd.setCursor(4, 1)
lcd.print('Incubator')
delay(1500)
}
void loop()
{
if (SET == 0)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Temperature:')
lcd.setCursor(0, 1)
lcd.print(T_threshold)
lcd.print(' *C')
while (T_condition)
{
if (digitalRead(UP) == LOW)
{
T_threshold = T_threshold + 1
lcd.setCursor(0, 1)
lcd.print(T_threshold)
lcd.print(' *C')
delay(200)
}
if (digitalRead(DOWN) == LOW)
{
T_threshold = T_threshold - 1
lcd.setCursor(0, 1)
lcd.print(T_threshold)
lcd.print(' *C')
delay(200)
}
if (digitalRead(ok) == LOW)
{
delay(200)
T_condition = false
}
}
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Set Humidity:')
lcd.setCursor(0, 1)
lcd.print(H_threshold)
lcd.print('%')
delay(100)
while (H_condition)
{
if (digitalRead(UP) == LOW)
{
H_threshold = H_threshold + 1
lcd.setCursor(0, 1)
lcd.print(H_threshold)
lcd.print('%')
delay(100)
}
if (digitalRead(DOWN) == LOW)
{
H_threshold = H_threshold - 1
lcd.setCursor(0, 1)
lcd.print(H_threshold)
lcd.print('%')
delay(200)
}
if (digitalRead(ok) == LOW)
{
delay(100)
H_condition = false
}
}
SET = 1
}
ack = 0
int chk = DHT.read11(DHT11)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack = 1
break
}
if (ack == 0)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Temp:')
lcd.print(DHT.temperature)
lcd.setCursor(0, 1)
lcd.print('Humidity:')
lcd.print(DHT.humidity)
if (DHT.temperature >= T_threshold)
{
delay(3000)
if (DHT.temperature >= T_threshold)
{
digitalWrite(bulb, LOW)
}
}
if (DHT.humidity >= H_threshold)
{
delay(3000)
if (DHT.humidity >= H_threshold)
{
digitalWrite(vap, LOW)
}
}
if (DHT.temperature
delay(3000)
if (DHT.temperature
digitalWrite(bulb, HIGH)
}
}
if (DHT.humidity
delay(3000)
if (DHT.humidity
digitalWrite(vap, HIGH)
}
}
sec = sec + 1
if (sec == 60)
{
sec = 0
Min = Min + 1
}
if (Min == 60)
{
Min = 0
hrs = hrs + 1
}
if (hrs == 8 && Min == 0 && sec == 0)
{
for (pos = 0 pos <= 180 pos += 1)
{
motor.write(pos)
delay(25)
}
}
if (hrs == 16 && Min == 0 && sec == 0)
{
hrs = 0
for (pos = 180 pos >= 0 pos -= 1)
{
motor.write(pos)
delay(25)
}
}
}
if (ack == 1)
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('No Sensor data.')
lcd.setCursor(0, 1)
lcd.print('System Halted.')
digitalWrite(bulb, LOW)
digitalWrite(vap, LOW)
}
delay(1000)
}
//------------------Program Developed by R.GIRISH-------------------//
วิธีใช้งานวงจร:
·เมื่อติดตั้งฮาร์ดแวร์และอุปกรณ์เสร็จสมบูรณ์แล้วให้เปิดวงจร
·หน้าจอจะแสดง 'ตั้งอุณหภูมิ' กดปุ่มขึ้นหรือลงเพื่อให้ได้อุณหภูมิที่ต้องการแล้วกด 'ปุ่มตั้งค่า'
·ตอนนี้หน้าจอจะแสดง 'ตั้งค่าความชื้น' ให้กดปุ่มขึ้นหรือลงเพื่อรับความชื้นที่ต้องการแล้วกด 'ปุ่มตั้งค่า'
·เริ่มการทำงานของตู้ฟักไข่
โปรดดูอินเทอร์เน็ตหรือรับคำแนะนำจากผู้เชี่ยวชาญสำหรับอุณหภูมิและระดับความชื้นสำหรับไข่
หากคุณมีคำถามเฉพาะเกี่ยวกับวงจรควบคุมอุณหภูมิและความชื้นของตู้อบอัตโนมัติ Arduino อย่าลังเลที่จะแสดงความคิดเห็นในส่วนความคิดเห็น คุณอาจได้รับการตอบกลับอย่างรวดเร็ว
คู่ของ: ตัวควบคุมปั๊มที่ใช้ SMS พร้อมการปิดเครื่องอัตโนมัติแบบแห้ง ถัดไป: ระบบแจ้งเตือนน้ำประปาด้วย SMS