
สารบัญ:
- ขั้นตอนที่ 1: วัสดุสิ้นเปลือง
- ขั้นตอนที่ 2: Fritzing Schematic
- ขั้นตอนที่ 3: เตรียม Raspberry Pi
- ขั้นตอนที่ 4: โมเดลฐานข้อมูล - MySQL
- ขั้นตอนที่ 5: ส่วนหน้า: การตั้งค่าเว็บเซิร์ฟเวอร์
- ขั้นตอนที่ 6: แบ็กเอนด์
- ขั้นตอนที่ 7: การวางแถบ LED
- ขั้นตอนที่ 8: การวางท่อ
- ขั้นตอนที่ 9: การวาง LCD
- ขั้นตอนที่ 10: การวางเซ็นเซอร์และเชื่อมต่อแถบ LED
- ขั้นตอนที่ 11: การเดินสาย Pi
- ขั้นตอนที่ 12: การทำภาชนะใส่น้ำ
- ขั้นตอนที่ 13: ผลลัพธ์สุดท้าย
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

ฉันเป็นนักเรียนจากเทคโนโลยีมัลติมีเดียและการสื่อสารที่ 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


แผงวงจรทดลองและแบบไฟฟ้าสำหรับอุปกรณ์แสดงไว้ด้านบน ที่นี่คุณสามารถดูว่าส่วนประกอบทั้งหมดเชื่อมต่อกันอย่างไร
คำอธิบายทั่วไปเกี่ยวกับวิธีการทำงานของส่วนประกอบ:
- 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

หากคุณยังไม่มี คุณจะต้องใส่หนึ่งในอิมเมจ Raspberry Pi OS ลงในการ์ด SD ฉันไม่แนะนำให้ใช้ Lite เนื่องจากสิ่งนี้ทำให้ฉันมีปัญหาในตอนเริ่มต้น หลังจากนั้น คุณจะต้องตรวจสอบให้แน่ใจว่า Pi ของคุณเป็นปัจจุบันโดยใช้คำสั่งต่อไปนี้ในขณะที่ Pi เชื่อมต่อกับอินเทอร์เน็ต:
- sudo apt-get update
- sudo apt-get อัพเกรด
หลังจากนั้น คุณสามารถเปิดใช้งานหรือติดตั้งแพ็คเกจเพื่อให้โครงการทำงานได้ ผ่านทาง raspi-config หรือคำสั่ง
- SPI
- I2C
- MySQL: ขั้นตอนต่อไป
- SocketIO: pip ติดตั้ง flask-socketio
หลังจากการตั้งค่า คุณสามารถเพิ่มไฟล์ที่จำเป็นซึ่งเขียนด้วย html, CSS, Javascript และ Python รหัสทั้งหมดของฉันสามารถพบได้ในที่เก็บ GitHub ของฉัน
ขั้นตอนที่ 4: โมเดลฐานข้อมูล - 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 หนึ่งชิ้นแล้วติดไว้ที่ด้านบนของกล่องเรือนกระจก แถบที่ฉันใช้สามารถตัดได้หลายตำแหน่งแล้วเชื่อมต่อใหม่ คุณจึงวางแถบหลายเส้นแล้วเชื่อมต่ออีกครั้งในภายหลังผ่านสายไฟ ซึ่งช่วยให้มีพื้นที่เพิ่มขึ้น
ขั้นตอนที่ 8: การวางท่อ

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

ฉันใช้ใบเลื่อยตัดที่ฝากล่องรวมสัญญาณทั้งหมด สร้างช่องเปิดที่ใหญ่พอที่จอแสดงผลจะลอดผ่านได้ แต่เล็กพอที่ PCB จะอยู่ด้านหลัง ต่อมาก็ติดฝาโดยเอียง
จอ LCD จะแสดงที่อยู่ IP ของ Raspberry Pi ทำให้รู้ว่าที่อยู่ใดที่คุณสามารถใช้ท่องเว็บไซต์ได้
ขั้นตอนที่ 10: การวางเซ็นเซอร์และเชื่อมต่อแถบ LED


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



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

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


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

DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)

Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)

Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)

4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)

ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-