สารบัญ:

กระถางต้นไม้อัตโนมัติ - สวนน้อย: 13 ขั้นตอน (พร้อมรูปภาพ)
กระถางต้นไม้อัตโนมัติ - สวนน้อย: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: กระถางต้นไม้อัตโนมัติ - สวนน้อย: 13 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: กระถางต้นไม้อัตโนมัติ - สวนน้อย: 13 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: DIY กระถางต้นไม้ไม่ต้องรดน้ำบ่อย | Urban Gardening ปิ๊ง! ไอเดียปลูก 2024, พฤศจิกายน
Anonim
กระถางต้นไม้อัตโนมัติ - สวนน้อย
กระถางต้นไม้อัตโนมัติ - สวนน้อย

ฉันเป็นนักเรียนจากเทคโนโลยีมัลติมีเดียและการสื่อสารที่ Howest Kortrijk สำหรับการมอบหมายขั้นสุดท้าย เราต้องพัฒนาโครงการ IoT ที่เราเลือกเอง

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

งานหลักสำหรับกระถางต้นไม้อัตโนมัติ Little Garden คือ:

  • วัดค่า

    • อุณหภูมิ
    • ความเข้มของแสง
    • ความชื้น
    • ความชื้นในดิน

บันทึกการวัดลงในฐานข้อมูล

ปรับปรุงเงื่อนไขสำหรับการเจริญเติบโตของพืชถ้าค่าบางอย่างต่ำเกินไป

ให้อุปกรณ์ได้รับการตรวจสอบและจัดการผ่านเว็บไซต์

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

ขั้นตอนที่ 1: วัสดุสิ้นเปลือง

เสบียง
เสบียง
เสบียง
เสบียง
เสบียง
เสบียง

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

ส่วนประกอบหลัก:

  • Raspberry Pi 4 รุ่น B
  • แหล่งจ่ายไฟ Raspberry Pi
  • Raspberry Pi T-cobbler
  • การ์ด micro SD ขนาด 16GB
  • แหล่งจ่ายไฟเขียงหั่นขนมที่มี 3.3V และ 5V
  • เขียงหั่นขนม
  • แหล่งจ่ายไฟ 12V

เซ็นเซอร์:

  • DHT11: เซ็นเซอร์ความชื้นและอุณหภูมิ
  • BH1750: เซ็นเซอร์วัดความเข้มแสง
  • เซ็นเซอร์ความชื้นในดิน
  • MCP3008

ส่วนประกอบแอคชูเอเตอร์:

  • ปั้มน้ำ 220V
  • แถบ LED 12V
  • โมดูลรีเลย์ Velleman
  • เคล็ดลับ 50: ทรานซิสเตอร์ NPN
  • จอ LCD-moduke 16X2
  • PCF8574a

ตัวต้านทาน:

  • ตัวต้านทาน 3 x 330 โอห์ม
  • ตัวต้านทาน 1 x 5k โอห์ม
  • ตัวต้านทาน 2 x 10k Ohm
  • ตัวต้านทาน 1 x 1k โอห์ม
  • ตัวต้านทานโพเทนชิโอ 1 x 10k

วัสดุ:

  • เรือนกระจกสำเร็จรูป/กระถางต้นไม้
  • กล่องแยก
  • ขวดน้ำพลาสติก
  • หมุน
  • สายจัมเปอร์+สายธรรมดา
  • Skrews
  • บัดกรีดีบุก + ท่อหดความร้อน
  • เทปกาวสองหน้า
  • สี

เครื่องมือ:

  • ปืนกาว
  • เจาะ
  • ใบเลื่อย
  • หัวแร้ง
  • เครื่องตัดกล่อง
  • แปรงทาสี

สิ่งที่เรียบร้อยเกี่ยวกับโครงการนี้คือสามารถขยายหรือลดความซับซ้อนได้โดยการเพิ่ม/ลบส่วนประกอบและปรับแต่งโค้ดเล็กน้อย ตัวอย่างเช่น การเปลี่ยนปั๊ม 220V เป็นปั๊ม 12V คุณสามารถถอดอะแดปเตอร์ไฟออกจากอุปกรณ์ได้

ขั้นตอนที่ 2: Fritzing Schematic

Fritzing Schematic
Fritzing Schematic
Fritzing Schematic
Fritzing Schematic

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

คำอธิบายทั่วไปเกี่ยวกับวิธีการทำงานของส่วนประกอบ:

  • DHT11 วัดความชื้นในอากาศเป็น % และอุณหภูมิเป็น °C การสื่อสารกับมันถูกจัดการโดย I2C bu
  • BH1750 วัดความเข้มของแสงเป็นลักซ์ การสื่อสารถูกจัดการโดยบัส I2C
  • เซ็นเซอร์ความชื้นในดินสร้างสัญญาณดิจิตอลที่แปลงโดย MCP3008 เป็นสัญญาณดิจิตอลที่อ่านได้สำหรับ Raspberry Pi
  • โมดูล LCD ขนาด 16x2 จะแสดงที่อยู่ IP จาก Pi ทีละรายการ มันเชื่อมต่อกับ PCF8574a ที่รับสัญญาณจาก Raspberry Pi ที่จะแปลงเป็นสัญญาณจำนวนหนึ่งสำหรับบิตพินของจอแสดงผล หมุด E และ RS จาก LCD เชื่อมต่อโดยตรงกับ Pi ตัวต้านทานโพเทนชิโอจะกำหนดความสว่างของหน้าจอ
  • ปั๊มน้ำเชื่อมต่อกับรีเลย์ที่อยู่ระหว่างมันกับแหล่งจ่ายไฟ/ซ็อกเก็ต 220V Raspberry Pi สามารถส่งสัญญาณไปยังรีเลย์เพื่อปิดวงจรไฟฟ้าและเปิดปั๊ม
  • แถบ LED เชื่อมต่อกับแหล่งจ่ายไฟ 12V และ TIP 50 (ทรานซิสเตอร์ NPN) ที่สลับกระแสไฟฟ้า ตัวต้านทาน 1k Ohm ใช้เพื่อจำกัดกำลังดึงจาก Raspberry Pi มิฉะนั้น มันอาจจะทอดกรอบพิเศษ

ขั้นตอนที่ 3: เตรียม Raspberry Pi

เตรียมราสเบอร์รี่ Pi
เตรียมราสเบอร์รี่ Pi

หากคุณยังไม่มี คุณจะต้องใส่หนึ่งในอิมเมจ Raspberry Pi OS ลงในการ์ด SD ฉันไม่แนะนำให้ใช้ Lite เนื่องจากสิ่งนี้ทำให้ฉันมีปัญหาในตอนเริ่มต้น หลังจากนั้น คุณจะต้องตรวจสอบให้แน่ใจว่า Pi ของคุณเป็นปัจจุบันโดยใช้คำสั่งต่อไปนี้ในขณะที่ Pi เชื่อมต่อกับอินเทอร์เน็ต:

  1. sudo apt-get update
  2. sudo apt-get อัพเกรด

หลังจากนั้น คุณสามารถเปิดใช้งานหรือติดตั้งแพ็คเกจเพื่อให้โครงการทำงานได้ ผ่านทาง raspi-config หรือคำสั่ง

  • SPI
  • I2C
  • MySQL: ขั้นตอนต่อไป
  • SocketIO: pip ติดตั้ง flask-socketio

หลังจากการตั้งค่า คุณสามารถเพิ่มไฟล์ที่จำเป็นซึ่งเขียนด้วย html, CSS, Javascript และ Python รหัสทั้งหมดของฉันสามารถพบได้ในที่เก็บ GitHub ของฉัน

ขั้นตอนที่ 4: โมเดลฐานข้อมูล - MySQL

โมเดลฐานข้อมูล - MySQL
โมเดลฐานข้อมูล - MySQL

ด้านบนคุณจะเห็นไดอะแกรม ERD ซึ่งโฮสต์ผ่าน MariaDB ฉันแนะนำให้ปฏิบัติตามคู่มือการติดตั้ง MariaDB นี้ ไม่เพียงแต่เพื่อติดตั้ง MariaDB แต่ยังต้องแน่ใจว่า Pi ของคุณได้รับการปกป้อง

สำหรับคนที่ต้องการทำความเข้าใจ ฐานข้อมูลทำงานดังนี้:

ตัวสลับการวัดและตัวกระตุ้นจะถูกจัดเก็บเป็นแถวภายในตาราง Metingen

  • metingId = ID ของการวัด/สลับแถว
  • deviceId = ID ของอุปกรณ์ที่รับผิดชอบแถวนี้ในตาราง
  • waarde = ค่าของการวัดเซ็นเซอร์หรือการสลับแอคชูเอเตอร์

    • เซ็นเซอร์: ค่าของการวัดในหน่วยที่เกี่ยวข้อง
    • แอคทูเอเตอร์: 0 = ปิด และ 1 = ON
  • commentaar = ความคิดเห็นที่ใช้ในการเพิ่มข้อมูลเพิ่มเติม เช่น ข้อผิดพลาด
  • datum = วันที่และเวลาที่การวัด/สลับเกิดขึ้น

การตั้งค่าสำหรับอุปกรณ์จะถูกเก็บไว้ในการตั้งค่า

  • settingId = ID ของแถวนี้และค่าที่ตั้งไว้
  • deviceID = ID ของอุปกรณ์/เซ็นเซอร์ที่เกี่ยวข้อง
  • waarde = ค่าของการตั้งค่า
  • type = ชนิดของ settin ค่าสูงสุดหรือต่ำสุด?

สุดท้ายแต่ไม่ท้ายสุด ตารางอุปกรณ์จะเก็บข้อมูลเกี่ยวกับเซ็นเซอร์และแอคทูเอเตอร์

  • deviceId = ID ของอุปกรณ์ในตารางนี้
  • naam = ชื่ออุปกรณ์/ส่วนประกอบ
  • Merk = แบรนด์
  • prijs = ราคาของส่วนประกอบ
  • beschrijving = สรุปส่วนประกอบ
  • eenheid = หน่วยสำหรับค่าที่วัดได้
  • typeDevice = ระบุว่าส่วนประกอบนั้นเป็นเซ็นเซอร์หรือตัวกระตุ้น

ขั้นตอนที่ 5: ส่วนหน้า: การตั้งค่าเว็บเซิร์ฟเวอร์

ส่วนหน้า: การตั้งค่าเว็บเซิร์ฟเวอร์
ส่วนหน้า: การตั้งค่าเว็บเซิร์ฟเวอร์

Pi ต้องการให้คุณติดตั้งเว็บเซิร์ฟเวอร์ Apache เพื่อเรียกใช้เว็บเซิร์ฟเวอร์สำหรับอุปกรณ์นี้ สามารถทำได้ด้วยคำสั่งต่อไปนี้:

sudo apt-get ติดตั้ง apache2

เมื่อเสร็จแล้ว คุณสามารถไปที่โฟลเดอร์: /var/www/html ที่นี่คุณจะต้องวางรหัสทั้งหมดของส่วนหน้า หลังจากนั้นคุณสามารถเข้าถึงเว็บไซต์ได้โดยเรียกดูที่อยู่ IP

ขั้นตอนที่ 6: แบ็กเอนด์

ในการเรียกใช้แบ็กเอนด์ คุณจะต้องเรียกใช้ไฟล์ app.py ไม่ว่าจะด้วยตนเองหรือโดยการสร้างบริการบน Pi เพื่อให้เริ่มทำงานโดยอัตโนมัติ

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

คำอธิบายสั้น ๆ:

app.py: ไฟล์หลักที่รวมฐานข้อมูล รหัสฮาร์ดแวร์ และรหัสส่วนหลัง

config.py: ไฟล์คอนฟิกูเรชันสำหรับ databaseRepositories

Repositories: สำหรับการเข้าถึงที่เก็บข้อมูล

  • ผู้ช่วย

    • devices_id: คลาสเพื่อช่วยระบุข้อมูลอุปกรณ์ในฐานข้อมูล
    • lcd: เพื่อเรียกใช้ PCF และ LCD
    • แอคทูเอเตอร์: คลาสสำหรับการรันแอคทูเอเตอร์
    • เซ็นเซอร์: คลาสสำหรับใช้งานเซ็นเซอร์

ขั้นตอนที่ 7: การวางแถบ LED

การวางแถบ LED
การวางแถบ LED

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

ขั้นตอนที่ 8: การวางท่อ

วางท่อ
วางท่อ

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

ขั้นตอนที่ 9: การวาง LCD

การวาง LCD
การวาง LCD

ฉันใช้ใบเลื่อยตัดที่ฝากล่องรวมสัญญาณทั้งหมด สร้างช่องเปิดที่ใหญ่พอที่จอแสดงผลจะลอดผ่านได้ แต่เล็กพอที่ PCB จะอยู่ด้านหลัง ต่อมาก็ติดฝาโดยเอียง

จอ LCD จะแสดงที่อยู่ IP ของ Raspberry Pi ทำให้รู้ว่าที่อยู่ใดที่คุณสามารถใช้ท่องเว็บไซต์ได้

ขั้นตอนที่ 10: การวางเซ็นเซอร์และเชื่อมต่อแถบ LED

การวางเซ็นเซอร์และการเชื่อมต่อแถบ LED
การวางเซ็นเซอร์และการเชื่อมต่อแถบ LED
การวางเซ็นเซอร์และการเชื่อมต่อแถบ LED
การวางเซ็นเซอร์และการเชื่อมต่อแถบ LED

ฉันบัดกรีการเชื่อมต่อระหว่างสายไฟและวางตัวต้านทานไว้ในสายไฟโดยใช้ท่อหดด้วยความร้อนเพื่อแยกพวกมันออกจากกัน

รูถูกตัดที่ด้านข้างของฝาและด้านล่างของเรือนกระจกเพื่อติดแกนหมุน ซึ่งฉันดึงสายไฟสำหรับเซ็นเซอร์และแถบ LED

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

ขั้นตอนที่ 11: การเดินสาย Pi

การเดินสายไฟ Pi
การเดินสายไฟ Pi
การเดินสายไฟ Pi
การเดินสายไฟ Pi
การเดินสายไฟ Pi
การเดินสายไฟ Pi

ฉันเจาะรูที่ด้านข้างของกล่องรวมสัญญาณเพื่อให้สายไฟผ่านได้ในภายหลัง

หลังจากนั้น ฉันวางเขียงหั่นขนม (ด้วย T-cobbler, PCF8574a, MCP3008, ความต้านทานที่ปรับได้และ TIP50), รีเลย์ และ Raspberry Pi ที่ด้านล่างของกล่องรวมสัญญาณ ซึ่งปิดด้วยเทปปิดตาสองด้าน แหล่งจ่ายไฟไม่พอดีกับเขียงหั่นขนม ดังนั้นฉันจึงต้องวางไว้ที่ด้านข้างและใช้สายจัมเปอร์เพื่อเชื่อมต่อกับเขียงหั่นขนม

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

ขั้นตอนที่ 12: การทำภาชนะใส่น้ำ

ทำภาชนะใส่น้ำ
ทำภาชนะใส่น้ำ

ฉันทำภาชนะใส่น้ำจากขวดน้ำพลาสติกขนาด 1 ลิตรโดยการตัดส่วนบนของขวดด้วยเครื่องตัดกล่องแล้วทาสีเพื่อให้ดูดีขึ้น จากนั้นจึงวางเครื่องสูบน้ำไว้ภายใน สาเหตุของกฎของการสื่อสารกับเรือ น้ำอาจไหลผ่านท่อได้ด้วยตัวเอง แต่การยกท่อขึ้นช่วยแก้ปัญหาได้

ขั้นตอนที่ 13: ผลลัพธ์สุดท้าย

ผลสุดท้าย
ผลสุดท้าย
ผลสุดท้าย
ผลสุดท้าย

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

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

แนะนำ: