สารบัญ:

UCL-lloT-แสงกลางแจ้งที่กระตุ้นโดยพระอาทิตย์ขึ้น/พระอาทิตย์ตก: 6 ขั้นตอน
UCL-lloT-แสงกลางแจ้งที่กระตุ้นโดยพระอาทิตย์ขึ้น/พระอาทิตย์ตก: 6 ขั้นตอน

วีดีโอ: UCL-lloT-แสงกลางแจ้งที่กระตุ้นโดยพระอาทิตย์ขึ้น/พระอาทิตย์ตก: 6 ขั้นตอน

วีดีโอ: UCL-lloT-แสงกลางแจ้งที่กระตุ้นโดยพระอาทิตย์ขึ้น/พระอาทิตย์ตก: 6 ขั้นตอน
วีดีโอ: Campi Flegrei: Supervolcano ของอิตาลี Pt4: สถานการณ์จำลองการระเบิดในปัจจุบัน 2024, พฤศจิกายน
Anonim
UCL-lloT-แสงกลางแจ้งที่กระตุ้นโดยพระอาทิตย์ขึ้น/พระอาทิตย์ตก
UCL-lloT-แสงกลางแจ้งที่กระตุ้นโดยพระอาทิตย์ขึ้น/พระอาทิตย์ตก

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

ขั้นตอนที่ 1: รายการ IO และสิ่งที่คุณต้องการ

รายการ IO และสิ่งที่คุณต้องการ
รายการ IO และสิ่งที่คุณต้องการ
รายการ IO และสิ่งที่คุณต้องการ
รายการ IO และสิ่งที่คุณต้องการ
รายการ IO และสิ่งที่คุณต้องการ
รายการ IO และสิ่งที่คุณต้องการ

Arduino MEGA 2560 เท่าที่ผมเคยใช้มา ผมรู้ว่าคุณสามารถใช้อย่างอื่นได้ง่าย

DS3231 และมันคือห้องสมุด (https://rinkydinkelectronics.com/library.php?id=73… สิ่งสำคัญคือต้องรู้ว่าพินที่ตั้งไว้สำหรับ SDA และ SCL นั้นแตกต่างกันขึ้นอยู่กับ Arduino ที่คุณใช้

I052116 โมดูลเซ็นเซอร์ตรวจจับการเคลื่อนไหวอินฟราเรด IR โมดูลเฉพาะนี้สามารถเปลี่ยนเป็นเซ็นเซอร์ที่คุณเลือกได้

ขั้นตอนที่ 2: ผังงาน

ผังงาน
ผังงาน

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

ขั้นตอนที่ 3: Fritzing

ฟริทซ์ซิ่ง
ฟริทซ์ซิ่ง

เมื่อเทียบกับโครงการอื่นๆ การเดินสายค่อนข้างง่ายที่นี่ สิ่งที่คุณต้องระวังคือ คุณจะต้องใช้โมดูล WIFI เพื่อติดต่อกับเซิร์ฟเวอร์ Node-Red หรือหาคอมพิวเตอร์ที่ใช้แล้วทิ้งเพื่อโฮสต์เซิร์ฟเวอร์ Node-Red บนที่เชื่อมต่อกับ Arduino ไม่แสดงในรูปภาพเป็นการเชื่อมต่อระหว่าง Arduino และแล็ปท็อป และฉันขอโทษล่วงหน้าสำหรับรูปภาพ Fritzing ที่น่าสงสาร!

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

การเข้ารหัส
การเข้ารหัส
การเข้ารหัส
การเข้ารหัส

หากมีสิ่งหนึ่งที่ฉันพบคือกับ Firmata (สำหรับการสื่อสาร Arduino กับ Node-Red) ไลบรารี DS3231 และอื่นๆ มีไลบรารีที่โหลดไว้มากมาย ขณะที่เผยแพร่ การเข้ารหัสยังไม่เสร็จ ดังนั้นจึงรวมรหัสเทียมไว้ด้วย

รวมอยู่ในไลบรารีจาก DS3231 คือพินที่ตั้งไว้ล่วงหน้าสำหรับบอร์ด Arduino แต่ละอัน และในกรณีของเมกะ มันคือพิน 20 และ 21 เนื่องจากเป็นพิน SDA และ SCL บนเมกะ เมื่อเชื่อมต่อแล้ว นาฬิกาสามารถบอกได้ว่าวันนี้เป็นวันอะไรและควรติดตามอะไร สิ่งที่ฉันพบว่าง่ายต่อการใช้งานในการติดตามตัวเลขคือการใช้ int แทนสตริง สิ่งที่ฉันทำคือแปลงตัวเลขของสตริงเป็น int แต่เนื่องจาก int ไม่สามารถใช้: เพื่อแยกนาฬิกา ฉันจึงตัดสินใจทำอย่างอื่นแทน แทนที่จะทำงานเป็นชั่วโมง เราก็จะทำงาน ด้วยนาที หลายนาที เช่น ถ้านาฬิกาเป็น 13:21 ฉันจะแยกตัวเลขสองหลักแรกและจับเวลาเป็นหกสิบ ขณะนี้เราอยู่ที่ 801 นาที เนื่องจาก 13 คูณ 60 เท่ากับ 780 และคุณบวก 21 นาทีสุดท้าย หากโหนดแดงของเราบอกว่าดวงอาทิตย์ตกเวลา 16:58 น. (ในกรณีของฤดูหนาว) เราจะเปิดไฟกลางแจ้งระหว่าง 1,018 นาที และเวลาปิดที่กำหนดไว้ล่วงหน้าซึ่งจะเป็น 1380 (23:00 น.)). หากตัวจับเวลาของเราอยู่ระหว่างนั้น ไฟจะเปิดขึ้น คณิตศาสตร์ข้างต้นเป็นพื้นฐานของโปรแกรมทั้งหมด โดยไม่มีขั้นตอนในการรับ Node-Red เพื่อเชื่อมต่อกับ Arduino และสื่อสาร นอกจากนี้ยังมีการใช้เซ็นเซอร์ที่ทำให้แน่ใจว่าไฟเปิดอยู่ (แม้พระอาทิตย์ตกดินไปแล้วก็ตาม) แต่อย่างอื่นนั่นคือโปรแกรมทั้งหมดข้างต้น

ขั้นตอนที่ 5: Node-Red

โหนด-แดง
โหนด-แดง
โหนด-แดง
โหนด-แดง
โหนด-แดง
โหนด-แดง
โหนด-แดง
โหนด-แดง

ไม่ใช่โฟลว์ขนาดใหญ่โดยเฉพาะ ไม่จำเป็นว่าจะต้องเป็นในกรณีนี้ โหนด 2 แถวแรกเป็นส่วนสำคัญของโปรแกรม เมื่อใช้ฟังก์ชัน GET เราจะดึงข้อมูลการคาดการณ์ในปัจจุบันว่าดวงอาทิตย์จะขึ้นและตกอย่างไร จากที่นั่น เราใช้ตัวเลือก CSS เพื่อดึงข้อมูลเฉพาะของเรา ซึ่งมักจะเข้าถึงได้จากเว็บไซต์ "ตรวจสอบองค์ประกอบ" บน firefox ตามที่ระบุไว้ในรูปภาพ โปรดทราบว่าไม่ใช่ทุกเว็บไซต์ที่จะทำงานในลักษณะนี้ และเว็บไซต์ที่ฉันใช้สามารถทำงานได้อย่างสมบูรณ์แบบด้วยวิธีนี้ จากนั้นจะเขียนข้อมูลไปที่พิน 13 เพราะนั่นคือสิ่งที่ฉันได้กำหนดให้เป็น แม้ว่าการทดสอบจะยังไม่กำหนดว่าพินหนึ่งพินไปถึงเวลาที่ต่างกันนั้นใช้การได้หรือไม่ ตามที่อธิบายไว้ในส่วนการเข้ารหัส ข้อมูลจะมาจาก Arduino ไปยัง Node-Red ซึ่งจะระบุในเว็บไซต์ที่สามารถเข้าถึงได้ซึ่งสามารถตรวจสอบได้ง่าย คุณจะต้องใช้ Firmata สำหรับสิ่งนี้หากคุณต้องการใช้ฟังก์ชัน Arduino ได้มาจากไลบรารี node-red-node-arduino บน Node-Red แม้ว่าจะยังไม่ได้ตั้งค่าทั้งหมด และจะได้รับการอัปเดตเมื่อฉันทำโปรเจ็กต์เสร็จ ฉันได้แนบโค้ดสำหรับ Node-Red Flow ไว้ในเอกสารข้อความเพื่อให้เข้าถึงได้ง่าย

ขั้นตอนที่ 6: การปรับใช้และการใช้งาน

การปรับใช้และการใช้งาน
การปรับใช้และการใช้งาน

และเพื่อจบการสั่งสอนของเรา เป็นส่วนที่ใช้ได้จริงของมัน ด้วยบ้านไม่กี่หลังที่มีแสงอัตโนมัติระดับนี้ เจ้าของบ้านจำนวนมากจึงยินดีต้อนรับวิธีแก้ปัญหาตลอดทั้งปี ในการเชื่อมต่อสิ่งนี้กับหลอดไฟโดยใช้ไฟฟ้าที่ไม่ใช่ Arduino ฉันไม่แนะนำให้ทำเองเว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่ เมื่อโปรเจ็กต์จบลง ฉันจะรับงานนี้โดยได้รับความช่วยเหลือจากช่างไฟฟ้าเพื่อให้แน่ใจ การทำให้ถนนของคุณสว่างขึ้นโดยใช้เซ็นเซอร์หรือตามกำหนดเวลาอย่างเคร่งครัด ฉันแนะนำให้คุณต่อยอดจากสิ่งที่ฉันได้ทำไปแล้วหากคุณ หมายถึงการนำไปใช้จริง ๆ นอกเหนือระยะการทดสอบนี้ ปัญหาส่วนใหญ่ของฉันกับโครงการอยู่ที่ส่วน Node-Red ถึง Arduino อย่างเคร่งครัด และฉันหวังว่าฉันจะสามารถอธิบายให้ชัดเจนที่สุดว่าเป็นไปได้อย่างไร เสร็จแล้ว

แนะนำ: