สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: เชื่อมต่อบอร์ดรีเลย์กับ Raspberry Pi. ของคุณ
- ขั้นตอนที่ 2: SSH ไปยัง Raspberry Pi ของคุณและกำหนดค่า
- ขั้นตอนที่ 3: เพิ่มตัวเลือกเมนูใหม่ให้กับ Octoprint เพื่อควบคุมรีเลย์ของคุณ
- ขั้นตอนที่ 4: การเดินสายไฟฟ้าแรงสูง (ระวัง)
- ขั้นตอนที่ 5: กำหนดค่าเอาต์พุต GPIO และป้องกันไม่ให้รีเลย์ของคุณเปิดเมื่อ Raspberry Pi Reboots
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ดังนั้นคุณจึงมีราสเบอร์รี่ pi กับ Octoprint และยังมีการตั้งค่ากล้องอีกด้วย สิ่งสุดท้ายที่คุณต้องการคือวิธีการเปิดและปิดเครื่องพิมพ์ 3 มิติ และอาจควบคุมแสงได้ คำแนะนำนี้เหมาะสำหรับคุณ!
นี่เป็นแรงบันดาลใจและเรียบง่ายจาก:
ตรวจสอบให้แน่ใจว่าได้ตรวจสอบคำสั่งก่อนหน้าของฉันที่ฉันสร้างกล่องหุ้ม / ตู้ดูดควันสำหรับเครื่องพิมพ์ 3d ของฉันเนื่องจากเป็นผลสืบเนื่อง
ทดสอบด้วย:
Linux octopi 4.14.79-v7+ #1159 SMP อา. 4 พ.ย. 17:50:20 GMT 2018 armv7l GNU/Linux
รุ่น OctoPrint: 1.3.11 รุ่น OctoPi: 0.16.0
ข้อจำกัดความรับผิดชอบ: ฉันไม่รับผิดชอบต่อสิ่งเลวร้ายที่อาจเกิดขึ้นโดยคุณทำตามคำแนะนำเหล่านี้
เสบียง
- บอร์ดรีเลย์ 5V พร้อมออปโตคัปเปลอร์ (อีเบย์)
- สายจัมเปอร์บางส่วน
- กล่องไฟฟ้าพร้อมเต้ารับ (อุปกรณ์เสริม)
ขั้นตอนที่ 1: เชื่อมต่อบอร์ดรีเลย์กับ Raspberry Pi. ของคุณ
แม้ว่าแผงรีเลย์จะทำขึ้นสำหรับลอจิก 5V แต่จะทริกเกอร์อย่างถูกต้องที่ 3.3V เมื่อรู้อย่างนี้แล้ว ฉันสามารถหลีกเลี่ยงการดัดแปลงใดๆ กับบอร์ดเดิมได้
ชิลด์รีเลย์ Raspberry
------------ --------- คอยส์: JD-VCC - 5V VCC - ไม่ได้เชื่อมต่อ GND - GND Logic: GND - ไม่ได้เชื่อมต่อ IN1 - GPIO #23 IN2 - GPIO # 18 VCC - 3.3V
สิ่งสำคัญคือต้องถอดจัมเปอร์ระหว่าง JD-VCC และ VCC หากคุณมี สิ่งนี้จะช่วยให้ป้อน 5V สำหรับคอยส์ในขณะที่ป้อน 3.3V สำหรับอินพุตลอจิก และเนื่องจาก GND ทั้งสองเชื่อมต่อเข้าด้วยกันภายใน เราจึงเชื่อมต่อหนึ่งในนั้นเท่านั้น
ขั้นตอนที่ 2: SSH ไปยัง Raspberry Pi ของคุณและกำหนดค่า
ใช้ putty หรือไคลเอนต์ ssh ที่คุณชื่นชอบ เชื่อมต่อกับ raspberry pi ของคุณโดยใช้ที่อยู่ IP เดียวกันกับที่คุณใช้เพื่อเข้าถึง Octoprint ชื่อผู้ใช้เริ่มต้นคือ pi และรหัสผ่านคือ raspberry
สิ่งแรกที่ฉันจะทำคือตรวจสอบว่ารีเลย์ตอบสนองอย่างถูกต้อง ในการดำเนินการนี้ ให้ออกคำสั่งเหล่านี้
gpio -g โหมด 18 ออก
gpio -g โหมด 23 ออก gpio -g เขียน 18 0 gpio -g เขียน 23 0 gpio -g เขียน 18 1 gpio -g เขียน 23 1
2 บรรทัดแรกอนุญาตให้ตั้งค่า GPIO เป็นเอาต์พุต จากนั้นคุณสลับเปิดและปิดเอาต์พุต ที่ควรจะทำให้รีเลย์คลิก เมื่ออินพุตต่ำ (0) รีเลย์ควรเปิดและเมื่ออินพุตสูง (1) ควรปิด ใช่ มันค่อนข้างจะขัดกับสัญชาตญาณเล็กน้อย แต่ก็เป็นอย่างนั้น!
ขั้นตอนที่ 3: เพิ่มตัวเลือกเมนูใหม่ให้กับ Octoprint เพื่อควบคุมรีเลย์ของคุณ
คุณจะต้องแก้ไขไฟล์ config.yaml:
sudo nano.octoprint/config.yaml
ภายในไฟล์นั้น ค้นหาส่วน "ระบบ" และเพิ่มสิ่งต่อไปนี้:
ระบบ:
การดำเนินการ: - การดำเนินการ: คำสั่งบนเครื่องพิมพ์: gpio -g เขียน 18 0 ชื่อ: เปิดเครื่องพิมพ์ - การดำเนินการ: คำสั่งปิดเครื่องพิมพ์: gpio -g เขียน 18 1 ยืนยัน: คุณกำลังจะปิดเครื่องพิมพ์ ชื่อ: ปิดเครื่องพิมพ์ - การกระทำ: คำสั่ง lon: gpio -g เขียน 23 0 ชื่อ: LightOn - การกระทำ: loff คำสั่ง: gpio -g เขียน 23 1 ชื่อ: LightOff
หลังจากบันทึกไฟล์ (ctrl+x) ให้รีบูต raspberry pi:
sudo รีบูต
ตอนนี้คุณควรจะสามารถควบคุมรีเลย์จากเว็บอินเตอร์เฟสของ Octoprint ได้แล้ว!
ขั้นตอนที่ 4: การเดินสายไฟฟ้าแรงสูง (ระวัง)
รีเลย์ทำหน้าที่เป็นสวิตช์ มีเพียงคอนโทรลเลอร์เท่านั้นที่ทริกเกอร์ ในกรณีนี้คือ raspberry pi สวิตช์ประกอบด้วยแม่เหล็กไฟฟ้าที่จะเชื่อมต่อหมุดเข้าด้วยกัน นั่นคือเสียงคลิกที่คุณได้ยิน
สำหรับการเดินสาย คุณมีทางเลือกสองทาง ไม่ว่าคุณจะตัดสายไฟของแหล่งจ่ายไฟเครื่องพิมพ์ 3 มิติเส้นใดเส้นหนึ่งแล้วเชื่อมต่อปลายเข้ากับรีเลย์ หรือสร้างเต้ารับสำหรับสิ่งนั้น ฉันชอบวิธีที่สอง เพราะวิธีนี้จะช่วยให้ย้ายเครื่องพิมพ์ได้ง่ายขึ้น ฉันจะใช้เต้าเสียบที่สองเพื่อเชื่อมต่อพัดลมดูดอากาศของฉัน (ดูคำแนะนำอื่น ๆ ของฉัน: เครื่องดูดควันเครื่องพิมพ์ 3D ที่ง่ายและราคาถูก)
ตอนนี้รีเลย์อีกอันคือการควบคุมแสง เป็นหลักการเดียวกัน แต่ในกรณีนี้ ผมแนะนำให้คุณตัดสายไฟเส้นหนึ่งออกจากสายไฟแล้วต่อปลายสายไฟเข้ากับรีเลย์ เป็นไปได้มากว่าจะไม่ต้องย้ายสายไฟ
ขั้นตอนที่ 5: กำหนดค่าเอาต์พุต GPIO และป้องกันไม่ให้รีเลย์ของคุณเปิดเมื่อ Raspberry Pi Reboots
เพื่อสรุปปัญหา GPIO จะถูกตั้งค่าต่ำเมื่อ raspbian รีบูต (อย่างน้อยสำหรับเคอร์เนลบางรุ่น) เห็นได้ชัดว่าเราทำอะไรไม่ได้มาก… อ้อ! แนวคิดคือการเรียกสคริปต์ที่จะเปลี่ยนกลับเมื่อบูทเสร็จสิ้นโดยตั้งค่าเอาต์พุตให้สูง
ดูฟอรั่มนี้สำหรับข้อมูลเพิ่มเติม:https://www.raspberrypi.org/forums/viewtopic.php?t=35321
แต่ที่สำคัญที่สุด สคริปต์นี้ตั้งค่า GPIO เป็นเอาต์พุต มิฉะนั้น รายการเมนูจะไม่ทำงานใน Octoprint
สร้างสคริปต์โดยใช้ nano:
nano /home/pi/setupgpio.sh
วางรหัสนี้และบันทึกไฟล์
#!/bin/sh
echo 18 > /sys/class/gpio/export echo 23 > /sys/class/gpio/export udevadm ชำระ echo high > /sys/class/gpio/gpio18/direction echo high > /sys/class/gpio/gpio23/direction
ทำให้ไฟล์ปฏิบัติการได้:
chmod +x /home/pi/setupgpio.sh
แก้ไขไฟล์ rc.local:
sudo nano /etc/rc.local
และเรียกสคริปต์ที่คุณเพิ่งสร้างขึ้นโดยเพิ่มบรรทัดเหล่านี้:
# ตั้งค่าหมุด gpio สำหรับควบคุมประตู
/home/pi/setupgpio.sh
รีบูตราสเบอร์รี่ของคุณและตรวจสอบว่าทำงานอย่างถูกต้อง