สารบัญ:

การควบคุมบอร์ดรีเลย์จาก Octoprint บน Raspberry Pi: 5 ขั้นตอน
การควบคุมบอร์ดรีเลย์จาก Octoprint บน Raspberry Pi: 5 ขั้นตอน

วีดีโอ: การควบคุมบอร์ดรีเลย์จาก Octoprint บน Raspberry Pi: 5 ขั้นตอน

วีดีโอ: การควบคุมบอร์ดรีเลย์จาก Octoprint บน Raspberry Pi: 5 ขั้นตอน
วีดีโอ: Octoprint plugins for better and safer printing - PSU relay control 2024, มิถุนายน
Anonim
การควบคุมบอร์ดรีเลย์จาก Octoprint บน Raspberry Pi
การควบคุมบอร์ดรีเลย์จาก Octoprint บน Raspberry Pi

ดังนั้นคุณจึงมีราสเบอร์รี่ 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. ของคุณ

การเชื่อมต่อบอร์ดรีเลย์กับ Raspberry Pi. ของคุณ
การเชื่อมต่อบอร์ดรีเลย์กับ 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 ของคุณและกำหนดค่า

SSH ไปยัง Raspberry Pi ของคุณและกำหนดค่า
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 เพื่อควบคุมรีเลย์ของคุณ

เพิ่มตัวเลือกเมนูใหม่ให้กับ Octoprint เพื่อควบคุมรีเลย์ของคุณ
เพิ่มตัวเลือกเมนูใหม่ให้กับ Octoprint เพื่อควบคุมรีเลย์ของคุณ
เพิ่มตัวเลือกเมนูใหม่ให้กับ Octoprint เพื่อควบคุมรีเลย์ของคุณ
เพิ่มตัวเลือกเมนูใหม่ให้กับ 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

รีบูตราสเบอร์รี่ของคุณและตรวจสอบว่าทำงานอย่างถูกต้อง

แนะนำ: