หน้าแรก ดูโปรเจกต์ทั้งหมด
Easy

โปรเจกต์ Bioluminescent Night Light พร้อม LED Proxy (Version 1.4)

โปรเจกต์นี้จำลอง Bioluminescent Night Light โดยใช้ LEDs และ Photoresistor

โปรเจกต์ Bioluminescent Night Light พร้อม LED Proxy (Version 1.4)

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

8,508 การดู
4 ถูกใจ

รายการอุปกรณ์และเครื่องมือ

1x Jumper wires (generic)
🛒 สั่งซื้อ
2x 220 Ω ohm Resistors
🛒 สั่งซื้อ
1x USB A to USB mini (1.5m)
🛒 สั่งซื้อ
1x Breadboard - 400 contacts
🛒 สั่งซื้อ
1x 5528 Light Dependent Resistor LDR 5MM Photoresistor
🛒 สั่งซื้อ

แอปพลิเคชันและแพลตฟอร์ม

1x Google Gemini
ค้นหา Google
1x Arduino IDE 2.0 (beta)
เว็บ Official

รายละเอียดและวิธีทำ

ในฐานะนักเรียนชั้นมัธยมปลายปีที่ 5 ฉันมีความสนใจเป็นอย่างมากทั้งในด้านชีววิทยาและวิศวกรรม และฉันมักจะมองหาหนทางที่จะรวมทั้งสองศาสตร์นี้เข้าด้วยกันเสมอ ฉันหลงใหลในเรื่อง Bioluminescence (การเรืองแสงทางชีวภาพ) เป็นพิเศษ ซึ่งเป็นเรื่องเกี่ยวกับสิ่งมีชีวิตบางชนิดที่สามารถสร้างแสงสว่างได้ด้วยตัวเอง เมื่อไม่นานมานี้ ฉันได้เริ่มสำรวจ Arduino เพื่อใช้เป็นแนวทางในการทำให้ไอเดียโปรเจกต์ที่เกี่ยวข้องกับชีววิทยาของฉันกลายเป็นจริง โปรเจกต์นี้เป็นการทำงานร่วมกันระหว่างฉันและคุณพ่อ ผู้ซึ่งมีประสบการณ์ด้าน electronics และทำหน้าที่เป็นผู้สอนของฉัน ท่านแนะนำให้ฉันรู้จักกับ Arduino และ AI โดยมีเป้าหมายเพื่อช่วยให้ฉันเรียนรู้วิธีการใช้เครื่องมือเหล่านี้สำหรับอาชีพในอนาคตด้านชีววิทยา เราใช้ Gemini ซึ่งเป็นผู้ช่วย AI เป็นเครื่องมือในการช่วยนำไอเดียของเรามาทำให้เกิดขึ้นจริง บทบาทของ Gemini คือการช่วยเหลือในงานต่างๆ เช่น การสร้าง Code, การสร้าง Arduino Sketches และการร่างส่วนต่างๆ ของรายงาน แต่งานเหล่านี้อยู่ภายใต้การดูแลโดยตรงของเราและอ้างอิงจากแนวคิดดั้งเดิมของเราเสมอ แม้ว่าความสนใจในด้านชีววิทยาของฉันจะเป็นตัวขับเคลื่อนโปรเจกต์นี้ แต่รายงานฉบับนี้คือภาพสะท้อนของความพยายามและไอเดียที่ผสมผสานกันของเรา

ในการเริ่มต้น เราใช้ Gemini เพื่อระดมสมองหาไอเดียโปรเจกต์ที่ผสมผสานระหว่าง Bioluminescence และ Arduino มันมีประโยชน์มากที่ได้เรียนรู้วิธีการใช้ AI ในกระบวนการวิจัย คุณพ่อได้ให้รายการโปรเจกต์วิทยาศาสตร์ 31 รายการใน Google Doc ซึ่งช่วยให้ฉันเข้าใจแนวทางต่างๆ ที่ฉันสามารถสำรวจในด้านนี้ได้ และนี่คือไอเดียโปรเจกต์บางส่วนที่ผู้ช่วย AI นำเสนอซึ่งทำให้ฉันสนใจจริงๆ:

  1. Air Quality Monitor: วัดมลพิษในอากาศ เช่น ฝุ่นละออง (PM) และระดับคาร์บอนไดออกไซด์ (CO2)
  1. Biofeedback Device: ใช้ Sensors เพื่อวัดพารามิเตอร์ทางสรีรวิทยา เช่น ความแปรปรวนของอัตราการเต้นของหัวใจ (HRV) และให้ข้อมูลตอบกลับสำหรับเทคนิคการผ่อนคลาย
  1. Microbial Fuel Cell: ผลิตไฟฟ้าจากแบคทีเรียโดยใช้เซลล์เชื้อเพลิงจุลินทรีย์และ Arduino
  1. Plant Watering System: ตรวจสอบความชื้นในดินและรดน้ำต้นไม้โดยอัตโนมัติเมื่อจำเป็น
  1. Heart Rate Monitor: วัดอัตราการเต้นของหัวใจโดยใช้ Pulse Sensor และแสดงผลบนหน้าจอ LCD หรือ LED
  1. Temperature & Humidity Logger: บันทึกข้อมูลอุณหภูมิและความชื้นโดยใช้ Sensors และจัดเก็บไว้ใน SD card

ฉันดูรายการที่ได้รับและเลือกโปรเจกต์วิจัยอิสระมา 15 รายการ ฉันไล่ดูรายการและเลือกโปรเจกต์ที่คิดว่าน่าสนใจ ซึ่งไฟกลางคืนเรืองแสงทางชีวภาพ (Bioluminescent night light) ก็อยู่ในรายการนั้นด้วย แนวคิดโดยรวมคือการตรวจสอบว่าโปรเจกต์ใดมีความเป็นวิทยาศาสตร์มากที่สุดและเกี่ยวข้องกับชีววิทยา นอกจากนี้เรายังต้องการสร้างโปรเจกต์ที่มีความโดดเด่นไม่ซ้ำใคร คุณพ่อ, Gemini (ผู้ช่วย AI ของเรา) และฉันได้ร่วมกันสร้างรายการวัสดุอุปกรณ์, คำแนะนำ, รายละเอียดสำคัญ และข้อมูลอื่นๆ ที่จะเป็นประโยชน์ต่อการทำโปรเจกต์วิจัยนี้ให้สำเร็จอย่างมีประสิทธิภาพ

ภาพแนวคิดที่สร้างโดย AI สร้างโดย Google Gemini Advanced 1.5 Pro

ฉันเลือกโปรเจกต์ไฟกลางคืนเรืองแสงทางชีวภาพเพราะมันรวบรวมความสนใจของฉันในด้านชีววิทยาและ Arduino เข้าด้วยกัน เมื่อเร็วๆ นี้ฉันเพิ่งเรียนจบหลักสูตรแล็บ Biology 2 แบบเรียนล่วงหน้า ซึ่งกระตุ้นความสนใจของฉันในสิ่งมีชีวิตที่เรืองแสงได้ เช่น Dinoflagellates การเรียนรู้เกี่ยวกับสิ่งมีชีวิตที่น่าทึ่งอย่าง Dinoflagellates เป็นงานอดิเรกส่วนตัวของฉัน ฉันรักชีววิทยา โดยเฉพาะอย่างยิ่งจุลชีววิทยา (Microbiology) ดังนั้นโปรเจกต์นี้จึงสะดุดตาฉันมาก ฉันได้ทดลองใช้งาน Arduino มาเป็นเวลาหนึ่งปีแล้วและเริ่มสนุกกับการสร้างโปรเจกต์ต่างๆ ด้วยเครื่องมือนี้ ฉันชอบทำงานด้วยมือและสร้างสิ่งต่างๆ ขึ้นมา จากโปรเจกต์ทั้งหมดที่ Gemini เสนอมา โปรเจกต์นี้โดดเด่นที่สุดสำหรับฉันเพราะมันรวมงานอดิเรกใหม่ที่ฉันชอบที่สุดสองอย่างเข้าด้วยกัน เมื่อเลือกโปรเจกต์ได้แล้ว ฉันจึงเริ่มนำ AI โดยเฉพาะ Gemini เข้ามาใช้ในการวิจัย โปรเจกต์นี้ถูกจัดโครงสร้างเพื่อช่วยให้ฉันพัฒนาทักษะการใช้ AI ในการเขียน Code, การออกแบบวงจร (Circuit design), การวิจัย และการเขียน Gemini กลายเป็นเครื่องมือหลักของฉันสำหรับงานเหล่านี้ และโปรเจกต์ไฟกลางคืนเรืองแสงทางชีวภาพนี้ทำหน้าที่เป็นแพลตฟอร์มการเรียนรู้ให้ฉันได้สำรวจความสามารถของ AI ในบริบททางวิทยาศาสตร์ ฉันเริ่มวิจัยรายการต่อไปนี้ตามคำแนะนำของผู้ช่วย AI:

  1. Components ที่จำเป็น
  1. ราคาของชิ้นส่วนต่างๆ
  1. ขั้นตอนการทำงาน

การให้ข้อมูลแก่ Gemini:

หลังจาก Gemini ช่วยเราเตรียมไอเดียโปรเจกต์ในตอนแรก เรายังคงทำงานร่วมกับ AI อย่างต่อเนื่อง ด้วยการให้ข้อมูลแก่ Gemini เกี่ยวกับการปรับเปลี่ยนการออกแบบของเราในการสนทนาที่แยกจากกัน ทำให้เราสามารถขัดเกลาโปรเจกต์และตัดสินใจได้ว่าการใช้แนวทางแบบสองเวอร์ชัน (Two-version approach) นั้นเหมาะสมที่สุด

Version 1 (ต้นแบบที่ไม่มีแบคทีเรีย):

ใช้ LED จำลองแบคทีเรียเรืองแสง โดยมี Sensor ตรวจจับแสง/Photoresistor คอยตรวจจับแสงจาก LED ตัวแรก สิ่งนี้จะสั่งให้ Arduino เปิดใช้งาน LED ตัวที่สองเพื่อแสดงว่าตรวจพบแสงแล้ว

Version 2 (เวอร์ชันสมบูรณ์ที่มีแบคทีเรีย):

ใช้แบคทีเรียเรืองแสงจริงๆ เป็นแหล่งกำเนิดแสงเริ่มต้น โดย Photoresistor จะตรวจจับแสงจากแบคทีเรีย สิ่งนี้จะสั่งให้ Arduino เปิดใช้งานชุดของ LEDs แยกต่างหากเพื่อสร้างเป็นไฟกลางคืน

สิ่งที่คุณพ่อสอนฉัน:

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

  1. วิธีใช้ AI ในการทำโปรเจกต์วิทยาศาสตร์ที่ต้องใช้ทักษะที่คุณยังไม่มี
  1. วิธีเริ่มใช้งาน Hardware และ Software ของ Arduino เพื่อทำโปรเจกต์วิทยาศาสตร์
  1. ชีววิทยาและการคิดอย่างเป็นระบบในเชิงวิทยาศาสตร์

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

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

เมื่อฉันเริ่มทำการวิจัย ฉันค้นพบอย่างรวดเร็วว่าการใช้ Gemini อย่างมีประสิทธิภาพนั้นต้องมีช่วงเวลาแห่งการเรียนรู้ ในตอนแรก Gemini มักจะให้คำตอบที่ผิดพลาด คลุมเครือ หรือกว้างเกินไป ฉันเรียนรู้ว่ากุญแจสำคัญคือการขัดเกลาคำสั่ง (Prompts) ของฉัน โดยใช้ภาษาที่แม่นยำและให้บริบทเฉพาะเจาะจงเพื่อนำทาง Gemini ไปสู่ข้อมูลที่ฉันต้องการ ตัวอย่างเช่น เมื่อฉันขอรายการ Components ครั้งแรก Gemini ให้รายการที่ครอบคลุมมากเกินไป รวมถึงชิ้นส่วนหลายอย่างที่ไม่ได้จำเป็นสำหรับโปรเจกต์นี้เลย เช่น Diodes เอนกประสงค์ (เช่น 1N4001), ท่อหด (Heat shrink tubing) และ Transistors

ภาพสกรีนช็อตด้านบนแสดงรายการเริ่มต้นที่ Gemini จัดให้ จะเห็นได้ว่าไม่มี LED และมีชิ้นส่วนอื่นๆ มากเกินไป

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

การจัดการโปรเจกต์ (Project Management):

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

คุณพ่อทำตารางกลางเพื่อลิสต์รายการ Components และทำ Checklist สิ่งที่เรามีอยู่แล้ว นี่คือภาพสกรีนช็อตของส่วนหนึ่งในตารางนั้น:

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

Version 1: ต้นแบบเพื่อพิสูจน์แนวคิด (หรือ LED Prototype)

ไอเดียแรกของเราคือการทำให้แบคทีเรียส่องแสง แล้วให้แสงนั้นไปกระตุ้น LED ตัวที่สอง ซึ่งจะเป็นไฟกลางคืนจริงๆ เราไม่อยากรีบซื้อแบคทีเรียเพียงเพื่อจะพบในภายหลังว่าไอเดียของเราใช้งานไม่ได้ ดังนั้นเราจึงตัดสินใจทำการทดสอบเบื้องต้นก่อน เป็นการ "พิสูจน์แนวคิด" ก่อนที่จะเสียเงินซื้อแบคทีเรียจริงๆ เราใช้ LED มาทำหน้าที่เป็น "Proxy" (ตัวแทน) สำหรับแสงของแบคทีเรีย แผนคือให้ LED ตัวแรกนี้สว่างขึ้น จากนั้น Light Sensor จะตรวจจับแสงนั้นและไปกระตุ้น LED ตัวที่สอง LED ตัวที่สองนี้คือตัวแทนของไฟกลางคืนจริงๆ ที่เราต้องการสร้าง เราใช้ Photoresistor รหัส 5528 หรือที่เรียกว่า Light-dependent resistor (LDR) เพื่อตรวจจับเมื่อ LED ตัวแรกเปิดอยู่ ด้วยวิธีนี้ เราสามารถทดสอบไอเดียและตรวจสอบให้แน่ใจว่า Light Sensor และ LEDs ทำงานร่วมกันได้อย่างถูกต้องก่อนจะไปจัดการกับแบคทีเรียจริงๆ

มันเป็นเรื่องยากสำหรับฉันที่จะสร้างแผนผังวงจร (Circuit diagram) สำหรับการวางเลย์เอาต์บน Breadboard เพราะฉันมุ่งความสนใจไปที่เวอร์ชันเรืองแสงทางชีวภาพและพยายามค้นหาโปรเจกต์ที่คล้ายกันด้วยชื่อนั้นแต่ไม่พบ คุณพ่อจึงแนะนำให้ฉันรู้จักกับ Tinkercad เพื่อให้ฉันสามารถสร้างวงจรเบื้องต้นได้

Iteration 1.1: วงจรเริ่มต้น (ข้อผิดพลาดแบบอนุกรม)

ฉันใช้ Gemini ช่วยสร้างวงจรใน Tinkercad แต่ Gemini ให้วงจรที่ผิดพลาดมา โดยสร้างวงจรแบบอนุกรม (Series) แทนที่จะเป็นแบบขนาน (Parallel) ฉันสร้างวงจรแรกใน Tinkercad ได้สำเร็จโดยมี Gemini ช่วยเหลือ แต่วงจรที่ Gemini สร้างขึ้นนั้นไม่ใช่แนวทางที่ดีที่สุด ด้านล่างนี้คือวงจรที่ LEDs ต่อกันแบบอนุกรม

สังเกตว่า LEDs ต่อแบบอนุกรมและเชื่อมต่อกับ A0

Iteration 1.2: การแก้ไขใน Tinkercad (วงจรขนาน, Uno)

คุณพ่อตรวจสอบแล้วพบว่าท่านควรเข้ามาช่วยเพื่อให้งานเดินหน้าต่อ ท่านได้แก้วงจรที่ฉันทำใน Tinkercad เมื่อวันที่ 19 ธันวาคม 2024 โดยใช้ Arduino Uno ในวงจร Tinkercad เพราะในนั้นไม่มี Nano แต่สำหรับการประกอบจริงของฉัน ฉันใช้ Nano จากนั้นฉันได้สร้างวงจรขึ้นมาใหม่ด้วยตัวเองตามแบบด้านล่างนี้:

ฉันเชื่อมต่อ Nano ไว้ด้านข้างของ Breadboard แต่ไม่ได้เสียบลงไป ซึ่งอาจทำให้การเชื่อมต่อหลวมได้

การต่อ Nano ไว้ที่ด้านข้าง

วงจรนี้ดูเรียบร้อยดี แต่มันจะดีกว่าถ้าเสียบ Nano ลงบน Breadboard

คุณพ่อตระหนักว่าการวางเลย์เอาต์สำหรับใช้กับ Nano จะง่ายสำหรับฉันมากกว่า ท่านจึงทำอีกแบบหนึ่งที่เสียบ Nano ลงบน Breadboard

ท่านออกแบบเลย์เอาต์ทีละชิ้นใน Circuito.io เพราะเว็บบนี้มีตัวเลือกให้ใช้บอร์ด Arduino อื่นๆ รวมถึง Nano ด้วย ท่าน Export ภาพสกรีนช็อตทีละชิ้นส่วนแล้วใช้ Inkscape (โปรแกรมวาดภาพเวกเตอร์ฟรีที่คล้ายกับ Illustrator) เพื่อวาดเลย์เอาต์และการเดินสายไฟ อย่างไรก็ตาม ในเลย์เอาต์นั้น ท่านต่อ LED สีแดงกับ Resistor ผิด โดยไปต่อ Resistor ขนาด 220 ohm เข้ากับขา Cathode ของ LED สีแดงแทนที่จะเป็นขา Anode นี่คือเลย์เอาต์เริ่มต้น:

Iteration 1.3: Nano บน Breadboard (ข้อผิดพลาดการวาง Resistor)

ท่านต่อ Resistor 220 ohm เข้ากับขา Cathode ของ LED สีแดงแทนที่จะเป็นขา Anode

คุณพ่อยืนยันให้ฉันทำวงจรใหม่และวาง Nano ลงบน Breadboard แทนที่จะไว้ข้างๆ ท่านบอกว่าการวาง Nano ลงบนบอร์ดจะช่วยให้การเชื่อมต่อแน่นหนาขึ้นและทำให้ต้นแบบโดยรวมดูเรียบร้อยขึ้น ด้านล่างนี้คือวงจรใหม่ของฉันที่ใช้ Nano บน Breadboard:

แน่นอนว่าเพราะเราต่อ LED สีแดงและ Resistor ผิด และ Photoresistor ก็หันหน้าออกจาก LED สีเหลือง เวอร์ชันนี้จึงทำงานไม่เป็นไปตามที่คาดไว้

ด้านล่างนี้คือวิดีโอแสดงลักษณะของ Breadboard และการทำงานเมื่อฉันเสียบสาย USB เข้ากับ Laptop เพื่อดูว่ามันทำงานถูกต้องหรือไม่:

วิดีโอ:

การประกอบใหม่, ข้อผิดพลาด และการแก้ไข

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

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

ขาขวาของ Photoresistor อยู่ในแถวที่ 21 ซึ่งไม่ได้เชื่อมต่อในวงจร

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

นี่คือวงจรที่แก้ไขแล้วด้านบน โดยย้าย Photoresistor ไปอยู่ที่แถว 22

การแก้ปัญหา Components (Troubleshooting)

หลังจากที่ฉันใส่ Components กลับเข้าที่อย่างถูกต้องแล้ว เราสังเกตเห็นว่า LED แสดงสถานะหยุดทำงาน สังเกตว่า LED แสดงสถานะในวงจรที่ประกอบใหม่ตอนแรก (3 รูปก่อนหน้า) เป็นสีฟ้า เราตัดสินใจแก้ปัญหาโดยใช้ Sketch ใหม่เพื่อทดสอบว่า LEDs ทั้งสองตัวยังใช้งานได้หรือไม่ เราต้องการทราบว่าพวกมันจะกะพริบไหม ซึ่งจะบอกเราได้ว่าเป็นปัญหาที่ตัว LEDs หรือที่สายไฟ เราใช้ Sketch ชั่วคราวเพื่อทดสอบ และนี่คือ Code ที่คุณพ่อให้ผู้ช่วย AI สร้างขึ้นและฉันใช้ทดสอบฟังก์ชันการทำงานของ LEDs:

LED Test Sketch:

const int bacteriaLedPin = 3; // Pin connected to the "bacteria" LED

const int nightLightLedPin = 2; // Pin connected to the "night light" LED

const unsigned long onTime = 5000; // Time in milliseconds both LEDs will stay ON

void setup() {

pinMode(bacteriaLedPin, OUTPUT); // Set the bacteria LED pin as an output

pinMode(nightLightLedPin, OUTPUT); // Set the night light LED pin as an output

}

void loop() {

// Turn both LEDs ON

digitalWrite(bacteriaLedPin, HIGH);

digitalWrite(nightLightLedPin, HIGH);

// Keep them ON for 5000 milliseconds (5 seconds)

delay(onTime);

// Turn both LEDs OFF

digitalWrite(bacteriaLedPin, LOW);

digitalWrite(nightLightLedPin, LOW);

// Wait indefinitely (or add another delay here if you want to repeat the cycle)

while (true); // This creates an infinite loop, keeping the LEDs off

// or

// delay(5000); //To turn them back on after 5 seconds and repeat

}

ปรากฏว่าต้องเปลี่ยน LED แสดงสถานะสีฟ้าออก รวมถึงเปลี่ยนสายจัมเปอร์ (Jumper wires) สองเส้นเพื่อความแน่ใจ สังเกตเห็น LED สีเขียวตัวใหม่ในรูปด้านบน เมื่อเราเปลี่ยน LED และสายไฟแล้ว เราก็รัน LED Sketch อีกครั้งและมันก็ได้ผล LED สีเขียวตัวใหม่สว่างขึ้น

Iteration 1.4: การแก้ไขเรื่องจังหวะเวลาของ LED - AI ช่วยเราได้!

เราอัปโหลด Code ต้นฉบับและเผชิญกับปัญหาอื่น: LEDs ใช้งานได้ปกติแต่ดันสลับกันสว่างและสว่างไม่พร้อมกัน คุณพ่อส่ง Code ให้ผู้ช่วย AI และให้มันบอกปัญหาแก่เรา เราได้รับคำแนะนำให้เปลี่ยนค่าเกณฑ์ความสว่าง (Light threshold) จาก 1000 เป็น 500 และด้านล่างนี้คือ Code สุดท้ายสำหรับโปรเจกต์ไฟกลางคืนเรืองแสงทางชีวภาพ เลย์เอาต์ที่ถูกต้องสำหรับโปรเจกต์นี้และ Sketch แสดงอยู่ด้านล่าง:

เลย์เอาต์:

เลย์เอาต์วงจรที่ถูกต้อง

Code:

/*

Bioluminescent Night Light with LED Proxy (Version 1.4)

BiotronikMAiker



This project simulates a bioluminescent night light using LEDs and a photoresistor.

An LED acts as a proxy for bioluminescent bacteria, turning on and off at set intervals.

A photoresistor detects the light from the "bacteria" LED.

When the "bacteria" LED is on and the ambient light is low, a second LED (the "night light") is activated.



This code was generated with the assistance of Gemini, an AI assistant, under the guidance and direction of BiotronikMAiker and VideotronicMaker.

It is part of a larger project exploring the integration of bioluminescence, Arduino, and AI.



Circuit:

- Bacteria LED (e.g., white or yellow) connected to digital pin 3.

- Night Light LED (e.g., green) connected to digital pin 2.

- Photoresistor connected to analog pin A0.



Version 1 - Prototype without Bacteria:

An LED simulates the bioluminescent bacteria. The light sensor/photoresistor detects the light from these initial LEDs.

This triggers the Arduino to activate a single LED to indicate that light was sensed.



Modifications by: VideotronicMaker (Instructor)

Date: [January 7, 2025]

*/



// Pin definitions

const int bacteriaLedPin = 3; // Digital pin connected to the "bacteria" LED (simulating bacteria)

const int nightLightLedPin = 2; // Digital pin connected to the "night light" LED (indicator)

const int photoresistorPin = A0; // Analog pin connected to the photoresistor



// Timing constants (in milliseconds)

const unsigned long onTime = 3000; // Time the "bacteria" LED stays on (3 seconds)

const unsigned long offTime = 2000; // Time the "bacteria" LED stays off (2 seconds)



// Light threshold for the photoresistor.

// Adjust this value based on your photoresistor and ambient lighting conditions.

const int lightThreshold = 500;



// Variable to store the last time the "bacteria" LED was updated

unsigned long previousMillis = 0;



// Variable to track the state of the "bacteria" LED (on or off)

bool bacteriaLedState = HIGH; // Start with the "bacteria" LED ON



void setup() {

// Initialize the "bacteria" LED pin as an output.

pinMode(bacteriaLedPin, OUTPUT);



// Initialize the "night light" LED pin as an output.

pinMode(nightLightLedPin, OUTPUT);



// Turn on the "bacteria" LED initially.

digitalWrite(bacteriaLedPin, HIGH);

}



void loop() {

// Get the current time in milliseconds.

unsigned long currentMillis = millis();



// --- Bacteria LED Control ---



// Check if the "bacteria" LED is currently ON and if the 'onTime' duration has elapsed.

if (bacteriaLedState == HIGH && currentMillis - previousMillis >= onTime) {

// Update 'previousMillis' to the current time.

previousMillis = currentMillis;


// Change the state of the "bacteria" LED to OFF.

bacteriaLedState = LOW;


// Turn OFF the "bacteria" LED.

digitalWrite(bacteriaLedPin, bacteriaLedState);

}

// Otherwise, check if the "bacteria" LED is currently OFF and if the 'offTime' duration has elapsed.

else if (bacteriaLedState == LOW && currentMillis - previousMillis >= offTime) {

// Update 'previousMillis' to the current time.

previousMillis = currentMillis;


// Change the state of the "bacteria" LED to ON.

bacteriaLedState = HIGH;


// Turn ON the "bacteria" LED.

digitalWrite(bacteriaLedPin, bacteriaLedState);

}



// --- Photoresistor Reading ---



// Read the analog value from the photoresistor.

int lightLevel = analogRead(photoresistorPin);



// --- Night Light LED Control ---



// Check if the light level is below the threshold AND the "bacteria" LED is ON.

if (lightLevel < lightThreshold && bacteriaLedState == HIGH) {

// Turn ON the "night light" LED.

digitalWrite(nightLightLedPin, HIGH);

} else {

// Turn OFF the "night light" LED.

digitalWrite(nightLightLedPin, LOW);

}

}

ในที่สุด LED ตัวแทนแบคทีเรีย, Photoresistor และ LED แสดงสถานะก็ทำงานร่วมกันได้ตามที่คาดไว้ LED แบคทีเรียสีเหลืองสว่างขึ้นเป็นเวลา 3 วินาที Photoresistor ตรวจจับได้และสั่งให้ไฟกลางคืนสว่างขึ้นตราบเท่าที่แบคทีเรียยังสว่างอยู่ จากนั้น LED แบคทีเรียก็ดับลงเป็นเวลา 2 วินาที Photoresistor ตรวจจับความมืดนั้นแล้วสั่งปิดไฟกลางคืน ด้านล่างนี้คือภาพบางส่วนของเลย์เอาต์และวิดีโอแสดงการทำงานที่ควรจะเป็น:

วิดีโอ:

รูปภาพวงจรสุดท้าย:

ขั้นตอนต่อไป:

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

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: bioluminescent-night-light-with-led-proxy-version-14-33b714
2450 บาท
PromptPay QR Code