สารบัญ:
- ขั้นตอนที่ 1: รวบรวมส่วนประกอบ
- ขั้นตอนที่ 2: แผนผังแบบเต็ม
- ขั้นตอนที่ 3: รับการตั้งค่าที่ถูกต้อง
- ขั้นตอนที่ 4: เชื่อมต่อ DHT-22
- ขั้นตอนที่ 5: การเชื่อมต่อจอแสดงผล OLED
- ขั้นตอนที่ 6: การตรวจสอบความชื้นในดิน
- ขั้นตอนที่ 7: การตรวจสอบ VBAT (แบตเตอรี่ 9V)
- ขั้นตอนที่ 8: การตรวจสอบ VBAT (การกำหนดค่า 2 Lipos)
- ขั้นตอนที่ 9: สิ่งที่แนบมา
- ขั้นตอนที่ 10: มุมมองการแก้ไข
- ขั้นตอนที่ 11: ขอบคุณ
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สวัสดีทุกคน ! เพื่อเริ่มต้นในวิธีที่ดีที่สุด เรื่องราวเล็ก ๆ น้อย ๆ เกี่ยวกับโครงการ ฉันเพิ่งจบการศึกษาและย้ายไปออสเตรียในตำแหน่งวิศวกร ประเทศมีความสวยงามแต่อากาศหนาวและชื้นมากในฤดูหนาว ฉันเริ่มสังเกตเห็นการควบแน่นบนหน้าต่างทุกเช้าอย่างรวดเร็วเมื่อตื่นขึ้น รวมทั้งมีเชื้อราบางตัวคลานอยู่บนผนังแฟลตที่สวยงามที่ฉันเช่าอยู่ เป็นการเผชิญหน้าครั้งแรกกับระดับความชื้นที่สูงเช่นนี้ ซึ่งมาจากทางใต้ของฝรั่งเศส เราไม่มีปัญหาดังกล่าวที่นั่นจริงๆ ดังนั้นฉันจึงค้นหาวิธีแก้ปัญหาบนอินเทอร์เน็ต & ตัดสินใจที่จะรวบรวมบางส่วนและสร้างระบบตรวจสอบของตัวเอง เพื่อตรวจสอบระดับความชื้นของแต่ละห้องในแฟลตของฉันรวมถึงอุณหภูมิแวดล้อม โครงการต่อไปนี้มีแนวทางที่สำคัญบางประการ:
- มันจะต้องมีราคาถูก
- มันต้องละเอียดพอ
- ฉันต้องการสิ่งเล็กๆ น้อยๆ พกพาสะดวก และใช้พลังงานจากแบตเตอรี่
- ฉันรักต้นไม้และตัดสินใจว่าจะสามารถตรวจความชื้นในดินได้ เพื่อที่จะรู้ว่าฉันจำเป็นต้องรดน้ำต้นไม้หรือไม่ (นอกบริบท แต่ฉันชอบความคิดนี้ !:D)
นี่เป็นโครงการที่ค่อนข้างง่าย แต่นี่เป็นโครงการที่มีประโยชน์ที่สุดที่ฉันเคยทำ ฉันสามารถตรวจสอบความชื้นทุกห้องในทุกห้องและดูว่าจำเป็นต้องทำปฏิกิริยาเพื่อหยุดเชื้อราหรือไม่ มาเริ่มกันเลยดีกว่า
ขั้นตอนที่ 1: รวบรวมส่วนประกอบ
โครงการของเราค่อนข้างง่าย เราจะใช้ Arduino (นาโนในกรณีของฉัน) เป็นสมอง เพราะมันง่ายมากในการเขียนโปรแกรม ราคาถูก & เปลี่ยนได้ถ้าจำเป็น
DHT-22 เป็นเซ็นเซอร์อุณหภูมิและความชื้น มีรุ่นที่ต่ำกว่าเรียกว่า DHT-11 ซึ่งค่อนข้างแย่ในความคิดของฉันที่พูดถึงความแม่นยำ และสำหรับอีก 3 ยูโร คุณจะได้ DHT-22 ซึ่งแม่นยำและแม่นยำกว่ามาก และสามารถทำงานได้หลากหลายอุณหภูมิ จอแสดงผล OLED เพื่อแสดงข้อมูล & มีส่วนต่อประสานภาพระหว่างเซ็นเซอร์และมนุษย์ที่ฉันเป็น ฉันพบว่า 64 x 128 นั้นสมบูรณ์แบบเพราะมีขนาดเล็ก ฉันสามารถใส่ข้อมูลได้เพียงพอและง่ายต่อการเชื่อมต่อ
เซ็นเซอร์วัดความชื้นในดิน YL-69 เพื่อตรวจสอบเมื่อใดก็ตามที่ฉันต้องการรดน้ำต้นไม้ที่น่ารักของฉัน และนี่คือทั้งหมดที่คุณต้องการสำหรับโครงการ หรือฉันต้องการให้โครงการขับเคลื่อนโดยใช้ Lipos ที่ฉันมีอยู่ - คุณสามารถทำให้มันทำงานกับแบตเตอรี่ 9V ปกติได้ง่ายมาก ฉันต้องการตรวจสอบแรงดันไฟฟ้าของแบตเตอรี่ Lipo โดยใช้อินพุตแบบอะนาล็อกบน Arduino ฉันจะให้ข้อมูลเพิ่มเติมในหน้าต่อไปนี้
นอกจากนี้ คุณจะต้องมีสิ่งต่อไปนี้:
- เขียงหั่นขนมชิ้นหนึ่ง
- สวิตช์เปิด/ปิด *1
- ขั้วต่อแบตเตอรี่ 9V
- แบตเตอรี่ 9V
และถ้าคุณต้องการใช้ lipos & การตรวจสอบ:
- ตัวต้านทาน 10K *3
- ตัวต้านทาน 330R *1
- ไฟ LED *1
- สวิตช์เลื่อน *1
- ผู้ถือ Lipo (หรือฉันจะแสดงรุ่นพิมพ์ 3 มิติที่ฉันใช้อยู่)
- เซลล์ไลโป 2 เซลล์
ขั้นตอนที่ 2: แผนผังแบบเต็ม
คุณจะพบกับแผนผังแบบเต็มที่แนบมา โปรดอย่าเห็นได้ชัดว่าคุณเลือกส่วนแบตเตอรี่ 9V ของวงจรหรือส่วนแบตเตอรี่ LIPO ที่เชื่อมต่อกับ VBAT ฉันแยกวงจรทั้งสองด้วยสี่เหลี่ยมสีแดงและใส่ชื่อสีแดงเพื่อเน้นแต่ละอัน
ไม่ต้องกังวลว่าการเชื่อมต่อแต่ละครั้งจะได้รับการอธิบายอย่างถูกต้องในขั้นตอนต่อไปนี้
ขั้นตอนที่ 3: รับการตั้งค่าที่ถูกต้อง
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Arduino IDE แล้ว และดาวน์โหลดไลบรารี่ที่มาพร้อมกับขั้นตอนนี้ ฉันจะใส่โค้ดแบบเต็มด้วย หากคุณไม่ต้องการรบกวนการทดสอบแต่ละส่วนประกอบในขั้นตอนต่อไปนี้
ขั้นตอนที่ 4: เชื่อมต่อ DHT-22
ขั้นตอนแรกของโครงการคือการเชื่อมต่อ DHT-22 กับ Arduino การเชื่อมต่อค่อนข้างง่าย: DHT-22 ------ Arduino
VCC ------ +5V
ข้อมูล ------D5
GND ------ GND
ในการทดสอบการเชื่อมต่อ DHT-22 กับ Arduino เราจะใช้โค้ดที่ฝังอยู่ในขั้นตอนนี้
ขั้นตอนที่ 5: การเชื่อมต่อจอแสดงผล OLED
ขั้นตอนต่อไปคือการเชื่อมต่อจอแสดงผล OLED จอแสดงผลประเภทนี้เชื่อมต่อโดยใช้โปรโตคอล I2C งานแรกของเราคือการค้นหาพิน I2C ที่ถูกต้องสำหรับ Arduino หากคุณใช้ Arduino nano หมุด I2C คือ A4 (SDA) และ A5 (SCL) หากคุณกำลังใช้ Arduino ตัวอื่น เช่น UNO หรือ MEGA ให้ค้นหาบนเว็บไซต์ทางการของ Arduino หรือในเอกสารข้อมูลสำหรับพิน I2C
การเชื่อมต่อมีดังต่อไปนี้:OLED ------ Arduino
GND ------ GND
VCC ------ 3V3
SCL ------ A5
SDA ------ A4
ในการทดสอบ OLED เราจะแสดงข้อมูล DHT บนจอแสดงผล OLED โดยตรงโดยอัปโหลดโค้ดที่ฝังอยู่ในขั้นตอนนี้
คุณควรเห็นอุณหภูมิและความชื้นแสดงบนจอแสดงผล OLED ด้วยอัตราการสุ่มตัวอย่างที่รวดเร็วมาก เนื่องจากเรายังไม่ได้ทำให้ล่าช้า
ขั้นตอนที่ 6: การตรวจสอบความชื้นในดิน
เนื่องจากผมต้องการตรวจสอบความชื้นในดินของพืช เราต้องเชื่อมต่อ YL-69
เซ็นเซอร์นี้น่าสนใจมากสำหรับฉัน และมันทำงานเช่นเมื่อดินคือ:
เปียก: แรงดันเอาต์พุตลดลง
แห้ง: แรงดันไฟขาออกเพิ่มขึ้น
การเชื่อมต่อมีดังนี้:
YL69 ------ Arduino
VCC ------ D7
GND ------ GND
D0 ------ ห้ามเชื่อมต่อ
A0 ------ A7
อย่างที่คุณเห็นเราเชื่อมต่อพิน VCC ของโมดูลกับพินดิจิทัลของ Arduino แนวคิดเบื้องหลังคือการเพิ่มพลังให้กับโมดูลเมื่อเราต้องการทำการวัดและไม่ต่อเนื่อง เนื่องจากเซ็นเซอร์ทำงานโดยการวัดกระแสที่ไหลจากขาของโพรบหนึ่งไปอีกขาหนึ่ง เนื่องจากอิเล็กโทรลิซิสนี้เกิดขึ้นและสามารถทำลายโพรบได้ค่อนข้างเร็วในดินที่มีความชื้นสูง
ตอนนี้เราจะเพิ่มเซ็นเซอร์ความชื้นในรหัสของเรา & แสดงข้อมูลความชื้นด้วยข้อมูล DHT บน OLED อัปโหลดโค้ดที่ฝังอยู่ในขั้นตอนนี้
ขั้นตอนที่ 7: การตรวจสอบ VBAT (แบตเตอรี่ 9V)
ฉันต้องการทราบว่าแบตเตอรี่เหลือน้อยแค่ไหนที่จะไม่ต้องแปลกใจในวันหนึ่งและหมดลงโดยไม่สามารถคาดหวังได้ วิธีตรวจสอบแรงดันไฟฟ้าขาเข้าคือการใช้พินอะนาล็อกของ Arduino เพื่อทราบว่าได้รับแรงดันไฟฟ้าเท่าใด พินอินพุตของ Arduino สามารถสูงสุด 5V แต่แบตเตอรี่ที่ใช้สร้าง 9V หากเราเชื่อมต่อแรงดันไฟฟ้าที่สูงกว่านี้โดยตรง เราจะทำลายส่วนประกอบฮาร์ดแวร์บางอย่าง เราต้องใช้ตัวแบ่งแรงดันไฟฟ้าเพื่อให้ 9V ต่ำกว่า 5V treshold
ฉันใช้ตัวต้านทาน 10k สองตัวเพื่อสร้างตัวแบ่งแรงดันและหารด้วยปัจจัย 2 ที่ 9V และนำไปที่สูงสุด 4.5V
เพื่อแสดงความจริงที่ว่าแบตเตอรี่เหลือน้อยโดยใช้ LED ปกติที่มีตัวต้านทานจำกัดกระแสไฟ 330 โอห์ม
เราจะใช้ขาอนาล็อก A0 เพื่อตรวจสอบ VBAT
ทำตามแผนผังเพื่อทราบวิธีเชื่อมต่อส่วนประกอบ:
ตอนนี้เราจะเพิ่มลงในโค้ดโค้ดของเราที่ฝังอยู่ในขั้นตอนนี้
ขั้นตอนที่ 8: การตรวจสอบ VBAT (การกำหนดค่า 2 Lipos)
ฉันต้องการทราบว่าแบตเตอรี่เหลือน้อยแค่ไหนที่จะไม่ต้องแปลกใจในวันหนึ่งและหมดลงโดยไม่สามารถคาดหวังได้
วิธีตรวจสอบแรงดันไฟฟ้าขาเข้าคือการใช้พินอะนาล็อกของ Arduino เพื่อทราบว่าได้รับแรงดันไฟฟ้าเท่าใด พินอินพุตของ Arduino สามารถรับสูงสุด 5V แต่ Lipos กำลังสร้างสูงสุด 4.2*2 =8.4V
ข้อแตกต่างกับขั้นตอนก่อนหน้านี้คือ ในกรณีที่ใช้ lipo 2 ชุดเป็นอนุกรมเพื่อสร้างแรงดันไฟฟ้า > 5V เพื่อจ่ายไฟให้กับบอร์ด Arduino เราต้องตรวจสอบเซลล์ lipo แต่ละเซลล์เนื่องจากสามารถคายประจุได้ในอัตราที่ต่างกัน โปรดทราบว่าคุณไม่ต้องการปล่อยแบตเตอรี่ lipo มากเกินไป มันอันตรายมาก
สำหรับ Lipo ตัวแรกนั้นไม่มีปัญหาเพราะแรงดันเล็กน้อยที่ 4.2V นั้นต่ำกว่า 5V treshold ที่สามารถทนต่อพินอินพุทของ Arduino ได้ อย่างไรก็ตาม เมื่อคุณใส่แบตเตอรี่ 2 ก้อนในอนุกรม แรงดันไฟฟ้าจะเพิ่มขึ้น: Vtot = V1 + V2 = 4.2 + 4.2 = สูงสุด 8.4
หากเราเชื่อมต่อแรงดันไฟฟ้าที่สูงกว่านี้กับพินอะนาล็อกโดยตรง เราจะทำลายส่วนประกอบฮาร์ดแวร์บางอย่าง เราต้องใช้ตัวแบ่งแรงดันไฟฟ้าเพื่อให้ 8.4V ต่ำกว่า 5V เทรสโฮลด์ ฉันใช้ตัวต้านทาน 10k สองตัวเพื่อสร้างตัวแบ่งแรงดันไฟฟ้าและหารด้วยปัจจัย 2 ที่ 8.4V และนำไปที่ 4.2V สูงสุด
เราจะใช้ขาอนาล็อก A0 เพื่อตรวจสอบ VBAT ทำตามแผนผังเพื่อทราบวิธีเชื่อมต่อส่วนประกอบต่างๆ:
เพื่อแสดงความจริงที่ว่าแบตเตอรี่เหลือน้อยโดยใช้ LED ปกติที่มีตัวต้านทานจำกัดกระแส 330 โอห์ม
ตอนนี้เราจะเพิ่มลงในโค้ดของเราที่ฝังอยู่ในขั้นตอนนี้
ขั้นตอนที่ 9: สิ่งที่แนบมา
ฉันมีโอกาสเป็นเจ้าของเครื่องพิมพ์ 3 มิติ ดังนั้นฉันจึงตัดสินใจพิมพ์เคสโดยใช้ PLA มาตรฐาน
คุณจะพบไฟล์ที่แนบมา ฉันออกแบบกล่องหุ้มโดยใช้ Autodesk Inventor & Fusion360
คุณสามารถสร้างการออกแบบของคุณเองหรือเพียงแค่เก็บเขียงหั่นขนมตามที่เป็นอยู่ก็ได้ กล่องนั้นไม่ได้เพิ่มฟังก์ชันใด ๆ เลย น่าเสียดายที่เครื่องพิมพ์ 3 มิติของฉันเพิ่งเสียชีวิต ดังนั้นฉันจึงไม่สามารถพิมพ์กล่องหุ้มได้ ฉันจะอัปเดตโพสต์ของฉันทุกครั้งที่ฉัน รับชิ้นส่วนที่ถ่ายใน Amazon แก้ไข: ตอนนี้พิมพ์แล้ว & คุณสามารถดูได้ในรูปภาพ
ขั้นตอนที่ 10: มุมมองการแก้ไข
สำหรับตอนนี้โครงการนี้ตรงกับความต้องการของฉันอย่างสมบูรณ์แบบ อย่างไรก็ตาม เราสามารถคิดถึงบางจุดที่เราสามารถปรับปรุงได้:
- ลดการใช้แบตเตอรี่ เราสามารถปรับปรุงการใช้ปัจจุบันทั้งการเปลี่ยนแปลงฮาร์ดแวร์หรือการปรับปรุงซอฟต์แวร์
- เพิ่มบลูทูธเพื่อเชื่อมต่อกับแอปหรือจัดเก็บข้อมูลและทำการวิเคราะห์เพิ่มเติมเมื่อเวลาผ่านไป
- เพิ่มวงจรชาร์จ LIPO เพื่อชาร์จโดยเชื่อมต่อโดยตรงกับผนัง
หากคุณคิดเกี่ยวกับสิ่งใดอย่าลังเลที่จะเขียนลงในส่วนความคิดเห็น
ขั้นตอนที่ 11: ขอบคุณ
ขอบคุณที่อ่านบทช่วยสอนนี้ อย่าลังเลที่จะโต้ตอบกับฉันและคนอื่นๆ ในส่วนความคิดเห็น ฉันหวังว่าคุณจะสนุกกับโปรเจ็กต์นี้ แล้วเจอกันใหม่ตอนหน้าสำหรับโปรเจ็กต์อื่น!