สารบัญ:
- ขั้นตอนที่ 1: บทนำ
- ขั้นตอนที่ 2: รวบรวมชิ้นส่วนและเครื่องมือ
- ขั้นตอนที่ 3: การติดตั้ง Arduino IDE
- ขั้นตอนที่ 4: รหัส
- ขั้นตอนที่ 5: แผนภาพวงจร
- ขั้นตอนที่ 6: นำทุกอย่างมารวมกัน
- ขั้นตอนที่ 7: บทสรุป
วีดีโอ: The Artificial Plant Emotion Expressor (A.P.E.X. ): 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
แต่เดี๋ยวก่อน… ยังมีอีก!
ขั้นตอนที่ 1: บทนำ
เอเพ็กซ์คืออะไร?
APEX เป็นอุปกรณ์ตรวจสอบพืชที่ฉลาด (ไม่ต้องพูดถึงว่าน่ารัก) เพียงแค่เสียบเข้ากับต้นไม้ใด ๆ และจะแสดงระดับ "ความสุข" ของพืช! นี่เป็นเครื่องเตือนใจที่ดีในการรดน้ำต้นไม้หากคุณมีนิสัยที่ไม่ดีที่จะลืมรดน้ำต้นไม้
มันทำงานอย่างไร?
มายากล. ผมล้อเล่น! APEX ใช้ Arduino ที่ติดอยู่กับเซ็นเซอร์ความชื้นซึ่งสอดเข้าไปในดินของพืช เซ็นเซอร์นี้จะอ่านค่าความชื้นในดิน จากนั้น Arduino จะคำนวณว่าหน้าใดที่จะแสดง
แต่ทำไม?
ทำไมจะไม่ล่ะ?
ขั้นตอนที่ 2: รวบรวมชิ้นส่วนและเครื่องมือ
เข้าไปกันเถอะ! สำหรับคำแนะนำนี้ คุณจะต้องมีชิ้นส่วนและเครื่องมือค่อนข้างน้อย โชคดีสำหรับคุณ รายการทั้งหมดอยู่ด้านล่าง:
ด้วยเจตนารมณ์ของการแข่งขันไมโครคอนโทรลเลอร์ โปรเจ็กต์นี้สร้างขึ้นโดยชิ้นส่วนที่ซื้อใน Amazon อย่างสมบูรณ์! (ไม่ได้รับการสนับสนุน)
ส่วนรายการ:
- Arduino Uno
- จอแสดงผล LED 8x8
- เซ็นเซอร์สัมผัสแบบ Capacitive
- เซ็นเซอร์ความชื้น
- ขั้วต่อแบตเตอรี่ 9V
- แบตเตอรี่ 9V
รายการเครื่องมือ:
- สายเกจ 22 เส้น
- เทปพันสายไฟ
- เครื่องปอกสายไฟ
- หัวแร้ง
- ปั๊ม Desoldering
เมื่อคุณรวบรวมอุปกรณ์ที่จำเป็นทั้งหมดแล้ว ก็ถึงเวลาติดตั้งซอฟต์แวร์ Arduino!
ขั้นตอนที่ 3: การติดตั้ง Arduino IDE
เพื่อให้โครงการนี้ใช้งานได้ เราจะต้องสามารถตั้งโปรแกรม Arduino ได้ จำเป็นต้องดาวน์โหลดและติดตั้ง Arduino Integrated Development Environment (IDE) ลงในคอมพิวเตอร์ของคุณ เป็นคำอธิบายที่ค่อนข้างง่าย แต่ฉันจะแนะนำคุณตลอดกระบวนการ:
1. เยี่ยมชมเว็บไซต์ Arduino
2. ไปที่หน้าดาวน์โหลด (ซอฟต์แวร์ > ดาวน์โหลด)
3. คลิกลิงก์ดาวน์โหลดสำหรับระบบปฏิบัติการของคุณ
หมายเหตุด้านข้าง: โปรแกรมจะทำงานบน Windows, Mac และ Linux
4. การติดตั้งบน Windows
- ดับเบิลคลิกที่ไฟล์ที่ดาวน์โหลดเพื่อเรียกใช้
- คลิก "ตกลง" เพื่อยอมรับใบอนุญาต
- ทำตามคำแนะนำที่เหลือ
- ตอนนี้ควรติดตั้งโปรแกรมแล้ว!
(อย่าลืมดูภาพหน้าจอหากคุณหลงทาง)
5. การติดตั้งบน Mac
- คลิกที่ไฟล์ที่ดาวน์โหลด
- เลือก "เปิด"
- โปรแกรมจะติดตั้งและรันโดยอัตโนมัติ!
(อย่าลืมตรวจสอบภาพหน้าจอหากคุณสับสน)
6. แค่นั้นแหละ
และคุณทำเสร็จแล้ว! ตอนนี้คุณได้ดาวน์โหลด Arduino IDE ลงในระบบของคุณแล้ว!
ขั้นตอนที่ 4: รหัส
ขั้นตอนนี้เป็นข้อมูลเกี่ยวกับรหัส เป็นโปรแกรมที่ค่อนข้างสั้น ดังนั้นฉันจะอธิบายกับคุณและอธิบายว่ามันทำงานอย่างไร อย่างแรก ภาพรวมโดยย่อ ต่อด้วยคำอธิบายเชิงลึก และสุดท้ายจะพุชไปยัง Arduino ได้อย่างไร!
ภาพรวมโดยย่อ
สำหรับผู้ที่ไม่สนใจคำอธิบายโค้ดโดยละเอียด ฉันกำลังจัดเตรียมเซ็กเมนต์ TL;DR! นี่คือคำอธิบายพื้นฐาน Arduino จับค่าจากเซ็นเซอร์ความชื้นทุก ๆ สองสามวินาที ข้อมูลนี้จะใช้ในการคำนวณและแสดงใบหน้าที่แน่นอน! นอกจากนี้ยังมีรหัสเล็กน้อยในตอนท้ายซึ่งให้ปุ่มสัมผัสแบบ capacitive เปิดและปิดจอแสดงผล สวยเรียบง่ายใช่มั้ย?
The Nitty Gritty
บทช่วยสอนส่วนนี้มีไว้สำหรับผู้ที่มีความสนใจอย่างมากเกี่ยวกับวิธีการทำงานของโปรแกรมทั้งหมด ทีละบรรทัด เราจะจัดเตรียมภาพหน้าจอด้านบนเพื่อช่วยให้คุณเข้าใจสิ่งที่คุณกำลังพูดถึง รวมทั้งรวมโค้ดบางบรรทัดไว้ในคำอธิบายนี้
โปรแกรมนี้แบ่งออกเป็นห้าส่วน:
- รวมไลบรารี่และการสร้างตัวแปร
- ฟังก์ชันการตั้งค่า
- ฟังก์ชั่นสำหรับการแสดงออกทางสีหน้า
- ฟังก์ชันเขียน Arduino บนเมทริกซ์
- ฟังก์ชันลูป
รวมถึงไลบรารีและการสร้างตัวแปร:
ส่วนแรกของรหัสนี้เป็นข้อมูลเกี่ยวกับตัวแปรและไลบรารีที่เราจะใช้
#include "LedControlMS.h"
#define TouchSensor 7 LedControl lc=LedControl(12, 11, 10, 1); int เซ็นเซอร์พิน = A5; int sensorValue = 0; บูลเริ่มต้น = เท็จ; บูลบน = จริง; บูลีนกด = ต่ำ;
บรรทัดแรกมีไลบรารีชื่อ LedControlMS ไลบรารีนี้จำเป็นสำหรับการส่งค่าไปยังจอแสดงผล LED บรรทัดถัดไปคือคำสั่ง define ซึ่งกำหนดพินสำหรับเซ็นเซอร์สัมผัสเป็น 7 หลังจากนั้น เรามีตัวแปรอีกสามตัวที่กำหนดพินสำหรับจอแสดงผล LED เซ็นเซอร์ความชื้น และค่าของมัน สามบรรทัดสุดท้ายเป็นบูลีนทั้งหมดที่ควบคุมสถานะของปุ่มสัมผัสและจอแสดงผล หลังจากนี้เรามีค่าไบต์ของเรา:
ไบต์ยิ้ม[4]={B0000010, B00110010, B01100100, B01100000};ไบต์แปลกใจ[4]={B00001110, B00001010, B01101110, B10010000}; ไบต์ [4]={B0000000100, B00100100, B00100100, B00100000}; ไบต์เศร้า[4]={B00000010, B01100100, B00110010, B00110000}; ไบต์ตาย[6]={B00001010, B00100100, B00101010, B000000000, B01100000, B01101010}; ข้อผิดพลาดไบต์[8]={B00111100, B01000010, B10100001, B10010001, B10001001, B10000101, B01000010, B00111100}; // Evil Faces ไบต์ esmile[4]={B00000010, B00101010, B01000100, B01000000}; ไบต์อีลาห์[4]={B00000010, B00101010, B01100100, B01100000}; ไบต์ eplain[4]={B00000010, B00101010, B00100100, B00100000}; ไบต์ eyell[4]={B00000001, B01101001, B01100010, B01100000}; ไบต์ etalk[4]={B00000001, B00101001, B01100010, B01100000};
ค่าเหล่านี้แสดงถึงใบหน้าทั้งหมดของ APEX แต่ละไบต์เป็นอาร์เรย์ที่มีหลายบิตที่กำหนดสถานะของแต่ละพิกเซลในแถวที่กำหนด "1" และ "0" หมายถึงเปิด/ปิดตามลำดับ
ฟังก์ชั่นการตั้งค่า:
ไปยังส่วนถัดไป เรามีฟังก์ชันการตั้งค่าของเรา
การตั้งค่าเป็นโมฆะ () {// MS Serial Output Serial.begin (9600);
โหมดพิน (เซ็นเซอร์สัมผัส, อินพุต);
// LED Matrix Setup lc.shutdown (0, เท็จ); lc.setIntensity(0, 4); lc.clearDisplay(0); }
ชื่ออธิบายได้ดีมาก นี่คือที่ที่เรา "ตั้งค่า" เซ็นเซอร์สัมผัสและจอแสดงผลของเรา สองบรรทัดแรกเริ่มต้นเอาต์พุตแบบอนุกรมของเรา (ใช้สำหรับการแก้ไขข้อบกพร่อง) บรรทัดที่สามตั้งค่าพินเซ็นเซอร์สัมผัสเป็นอินพุต และสี่บรรทัดสุดท้ายเริ่มต้นการแสดงผล
ฟังก์ชั่นสำหรับการแสดงออกทางสีหน้า:
นี่อาจเป็นส่วนที่ยาวที่สุด แต่ทั้งหมดนั้นเรียบง่ายและซ้ำซาก
โมฆะหัก () { lc.setRow (0, 0, ข้อผิดพลาด [0]); lc.setRow(0, 1, ข้อผิดพลาด [1]); lc.setRow(0, 2, ข้อผิดพลาด[2]); lc.setRow(0, 3, ข้อผิดพลาด[3]); lc.setRow(0, 4, ข้อผิดพลาด[4]); lc.setRow(0, 5, ข้อผิดพลาด[5]); lc.setRow(0, 6, ข้อผิดพลาด[6]); lc.setRow(0, 7, ข้อผิดพลาด[7]); }
โมฆะมีความสุข () {
lc.setRow(0, 0, ยิ้ม[0]); lc.setRow(0, 1, ยิ้ม[1]); lc.setRow(0, 2, ยิ้ม[2]); lc.setRow(0, 3, ยิ้ม[3]); lc.setRow(0, 4, ยิ้ม[3]); lc.setRow(0, 5, ยิ้ม[2]); lc.setRow(0, 6, ยิ้ม[1]); lc.setRow(0, 7, ยิ้ม[0]); }
เป็นโมฆะธรรมดา () {
lc.setRow(0, 0, meh[0]); lc.setRow(0, 1, meh[1]); lc.setRow(0, 2, meh[2]); lc.setRow(0, 3, meh[3]); lc.setRow(0, 4, meh[3]); lc.setRow(0, 5, meh[2]); lc.setRow(0, 6, meh[1]); lc.setRow(0, 7, meh[0]); }
โมฆะประหลาดใจ (){
lc.setRow(0, 0, เซอร์ไพรส์[0]); lc.setRow(0, 1, เซอร์ไพรส์[1]); lc.setRow(0, 2, เซอร์ไพรส์[2]); lc.setRow(0, 3, เซอร์ไพรส์[3]); lc.setRow(0, 4, เซอร์ไพรส์[3]); lc.setRow(0, 5, เซอร์ไพรส์[2]); lc.setRow(0, 6, เซอร์ไพรส์ [1]); lc.setRow(0, 7, เซอร์ไพรส์[0]); }
โมฆะตาย () {
lc.setRow(0, 0, ตาย[0]); lc.setRow(0, 1, ตาย[1]); lc.setRow(0, 2, ตาย[2]); lc.setRow(0, 3, ตาย[3]); lc.setRow(0, 4, ตาย[4]); lc.setRow(0, 5, ตายแล้ว[5]); lc.setRow(0, 6, ตาย[1]); lc.setRow(0, 7, ตาย[0]); }
โมฆะร้องไห้ () {
lc.setRow(0, 0, เศร้า[0]); lc.setRow(0, 1, เศร้า[1]); lc.setRow(0, 2, เศร้า[2]); lc.setRow(0, 3, เศร้า[3]); lc.setRow(0, 4, เศร้า[3]); lc.setRow(0, 5, เศร้า[2]); lc.setRow(0, 6, เศร้า[1]); lc.setRow(0, 7, เศร้า[0]); }
โมฆะ Evilsmile () {
lc.setRow(0, 0, เอสไมล์[0]); lc.setRow(0, 1, เอสไมล์[1]); lc.setRow(0, 2, เอสไมล์[2]); lc.setRow(0, 3, เอสไมล์[3]); lc.setRow(0, 4, เอสไมล์[3]); lc.setRow(0, 5, เอสไมล์[2]); lc.setRow(0, 6, เอสไมล์[1]); lc.setRow(0, 7, เอสไมล์[0]); }
โมฆะ evillaugh() {
lc.setRow(0, 0, elaugh[0]); lc.setRow(0, 1, elaugh[1]); lc.setRow(0, 2, elaugh[2]); lc.setRow(0, 3, elaugh[3]); lc.setRow(0, 4, elaugh[3]); lc.setRow(0, 5, elaugh[2]); lc.setRow(0, 6, elaugh[1]); lc.setRow(0, 7, elaugh[0]); }
โมฆะ evilplain () {
lc.setRow(0, 0, eplain[0]); lc.setRow(0, 1, eplain[1]); lc.setRow(0, 2, eplain[2]); lc.setRow(0, 3, eplain[3]); lc.setRow(0, 4, eplain[3]); lc.setRow(0, 5, eplain[2]); lc.setRow(0, 6, eplain[1]); lc.setRow(0, 7, eplain[0]); }
เป็นโมฆะ evilyell() {
lc.setRow(0, 0, eyell[0]); lc.setRow(0, 1, eyell[1]); lc.setRow(0, 2, eyell[2]); lc.setRow(0, 3, eyell[3]); lc.setRow(0, 4, eyell[3]); lc.setRow(0, 5, eyell[2]); lc.setRow(0, 6, eyell[1]); lc.setRow(0, 7, eyell[0]); }
เป็นโมฆะ eviltalk() {
lc.setRow(0, 0, etalk[0]); lc.setRow(0, 1, etalk[1]); lc.setRow(0, 2, etalk[2]); lc.setRow(0, 3, etalk[3]); lc.setRow(0, 4, etalk[3]); lc.setRow(0, 5, etalk[2]); lc.setRow(0, 6, etalk[1]); lc.setRow(0, 7, etalk[0]); }
ฟังก์ชันเหล่านี้ใช้เพื่อกำหนดการแสดงสีหน้าแต่ละครั้งโดยใช้ค่าไบต์ของเราจากส่วนแรก แต่ละบรรทัดกำหนดตำแหน่ง x และค่าไบต์ จากนั้นจึงนำค่าไปใช้กับคอลัมน์นั้น บางฟังก์ชันต้องการเส้นมากขึ้น เนื่องจากมีแถวที่ใช้แสดงค่าของใบหน้านั้นมากขึ้น ใบหน้าแต่ละหน้ามีความสมมาตร เราจึงวาดเส้นซ้ำ
ฟังก์ชัน WriteArduinoOnMatrix:
ส่วนที่สี่ใช้ในการคำนวณและเขียนหน้าที่ถูกต้องบนจอแสดงผล LED ประกอบด้วยชุดคำสั่ง else if ซึ่งตรวจสอบค่าน้ำแล้วตั้งค่าการแสดงผลโดยเรียกใช้ฟังก์ชันที่แตกต่างจากส่วนก่อนหน้า
เป็นโมฆะ writeArduinoOnMatrix () { if (sensorValue > 0 && sensorValue 30 && sensorValue 100 && sensorValue 200 && sensorValue 400 && sensorValue 650 && sensorValue <= 800) { ประหลาดใจ (); } อื่น ๆ { เสีย (); } }
คุณอาจสังเกตเห็นว่าเราเพิ่มใบหน้าที่ "หัก" ไว้ในกรณีที่เซ็นเซอร์อยู่นอกช่วงการทำงาน ซึ่งจะป้องกันข้อผิดพลาด null แปลก ๆ ที่เกิดขึ้น และทำให้เราเข้าใจสิ่งที่เกิดขึ้นภายในโค้ดได้ดีขึ้น
ฟังก์ชันลูป:
สุดท้ายแต่ไม่ท้ายสุดคือฟังก์ชันลูป รหัสนี้ทำงานตรงตามชื่อ มันวนซ้ำ! แม้ว่าฟังก์ชันนี้จะมีเพียงไม่กี่บรรทัด แต่จริงๆ แล้วค่อนข้างง่าย รหัสจะอ่านสถานะของปุ่มก่อนและดูว่าการแสดงผลเป็น "เปิด" หรือไม่ หากพบว่าเป็นจริง ก็จะเรียกฟังก์ชัน WriteArduinoOnMatrix ซึ่งจะวาดใบหน้าบน APEX เนื่องจากฟังก์ชั่นนี้วนซ้ำ มันจะอัปเดตการแสดงผลได้บ่อยเท่าที่เราต้องการ ความล่าช้านี้ถูกกำหนดโดยตัวแปรเวลาหน่วงเวลา
วงเป็นโมฆะ () { ถ้า (เริ่มต้น == จริง) { เวลาหน่วง = 3000; } // กดปุ่มอ่าน = digitalRead (TouchSensor);
ถ้า (กด) {
ถ้า (บน == จริง) { lc.clearDisplay(0); บน = เท็จ; ล่าช้า (ล่าช้า); } อื่น ๆ { บน = จริง; ล่าช้า (ล่าช้า); } } sensorValue = analogRead (เซ็นเซอร์พิน); ล่าช้า (ล่าช้า); ถ้า (บน == จริง) {// วาดใบหน้า writeArduinoOnMatrix (); }
เริ่ม = จริง;
}
นั่นคือทั้งหมดที่มีในรหัส หวังว่าตอนนี้คุณจะเข้าใจวิธีการทำงานทั้งหมดได้ดีขึ้น และสามารถใช้ความรู้นี้เพื่อเริ่มปรับแต่งให้เข้ากับโครงการของคุณได้!
ดันโค้ดไปที่ Arduino
เมื่อเราได้ครอบคลุมโค้ดทั้งหมดแล้ว ก็ถึงเวลาที่จะพุชไปที่ Arduino! โชคดีที่ IDE ทำให้สิ่งนี้ง่ายมาก สิ่งที่คุณต้องทำคือเสียบ Arduino เข้ากับคอมพิวเตอร์ด้วยสาย USB จากนั้นคลิกลูกศรขวาที่ด้านบนซ้ายของ IDE ปล่อยให้รหัสผลักและคุณจะเห็นข้อความแสดงความสำเร็จที่ด้านล่างของโปรแกรมหากคุณทำถูกต้อง!
ขั้นตอนที่ 5: แผนภาพวงจร
เช่นเดียวกับโค้ด แผนภาพวงจรไม่ซับซ้อนเกินไป ประกอบด้วยเซ็นเซอร์สามตัวและ Arduino เท่านั้น ดังนั้นฉันจะบอกคุณถึงพินเอาต์สำหรับแต่ละตัว และหากคุณต้องการความช่วยเหลืออื่น ๆ ให้อ้างอิงกับไดอะแกรมด้านบน
จอแสดงผล LED:
- VCC -> 5V
- GRD -> GRD
- DIN -> พิน 12
- CS -> ปักหมุด 10
- CLK -> ปักหมุด 11
เซ็นเซอร์ความชื้น:
- บวก -> 5V
- เชิงลบ -> GRD
- สัญญาณ -> A5
เซ็นเซอร์สัมผัสแบบ Capacitive:
- VCC -> 5V
- GRD -> GRD
- SIG -> 7
ไม่ยากเกินไปใช่ไหม หากคุณมีปัญหาใด ๆ กับพินเอาต์นี้ โปรดดูวิดีโอด้านล่างซึ่งเราจะแนะนำวิธีการต่อสายให้คุณทราบ
ขั้นตอนที่ 6: นำทุกอย่างมารวมกัน
เป็นการยากที่จะอธิบายด้วยข้อความว่ามันเข้ากันได้อย่างไร ดังนั้นฉันขอแนะนำให้ดูวิดีโอสำหรับส่วนนี้อย่างแน่นอน ฉันจะไม่อธิบายอย่างแน่ชัดว่าฉันรวบรวมของฉันอย่างไร มันยากเกินไป แต่เพื่ออธิบายสิ่งต่าง ๆ อย่างคลุมเครือ ฉันบัดกรีการต่อสายไฟและพันไว้รอบ ๆ ด้านหลังของกระดาน จากนั้นฉันก็จัดตำแหน่งเซ็นเซอร์และใช้เทปพันสายไฟเพื่อยึดทั้งหมดเข้าด้วยกัน สุดท้าย ฉันทดสอบด้วยแบตเตอรี่ 9V และเมื่อฉันรู้ว่ามันใช้งานได้ ให้วางแบตเตอรี่ที่ด้านหลังและติดเทปไว้ด้วย อย่างที่ฉันพูดไปก่อนหน้านี้ ลองดูวิดีโอสำหรับขั้นตอนนี้ มันมีส่วนบัดกรีเล็กๆ ที่ดีที่เร่งความเร็วและจะช่วยให้คุณพันสายไฟได้อย่างถูกต้อง อย่าลังเลที่จะหยุดชั่วคราวหรือเล่นด้วยความเร็วครึ่งหนึ่งหากคุณหลงทาง
ยินดีด้วย! ถ้าทุกอย่างสำเร็จ ตอนนี้คุณควรมีหน่วย APEX ที่ทำงานได้อย่างสมบูรณ์!
หากต้องการทดสอบยูนิตของคุณ ให้หาต้นไม้ที่รดน้ำแล้วเสียบปลั๊ก! คุณควรพบว่ามันมีความสุขหรือประหลาดใจ นั่นหมายความว่ามันควรจะได้ผล!!! ทำได้ดีมากสำหรับการทำโครงการให้เสร็จ!
ขั้นตอนที่ 7: บทสรุป
และนั่นคือคำแนะนำทั้งหมด! ขอบคุณสำหรับการตรวจสอบโครงการ! ฝากคำถามและความคิดเห็นไว้ด้านล่าง และอย่าลืมติดตาม Urban Farming Guys เพื่อรับบทเรียนเจ๋งๆ แบบนี้! เราชอบที่จะได้ยินว่า APEX บิลด์ของคุณดำเนินไปอย่างไร และรูปภาพต่าง ๆ ก็น่าชื่นชมมาก! ขอขอบคุณอีกครั้งสำหรับการหยุด ขอให้มีวันที่ดี!
(คำแนะนำนี้ได้รับแรงบันดาลใจจากโครงการเก่า Plant Emoji!)
ป.ล. Instructable นี้เข้าร่วมการแข่งขัน Microcontrollers ดังนั้นอย่าลืมโหวตให้เรา! เราขอขอบคุณมันมาก:)
ป.ล. มาสร้าง APEX ใน Make Magazine กันเถอะ! โหวตที่นี่ ! ขอบคุณ:)
แนะนำ:
Smart Indoor Plant Monitor - รู้ว่าเมื่อใดที่พืชของคุณต้องการการรดน้ำ: 8 ขั้นตอน (พร้อมรูปภาพ)
Smart Indoor Plant Monitor - รู้ว่าเมื่อใดที่พืชของคุณต้องการการรดน้ำ: สองสามเดือนที่ผ่านมา ฉันทำแท่งตรวจสอบความชื้นในดินที่ใช้พลังงานจากแบตเตอรี่และสามารถติดอยู่ในดินในกระถางต้นไม้ในร่มของคุณ เพื่อให้ข้อมูลที่เป็นประโยชน์เกี่ยวกับดินแก่คุณ ระดับความชื้นและไฟ LED แฟลชเพื่อบอกคุณเมื่อต้องก
Plant'm: 6 ขั้นตอน (พร้อมรูปภาพ)
Plant'm: ส่วนใหญ่ฉันชอบปลูกต้นไม้ไว้รอบๆ บ้าน น่าเสียดายที่พวกเขาเกือบจะตายภายในสองสามสัปดาห์ เมื่อสิ้นปีแรกของฉันในฐานะนักเรียนที่ MCT ที่ Howest ฉันได้รับมอบหมายให้สร้างโครงการที่จะแสดงให้เห็นทุก
Rory the Robot Plant: 5 ขั้นตอน (พร้อมรูปภาพ)
Rory the Robot Plant: Rory เป็นหุ่นยนต์ที่ดูน่าขบขันในรูปทรงของต้นไม้ โต้ตอบกับอินพุตบางส่วนด้วยเซ็นเซอร์ เล่นเพลงและตรวจจับการเคลื่อนไหวของมนุษย์รอบๆ นอกจากนี้ยังสามารถถ่ายภาพเมื่อคุณสั่งซื้อได้อีกด้วย พืชขนาดเล็กในกระถาง โนที
DIY Plant Moisture Sensor พร้อม Arduino: 6 ขั้นตอน (พร้อมรูปภาพ)
DIY Plant Moisture Sensor W/ Arduino: ดูโครงการนี้บนเว็บไซต์ของฉัน! โครงการนี้จะคำนวณปริมาณน้ำของดินรอบ ๆ โรงงานโดยการวัดค่าคงที่ไดอิเล็กตริก (ความสามารถของดินในการส่งกระแสไฟฟ้า) และจะแจ้งเตือนคุณด้วยไฟ LED สีแดงเมื่อ พืชต้องการน้ำมากขึ้น o
Plant Monitor: 12 ขั้นตอน (พร้อมรูปภาพ)
การตรวจสอบโรงงาน: วัตถุประสงค์ของการตรวจสอบโรงงานคือการสแกนและจัดการน้ำหากจำเป็นสำหรับโรงงานที่เชื่อมต่อกับเซ็นเซอร์ดินแบบแอนะล็อกที่ให้มา ชิ้นส่วนที่จำเป็นสำหรับโครงการนี้คือ:1x หน้าจอ LCD Arduino Uno1x 1x เซอร์โวมอเตอร์1x หน่วยเซ็นเซอร์ดิน1x โพเทนชิโอมิเตอร์1x การแพทย์ 30c