สารบัญ:

นาฬิกาพยากรณ์อากาศโดยใช้นาฬิกาปลุกเก่าและ Arduino: 13 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกาพยากรณ์อากาศโดยใช้นาฬิกาปลุกเก่าและ Arduino: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: นาฬิกาพยากรณ์อากาศโดยใช้นาฬิกาปลุกเก่าและ Arduino: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: นาฬิกาพยากรณ์อากาศโดยใช้นาฬิกาปลุกเก่าและ Arduino: 13 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: วิธีการทำพร้อมโค๊ดนาฬิกาปลุกอินเตอร์เน็ท esp8266 ntp alarm clock 7-segment one button control 2024, พฤศจิกายน
Anonim
นาฬิกาพยากรณ์อากาศโดยใช้นาฬิกาปลุกเก่าและ Arduino
นาฬิกาพยากรณ์อากาศโดยใช้นาฬิกาปลุกเก่าและ Arduino
นาฬิกาพยากรณ์อากาศโดยใช้นาฬิกาปลุกเก่าและ Arduino
นาฬิกาพยากรณ์อากาศโดยใช้นาฬิกาปลุกเก่าและ Arduino

ฉันมีนาฬิกาปลุกที่พังอยู่รอบๆ และเกิดไอเดียที่จะแปลงเป็นนาฬิกาและสถานีพยากรณ์อากาศ

สำหรับโครงการนี้ คุณจะต้อง:

  • นาฬิกาปลุกวงกลมเก่า
  • Arduino นาโน
  • โมดูลเซ็นเซอร์ BME280 (อุณหภูมิ ความชื้น ความดัน)
  • โมดูลจอแสดงผล LCD จาก Nokia 5110
  • DS1307 RTC นาฬิกา
  • TP4056 เครื่องชาร์จแบตเตอรี่ลิเธียม
  • กู้แบต Li-ion เก่าจากมือถือ
  • โมดูลบูสเตอร์ 3.7v ถึง 5v ขนาดเล็ก
  • ตัวต้านทานแบบขึ้นกับแสง (LDR - เครื่องวัดแสง)
  • Buzzer (ใช้กู้จากพีซีเครื่องเก่า)
  • ปุ่มกด 3 ปุ่ม
  • ตัวต้านทานจำนวนหนึ่ง (2x10k, 270 ohm) และทรานซิสเตอร์ (2N2222A หรือใกล้เคียง)
  • ท่อหดบางแบบกว้าง
  • เศษ PCB เพื่อใช้ตกแต่งจานหน้า
  • สายต่อ Micro-USB (ด้านตัวเมียและตัวผู้เป็น Micro-USB)
  • บอร์ดต้นแบบขนาด 2x8 ซม. และสายไฟบางส่วน

ขั้นตอนที่ 1: ถอดแยกชิ้นส่วนทุกอย่าง

ถอดประกอบทุกอย่าง
ถอดประกอบทุกอย่าง

ก่อนอื่นฉันถอดนาฬิกาเก่าออก ระฆัง มอเตอร์ กลไกนาฬิกาแตก…

ขั้นตอนที่ 2: ปุ่มสำหรับการตั้งค่าดิจิทัล

ปุ่มสำหรับการตั้งค่าดิจิตอล
ปุ่มสำหรับการตั้งค่าดิจิตอล
ปุ่มสำหรับการตั้งค่าดิจิตอล
ปุ่มสำหรับการตั้งค่าดิจิตอล
ปุ่มสำหรับการตั้งค่าดิจิตอล
ปุ่มสำหรับการตั้งค่าดิจิตอล
ปุ่มสำหรับการตั้งค่าดิจิตอล
ปุ่มสำหรับการตั้งค่าดิจิตอล

เนื่องจากนาฬิกาใหม่จะเป็นแบบดิจิตอลทั้งหมดโดยมีมินิคอมพิวเตอร์อยู่ภายใน ฉันจึงเพิ่มปุ่มที่ดูเรียบง่าย 3 ปุ่มที่ด้านข้าง

ฉันใช้เศษอลูมิเนียมเพื่อตัดโอเวอร์เลย์เพื่อสร้างฉลาก ตัวอักษรสำหรับฉลากถูกสร้างขึ้นโดยใช้เครื่องเจาะตัวอักษรและเครื่องหมายสีดำ

ขั้นตอนที่ 3: ตัวเก็บประจุสำหรับมอเตอร์

ตัวเก็บประจุสำหรับมอเตอร์
ตัวเก็บประจุสำหรับมอเตอร์

ฉันจะเก็บระฆังเก่าไว้เพื่อส่งเสียงเตือนด้วยมอเตอร์ กลไกนาฬิกาที่พังแบบเก่ามีตัวเก็บประจุแบบเซรามิกที่มีฉลาก 104 ฉันถอดมันออกจากแผงวงจรและบัดกรีเข้ากับมอเตอร์โดยตรง ซึ่งจะช่วยป้องกันไฟกระชากเมื่อเปิดมอเตอร์ในระหว่างการเตือน สิ่งสำคัญที่ควรทราบก็คือมอเตอร์จะถูกควบคุมผ่านทรานซิสเตอร์ แต่จะเพิ่มเติมในภายหลัง

ขั้นตอนที่ 4: ใบหน้าใหม่สำหรับนาฬิกา

หน้าใหม่สำหรับนาฬิกา
หน้าใหม่สำหรับนาฬิกา
หน้าใหม่สำหรับนาฬิกา
หน้าใหม่สำหรับนาฬิกา

เนื่องจากฉันตัดสินใจเปลี่ยนหน้าปัดนาฬิกาใหม่ ฉันจึงนำแผงวงจรออกจากกองขยะและใช้ปืนความร้อนของผู้สร้างเพื่อถอดส่วนประกอบทั้งหมดออกอย่างรวดเร็ว รูตรงกลางทำขึ้นสำหรับหน้าจอดิจิตอลของนาฬิการุ่นใหม่

ขั้นตอนที่ 5: จอแสดงผลดิจิตอลจากโทรศัพท์มือถือเครื่องเก่า

จอแสดงผลดิจิตอลจากโทรศัพท์มือถือเครื่องเก่า
จอแสดงผลดิจิตอลจากโทรศัพท์มือถือเครื่องเก่า
จอแสดงผลดิจิตอลจากโทรศัพท์มือถือเครื่องเก่า
จอแสดงผลดิจิตอลจากโทรศัพท์มือถือเครื่องเก่า

สำหรับโครงการนี้ ฉันตัดสินใจใช้หน้าจอ LCD จากโทรศัพท์มือถือ Nokia 5110 รุ่นเก่า หน้าจอเหล่านี้มีจำหน่ายเป็นโมดูลอย่างกว้างขวาง โดยใช้พลังงานน้อยมาก และมีไลบรารี่ที่ดีสำหรับ Arduino หากคุณกำลังซื้อโมดูลใหม่ที่มีหน้าจอ 5110 - คุณกำลังช่วยโลกเพราะโมดูลใหม่ทั้งหมดถูกสร้างขึ้นจากโทรศัพท์ 5110, 3110 และ 3210 ที่กู้คืนแล้ว!

ขั้นตอนที่ 6: การเชื่อมต่อวงจร

การเชื่อมต่อวงจร
การเชื่อมต่อวงจร
การเชื่อมต่อวงจร
การเชื่อมต่อวงจร
การเชื่อมต่อวงจร
การเชื่อมต่อวงจร

คุณอาจเดาได้แล้วว่าฉันกำลังวางแผนที่จะใช้บอร์ด Arduino เพื่อควบคุมนาฬิกานี้ โปรเจ็กต์นี้ทำซ้ำได้ง่ายแม้สำหรับแฟน Arduino มือใหม่ เพราะฉันไม่ได้สร้างแผงวงจรของตัวเอง เป็นบอร์ด Arduino Nano ที่มีโมดูลเชื่อมต่ออยู่ - BME280 เซ็นเซอร์อุณหภูมิ, ความดันและความชื้น, นาฬิกา DS1307 RTC, เครื่องชาร์จแบตเตอรี่ลิเธียม TP4056, โมดูลบูสเตอร์ขนาดเล็ก 3.7v ถึง 5v, ตัวต้านทานขึ้นอยู่กับแสง (LDR - เครื่องวัดแสง) และเสียงกริ่ง (เอามาจากคอมเครื่องเก่า)

ดูภาพสเก็ตช์ด้วย - พวกมันแสดงการเชื่อมต่อทั้งหมด ฉันคิดว่าทุกอย่างอ่านและเข้าใจได้ง่ายมาก แต่ถ้าคุณมีคำถามใด ๆ เพียงแค่ถามในความคิดเห็นด้านล่าง

หมายเหตุเล็กน้อยเกี่ยวกับการตั้งค่า:

  • มอเตอร์เชื่อมต่อโดยตรงจากแบตเตอรี่ผ่านทรานซิสเตอร์ Arduino ควบคุมทรานซิสเตอร์ผ่านตัวต้านทานและขา PWM D5
  • พิน D7-12 ใช้สำหรับขั้วต่อ LCD กราวด์และ VCC เชื่อมต่อกับรางบนบอร์ดรวมสัญญาณ
  • ติดตั้ง LDR บนหน้าปัดนาฬิกาและตัวต้านทาน + สายไฟขาออก 3 เส้นถูกบัดกรีที่ด้านหลังของหน้าปัดนาฬิกา
  • สำหรับการเชื่อมต่อปุ่ม ฉันใช้ฟังก์ชัน PULLUP ภายในใน Arduino ปุ่มเมนูติดอยู่กับการขัดจังหวะและฉันรู้ในภายหลังว่าคุณสามารถใช้ PULLUP ภายในสำหรับการขัดจังหวะได้เช่นกัน จำเป็นต้องมีการขัดจังหวะสำหรับปุ่มเมนูเพื่อให้โค้ดไม่สแกนสถานะของปุ่มตลอดเวลา
  • นาฬิกาจะตรวจสอบและแสดงสถานะของแบตเตอรี่ด้วย ดังนั้นแบตเตอรี่จึงเชื่อมต่อโดยตรงกับพิน A0 แรงดันแบตเตอรี่ไม่เคยสูงกว่า 4.2V ดังนั้นจึงปลอดภัยที่จะเชื่อมต่อแบตเตอรี่เข้ากับขาอะนาล็อก Arduino โดยตรง
  • Buzzer เชื่อมต่อโดยตรงกับขา PWM D6 แม้ว่านี่จะไม่ใช่วิธีปฏิบัติที่ดี แต่ฉันก็เลิกใช้เพราะ Arduino Nano สามารถรองรับสเป็คที่สูงกว่าที่ระบุไว้และเพราะว่า Buzzer จะไม่ทำงานอย่างต่อเนื่อง การตั้งค่าเดียวกันนี้สามารถเบิร์นพินบนบอร์ด ESP ได้อย่างง่ายดาย ดังนั้นในกรณีเหล่านั้น ผมขอแนะนำให้ใช้การควบคุมทรานซิสเตอร์
  • นาฬิกามีสวิตช์อยู่แล้ว เลยตัดสินใจใช้ ด้านหลังดูเป็นธรรมชาติ

ขั้นตอนที่ 7: บอร์ดเชื่อมต่อเพื่อการเชื่อมต่อที่ง่ายดาย

บอร์ดเชื่อมต่อเพื่อการเชื่อมต่อที่ง่ายดาย
บอร์ดเชื่อมต่อเพื่อการเชื่อมต่อที่ง่ายดาย
บอร์ดเชื่อมต่อเพื่อการเชื่อมต่อที่ง่ายดาย
บอร์ดเชื่อมต่อเพื่อการเชื่อมต่อที่ง่ายดาย

โมดูลทั้งหมดต้องการการเชื่อมต่อเชิงบวกและกราวด์ ดังนั้นฉันจึงตัดสินใจใช้บอร์ดต้นแบบขนาด 2x8 ซม. และบัดกรี 5V และรางกราวด์กับโมดูล ฉันยังสร้างราง I2C ขนาดเล็กที่นั่นด้วย เนื่องจากฉันมีหลายโมดูลที่ใช้อินเทอร์เฟซ I2C

อีกด้านหนึ่ง ฉันบัดกรีหมุดมาตรฐานเพื่อให้ฉันสามารถเชื่อมต่อและถอดโมดูลเมื่อจำเป็น

ส่วนประกอบเพิ่มเติมบางส่วนถูกบัดกรีด้วย เช่น ทรานซิสเตอร์และตัวต้านทานสำหรับการควบคุมมอเตอร์ และตัวต้านทานสำหรับปุ่มเมนูซึ่งใช้การขัดจังหวะ ฉันแสดงแผนผังในส่วนก่อนหน้า

btw คุณเห็นเซ็นเซอร์ LDR ติดตั้งอยู่ที่หน้าปัดนาฬิกาในภาพแรกหรือไม่?

ขั้นตอนที่ 8: การตั้งค่าพลังงาน

การตั้งค่าพลังงาน
การตั้งค่าพลังงาน

ฉันใช้แบตเตอรี่ลิเธียมไอออนแบบเก่าจากโทรศัพท์มือถือเพื่อจ่ายไฟให้กับนาฬิกานี้ โดยปกติแบตเตอรี่โทรศัพท์มือถือที่เปลี่ยนแล้วยังคงมีความจุที่ดี (อย่างน้อยครึ่งหนึ่งของแบตเตอรี่ใหม่) ข้อได้เปรียบของพวกเขาคือมีวงจรป้องกันการคายประจุในตัวและยังบางมาก จึงสามารถใช้ในสถานการณ์ที่มีพื้นที่ขนาดเล็กได้

ในการเชื่อมต่อแบตเตอรี่ คุณเพียงแค่บัดกรีสายไฟเข้ากับหมุด + และ - บนแบตเตอรี่ ไม่ต้องกังวล คุณจะไม่สร้างความเสียหายให้กับเซลล์เพราะมีตัวควบคุมและช่องว่างระหว่างหมุดและสารเคมีของเซลล์

ในภาพนี้ คุณสามารถเห็นแบตเตอรี่และตัวควบคุมการชาร์จ TP4056 รวมถึงบูสเตอร์ 5V ที่เชื่อมต่อเข้าด้วยกันและกับแบตเตอรี่ ฉันใช้ท่อหดเพื่อทำให้ทุกอย่างแยกออกมาและกะทัดรัด

ขั้นตอนที่ 9: Micro USB สำหรับการชาร์จและอัปเดตเฟิร์มแวร์

Micro USB สำหรับชาร์จและอัปเดตเฟิร์มแวร์
Micro USB สำหรับชาร์จและอัปเดตเฟิร์มแวร์

เมื่อฉันบัดกรีทุกอย่างเรียบร้อยแล้ว ฉันจึงติดออดและเซ็นเซอร์อุณหภูมิ/ความดัน/ความชื้นที่แผงด้านหลัง พวกเขาทั้งหมดติดตั้งอย่างดีในช่องที่มีอยู่จากปุ่มควบคุมนาฬิกาแบบเก่า

ถึงเวลาติดตั้งพอร์ต Micro USB ที่ด้านหลังแล้ว ทำไมต้อง Micro USB ถ้า Nano ใช้ Mini USB? เพียงเพราะในครัวเรือน สาย USB ส่วนใหญ่มาจากโทรศัพท์มือถือ และจะสะดวกถ้านาฬิกาใช้ได้เช่นกัน

เนื่องจากฉันต้องการใช้ทั้งการชาร์จและอัปเดตฟังก์ชันนาฬิกาและสถานีตรวจอากาศ ฉันจึงถอดสาย USB ออก เดินสายไฟผ่านเครื่องชาร์จ TP4056 และสาย Data+/Data- โดยตรงไปยังช่องเสียบ USB ของ Arduino Nano คุณสามารถเห็นสิ่งนี้ในแผนผังที่ฉันแสดงในส่วนก่อนหน้า

ขั้นตอนที่ 10: การประกอบขั้นสุดท้าย

การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย

ถึงเวลาที่จะบรรจุทุกอย่างกลับเข้าไปในนาฬิกาเดิม ฉันใช้ท่อหดเพื่อแยกส่วนประกอบและโมดูล แม้แต่ Arduino ก็ถูกห่อด้วยท่อหด

วางเมาส์เหนือรูปภาพแรกเพื่อดูว่าแต่ละองค์ประกอบวางอยู่ที่ใด

ขั้นตอนที่ 11: รหัส

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

จนถึงตอนนี้ นอกเหนือจากตัวนาฬิกาแล้ว นี่คือฟังก์ชันที่โครงการนี้สนับสนุนอยู่แล้ว:

  • การแสดงเวลาและวันที่ (รวมถึงเวลาและการเปิดใช้งานการเตือนบนหน้าจอเดียวกัน)
  • หน้าจอจะสว่างขึ้นในที่มืดหรือเมื่อตรวจพบการเคลื่อนไหว (ขึ้นอยู่กับการเปลี่ยนแปลงของแสง)
  • พยากรณ์อากาศ (แดดจัด, เมฆมาก, ฝนตก)
  • แสดงอุณหภูมิ ความดัน และความชื้น (สำหรับความชื้นจะระบุว่าแห้งเกินไปหรือไม่)
  • เมนูสำหรับการตั้งค่า: ปลุก, เปลี่ยนเวลา, เปิด/ปิดการแสดงวันที่, เปิด/ปิดการแจ้งเตือนเสียงการเปลี่ยนแปลงสภาพอากาศและสลับระหว่างหน่วยอิมพีเรียลและเมตริก
  • การตั้งค่าการปลุก - เปิด/ปิด ตั้งเวลา ตั้งค่าทำนองและ/หรือเสียงระฆังสำหรับการแจ้งเตือน

โค้ดล่าสุด:

รหัสจะได้รับการอัปเดตในอนาคตด้วยคุณสมบัติใหม่ ดังนั้นโปรดกลับมาตรวจสอบการอัปเดตเฟิร์มแวร์อีกครั้ง:-)

หากคุณยังใหม่ต่อโลกของ Arduino นี่คือขั้นตอนที่ฉันอยากจะแนะนำให้ทำ:

  • ติดตั้งไดรเวอร์ USB สำหรับบอร์ดของคุณ (เช่น CH340)
  • ติดตั้ง Arduino IDE
  • ติดตั้งไลบรารีที่ใช้ในโครงการนี้
  • ดาวน์โหลดจาก GitHub และอัปโหลดรหัสโครงการล่าสุดไปยังนาฬิกาโดยใช้สาย Micro USB (คุณสามารถใช้จากโทรศัพท์มือถือได้)

อัลกอริทึมการคาดการณ์มีดังต่อไปนี้:

Arduino Nano รับข้อมูลใหม่จากเซ็นเซอร์ BME280 ทุก 12 นาที รอบการวัดคือ 3 ชั่วโมง หลังจาก 3 ชั่วโมง ช่วงการตรวจสอบแรงดัน (ค่าสูงสุดและต่ำสุดระหว่าง 3 ชั่วโมง) จะเปลี่ยนไปตามค่าเฉลี่ยระหว่างช่วงปัจจุบันและค่าแรงดันปัจจุบัน ทุก ๆ ชั่วโมงทิศทางของการเปลี่ยนแปลงแรงดันด้วยค่าแรงดันปัจจุบันจะถูกบันทึกไว้ หน่วย kPa ใช้สำหรับการคำนวณการคาดการณ์

เนื่องจากข้อจำกัดด้านหน่วยความจำของ Nano อัลกอริธึมการคาดการณ์จึงต้องถูกทำให้ง่ายขึ้น แต่แม้จะมีการทำให้เข้าใจง่ายขึ้น แต่ก็สามารถคาดการณ์ปริมาณน้ำฝนได้ในอีก 12-24 ชั่วโมงข้างหน้า แม้ว่าการพยากรณ์จะมองโลกในแง่ร้ายมากกว่าก็ตาม ค่าเริ่มต้นคือ "สภาพอากาศที่มีเมฆมาก"

"Sunny Weather" - ค่าความดันปัจจุบันสูงกว่าค่าปกติ 7 คะแนน ความดันไม่ลดลงและความแตกต่างระหว่างค่าต่ำสุดและสูงสุดในช่วง 3 ชั่วโมงที่ผ่านมาไม่เกิน 2 คะแนน

ปริมาณน้ำฝนที่เป็นไปได้ "สภาพอากาศฝนตก" - ความดันปัจจุบันต่ำกว่าค่าปกติ 15 จุด และความแตกต่างระหว่างค่าต่ำสุดและสูงสุดมากกว่า 2 คะแนน หรือ ความดันลดลงและความแตกต่างระหว่างค่าปัจจุบันและค่าปกติคือ 3 - 30 คะแนน

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

ขั้นตอนที่ 12: วิดีโอทีละขั้นตอน

Image
Image

หากเป็นการยากที่จะทำตามที่ฉันทำข้างต้น นี่เป็นเวอร์ชันวิดีโอพร้อมขั้นตอนทั้งหมดที่แสดงไว้ด้วย

ขั้นตอนที่ 13: คำสุดท้าย

โดยรวมแล้ว ในมุมมองของผม ระดับความยากของโครงการนี้ไม่สูงนัก ใครๆ ก็ทำได้ หากไม่มีนาฬิกาเรือนเก่า คุณสามารถหานาฬิการาคาถูกได้ที่ตลาดนัดท้องถิ่น

ส่วนประกอบทั้งหมดมีราคาต่ำและมีอยู่ใน Sparkfun/AliExpress/eBay/Amazon

ฉันหวังว่าบทช่วยสอนนี้น่าสนใจสำหรับคุณ และจะขอบคุณมากหากคุณสนับสนุนการแข่งขัน Instructable in the Clock ครั้งแรกของฉัน

การประกวดนาฬิกา
การประกวดนาฬิกา
การประกวดนาฬิกา
การประกวดนาฬิกา

รองชนะเลิศการแข่งขันนาฬิกา

แนะนำ: