สารบัญ:

ตัวตรวจสอบอุณหภูมิ Arduino พลังงานต่ำ: 4 ขั้นตอน
ตัวตรวจสอบอุณหภูมิ Arduino พลังงานต่ำ: 4 ขั้นตอน

วีดีโอ: ตัวตรวจสอบอุณหภูมิ Arduino พลังงานต่ำ: 4 ขั้นตอน

วีดีโอ: ตัวตรวจสอบอุณหภูมิ Arduino พลังงานต่ำ: 4 ขั้นตอน
วีดีโอ: AHT10 ตัววัดอุณหภูมิและ ความชื้น 2024, กรกฎาคม
Anonim
Image
Image
รับอะไหล่
รับอะไหล่

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

ขั้นตอนที่ 1: รับชิ้นส่วน

ชิ้นส่วนที่จำเป็นในการสร้างโครงการนี้คือ:

ATMEGA328P ▶

โนเกีย 5110 LCD ▶

DS18B20 ▶

โฟโตรีซีสเตอร์ ▶

ตัวเก็บประจุ ▶

คริสตัล 16MHz ▶

ตัวต้านทาน ▶

มัลติมิเตอร์ Mastech 8268 ▶

ค่าใช้จ่ายทั้งหมดของโครงการในขณะที่ฉันเขียนคำแนะนำนี้น้อยกว่า 10$

ขั้นตอนที่ 2: เชื่อมต่อชิ้นส่วนทั้งหมด

เชื่อมต่อทุกชิ้นส่วน
เชื่อมต่อทุกชิ้นส่วน
เชื่อมต่อทุกชิ้นส่วน
เชื่อมต่อทุกชิ้นส่วน

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

กุญแจสำคัญในการใช้พลังงานต่ำของโครงการนี้คือการใช้ชิป ATMEGA เปล่าแทนบอร์ด Arduino เนื่องจากบอร์ด Arduino ใช้ตัวควบคุมแรงดันไฟฟ้าเพื่อทำงานกับระดับแรงดันไฟฟ้าที่แตกต่างกันหลายระดับ บอร์ดจึงต้องการพลังงานมากขึ้น เราไม่ต้องการเครื่องปรับลมนี้เนื่องจากเรากำลังขับเคลื่อนโครงการของเราจากแบตเตอรี่ 3AA!

ในโครงการนี้ ฉันใช้จอแสดงผล Nokia 5110 LCD ซึ่งเป็นจอแสดงผลที่ยอดเยี่ยม และต้องการกระแสไฟเพียง 0.2mA เมื่อปิดไฟแบ็คไลท์ ประทับใจ!

เรายังใช้โฟโตรีซีสเตอร์เพื่อตรวจจับแสง ดังนั้นหากเป็นเวลากลางคืน เราจะปิดการใช้งานจอ LCD เพื่อประหยัดพลังงาน

ความลับอีกเล็กน้อยคือห้องสมุด LowPower เมื่อเราไม่ได้วัดอุณหภูมิ เราก็ทำให้ Arduino เข้าสู่โหมดสลีปโดยใช้ไลบรารี LowPower เมื่อชิป ATMEGA เปลือยกำลังหลับอยู่ มันต้องการกระแสไฟเพียง 0.06mA! นั่นหมายความว่าคุณสามารถมีชิป ATMEGA ที่หลับได้นานกว่า 4 ปีด้วยแบตเตอรี่ AA 3 ก้อน!

ด้วยการออกแบบซอฟต์แวร์ที่ชาญฉลาด เราจึงมีอายุการใช้งานแบตเตอรี่ที่ยาวนาน ชิป ATMEGA ต้องการกระแสไฟประมาณ 10mA เมื่อทำงาน ดังนั้นเป้าหมายของเราคือให้มันนอนหลับเป็นส่วนใหญ่ ด้วยเหตุนี้ เราจึงปลุกเครื่องเมื่อจำเป็นต้องวัดอุณหภูมิเท่านั้น ทุกสองนาที เมื่อเราปลุกชิป ATMEGA เราจะทำทุกอย่างให้เร็วที่สุด และเข้านอนอีกครั้งในทันที

อัลกอริทึม

โครงการตื่นขึ้นทุกสองนาที สิ่งแรกที่ทำคือเปิดใช้งานโฟโตรีซีสเตอร์โดยการเขียน HIGH ไปที่พินดิจิทัล 6 โดยจะอ่านค่าจากโฟโตรีซีสเตอร์และกำหนดว่าจะเป็นกลางวันหรือกลางคืน จากนั้นจะเขียน LOW ไปที่พินดิจิตอล 6 เพื่อปิดการใช้งานโฟโตรีซีสเตอร์และอนุรักษ์ porer หากเป็นเวลากลางคืน เราจะปิดจอแสดงผล LCD หากเปิดอยู่ และเราเข้าสู่โหมดสลีปทันทีโดยไม่อ่านอุณหภูมิเป็นเวลาสองนาที ไม่จำเป็นต้องทำเช่นนั้น เนื่องจากหน้าจอปิดอยู่ วิธีนี้ทำให้เราประหยัดพลังงานมากยิ่งขึ้น หากมีแสงเพียงพอ เราเปิดใช้งานจอ LCD หากปิดใช้งาน เราอ่านอุณหภูมิ เราแสดงบนหน้าจอ และเข้าสู่โหมดสลีปเป็นเวลาสองนาที วนซ้ำนั้นดำเนินต่อไปตลอดกาล

ขั้นตอนที่ 3: การวัด

การวัด
การวัด
การวัด
การวัด
การวัด
การวัด
การวัด
การวัด

ดังที่คุณเห็นจากภาพ เมื่อโปรเจ็กต์อยู่ในโหมดสลีปและจอแสดงผลเปิดอยู่ จำเป็นต้องใช้กระแสไฟ 0.26mA ซึ่งต่ำมาก หากคุณพิจารณาถึงความจริงที่ว่าเรามีจอแสดงผล!

เมื่อโปรเจ็กต์วัดอุณหภูมิและอัปเดตการแสดงผลจะต้องอยู่ที่ประมาณ 11.5mA

สุดท้ายนี้ เมื่อมันมืดและ ldr ได้ปิดการใช้งานจอแสดงผล Nokia 5110 LCD เราต้องการเพียง 0.07mA ซึ่งเยี่ยมมาก!

อายุการใช้งานแบตเตอรี่

ในการคำนวณอายุการใช้งานแบตเตอรี่ของโปรเจ็กต์ ฉันได้สร้างไฟล์ Excel อย่างง่าย ฉันป้อนการวัดจากมัลติมิเตอร์และอย่างที่คุณเห็นแบตเตอรี่มีอายุการใช้งานมากกว่า 500 วันหากเราวัดอุณหภูมิทุกๆ 2 นาที! นั่นคือด้วยการใช้แบตเตอรี่ 3AA ที่มีความจุ 2.500mAs แน่นอน ถ้าคุณใช้แบตเตอรี่ที่ดีกว่า เช่น แบตเตอรี่ Li-Ion 3.400 mAh คุณสามารถทำให้โปรเจ็กต์ของคุณใช้งานได้นานกว่า 2 ปี!

คุณสามารถดาวน์โหลดไฟล์ Excel ได้จากลิงค์นี้

ขั้นตอนที่ 4: รหัสของโครงการ

รหัสโครงการ
รหัสโครงการ
รหัสโครงการ
รหัสโครงการ

รหัสของโครงการนั้นง่ายมาก เราใช้ไลบรารีบางส่วนในโค้ดนี้ ห้องสมุดที่เราใช้มีดังต่อไปนี้:

  • ห้องสมุดพลังงานต่ำ:
  • ไลบรารีเซ็นเซอร์อุณหภูมิ DS18B20:
  • ไลบรารี Nokia 5110 LCD:

รหัสโครงการประกอบด้วยสองไฟล์ ในไฟล์แรกมีโค้ดที่ทำงานบน Arduino ไฟล์ถัดไปมีข้อมูลไบนารีบางส่วนสำหรับไอคอนที่โปรแกรมหลักแสดง คุณต้องใส่ทั้งสองไฟล์ในโฟลเดอร์โครงการเพื่อให้โค้ดสามารถคอมไพล์ได้อย่างถูกต้อง

รหัสนั้นง่ายมาก คุณสามารถค้นหาได้ด้านล่าง ความมหัศจรรย์ทั้งหมดเกิดขึ้นที่ฟังก์ชัน sleepForTwoMinutes ที่ฟังก์ชันนี้ เราทำให้ Arduino เข้าสู่โหมดสลีป ปัญหาคือการใช้ตัวจับเวลาจ้องจับผิดระยะเวลาสูงสุดที่เราสามารถทำให้ Arduino เข้าสู่โหมดสลีปได้คือ 8 วินาที ดังนั้นเราจึงแทรกสิ่งนั้นในลูปเป็นเวลา 15 ครั้งและได้ช่วงเวลาสองนาทีที่เราต้องการ

ฉันหวังว่าคุณจะสนุกกับโครงการนี้ พบกันเร็ว ๆ นี้!

แนะนำ: