สารบัญ:

ปุ่มปิดเครื่องสำหรับ Raspberry Pi: 3 ขั้นตอน
ปุ่มปิดเครื่องสำหรับ Raspberry Pi: 3 ขั้นตอน

วีดีโอ: ปุ่มปิดเครื่องสำหรับ Raspberry Pi: 3 ขั้นตอน

วีดีโอ: ปุ่มปิดเครื่องสำหรับ Raspberry Pi: 3 ขั้นตอน
วีดีโอ: สร้างปุ่มเปิด-ปิดการทำงาน Raspberry Pi ง่ายๆใน 2 นาที 2024, พฤศจิกายน
Anonim
ปุ่มปิดเครื่องสำหรับ Raspberry Pi
ปุ่มปิดเครื่องสำหรับ Raspberry Pi

Raspberry Pi เป็นแพลตฟอร์มคอมพิวเตอร์ที่มีประโยชน์มาก ซึ่งช่วยให้สร้างแอปพลิเคชันโครงการ IoT/robots/smart-home/… สิ่งหนึ่งที่ไม่มีเมื่อเทียบกับคอมพิวเตอร์ทั่วไปคือปุ่มปิดเครื่อง แล้วเราจะสร้างมันขึ้นมาเองได้อย่างไร? เอาล่ะ มาลงมือทำกันเถอะ!

สำหรับบทช่วยสอนนี้ คุณจะต้องมีสิ่งต่อไปนี้:

  • 1 Raspberry Pi กำหนดค่าแล้วและพร้อมใช้งาน
  • 1 เขียงหั่นขนมหรือสิ่งที่จะช่วยให้คุณสร้างวงจรอิเล็กทรอนิกส์
  • 1 ปุ่มกด
  • สายจัมเปอร์ 2 เส้น

หากคุณไม่เคยใช้ Raspberry Pi มาก่อน คุณสามารถดูบทแนะนำเกี่ยวกับวิธีการกำหนดค่าและวิธีกำหนดค่าได้:

www.instructables.com/How-to-Setup-a-Raspberry-Pi-and-Start-Using-It/

ขั้นตอนที่ 1: วงจรอิเล็กทรอนิกส์

วงจรไฟฟ้า
วงจรไฟฟ้า
วงจรไฟฟ้า
วงจรไฟฟ้า
วงจรไฟฟ้า
วงจรไฟฟ้า

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

มาอธิบายอย่างรวดเร็วว่ามันทำงานอย่างไร:

  • สายสีแดงกำลังนำ 3.3V ไปที่ปลายด้านหนึ่งของปุ่มกด
  • สาย BLACK กำลังเชื่อมต่อปลายอีกด้านของปุ่มกดเข้ากับ Pi GPIO ซึ่งจะใช้เป็นอินพุต
  • โดยค่าเริ่มต้น ปุ่มจะเปิดอยู่ ดังนั้นจึงไม่มีแรงดันไฟผ่านเข้าไป ดังนั้นสาย BLACK จะอยู่ที่ 0V เมื่อไม่ได้กดปุ่ม ซึ่งหมายความว่าสถานะทางลอจิคัลของอินพุต Pi GPIO คือ 0
  • เมื่อกดปุ่ม แรงดันจะผ่าน และสาย BLACK จะเชื่อมกับ 3.3V Raspberry Pi จะเห็นแรงดันไฟฟ้า 3.3V ที่อินพุต ซึ่งสอดคล้องกับสถานะตรรกะที่ 1

ขั้นตอนที่ 2: รหัสหลาม

รหัสหลาม
รหัสหลาม

ตอนนี้วงจรพร้อมใช้งานแล้ว เราต้องเขียนโค้ดที่จะเรียกใช้ และฉันกำลังใช้ Python ในสภาพแวดล้อม PyCharm ที่นี่ ฉันกำหนดค่าปุ่มให้ปิด Raspberry Pi เฉพาะเมื่อกดเกิน 3 วินาทีเท่านั้น เหตุผลที่ฉันทำเช่นนั้นก็คือการกดโดยไม่ได้ตั้งใจเป็นเรื่องง่ายมาก และคุณไม่ต้องการปิด Pi ของคุณโดยไม่ได้ตั้งใจ

หน้าจอพิมพ์ด้านบนมาจากสภาพแวดล้อม PyCharm ของฉัน และรหัสมีดังต่อไปนี้ (โดยมีความแตกต่างเล็กน้อยในบรรทัดที่ 26 ซึ่งเชื่อมโยงกับโครงการอื่น แต่ไม่จำเป็นที่นี่):

# นี่คือรหัส aa เพื่อปิด Raspberry Pi เมื่อกดปุ่มที่กำหนดค้างไว้# โมดูลภายนอก importsimport RPi. GPIO เป็น GPIOimport timeimport os# Raspberry Pi pin & ตัวแปร definitons &hold_time = 3 # ถือเวลาเป็นวินาทีเพื่อ poweroffbutton_poweroff = 1 # ปุ่มกด เพื่อปิด Raspberry PiGPIO.setwarnings(False)GPIO.setmode(GPIO. BCM) # Broadcom pin-numbering schemeGPIO.setup(button_poweroff, GPIO. IN, pull_up_down=GPIO. PUD_DOWN) # Button set as inputwhile True: GPIO.wait_for_edge(button_poweroff, GPIO. RISING) start = time.time() time.sleep(0.2) # สลับ debounce ในขณะที่ GPIO.input(button_poweroff) == 1: time.sleep(0.01) length = time.time() - start if length > hold_time: os.system("sudo poweroff")

อย่างแรก หากคุณเชื่อมต่อปุ่มกดกับ GPIO อื่น ให้อัปเดตบรรทัดที่ 11 บนหน้าจอการพิมพ์ด้านบนด้วยอินพุต GPIO ที่เกี่ยวข้อง:

button_poweroff = GPIO_X # อัปเดตด้วย GPIO ที่ถูกต้องที่ใช้ในวงจรของคุณ

นอกจากนี้ ตัวแปร hold_time ยังให้คุณปรับเปลี่ยนเวลารอที่กระตุ้นให้ Pi ปิดตัวลงได้

ขั้นตอนที่ 3: วิธีการเปิดสคริปต์โดยอัตโนมัติหลังจากขั้นตอนการบู๊ต

วิธีการเปิดสคริปต์โดยอัตโนมัติหลังจากขั้นตอนการบู๊ต
วิธีการเปิดสคริปต์โดยอัตโนมัติหลังจากขั้นตอนการบู๊ต
วิธีการเปิดสคริปต์โดยอัตโนมัติหลังจากขั้นตอนการบู๊ต
วิธีการเปิดสคริปต์โดยอัตโนมัติหลังจากขั้นตอนการบู๊ต

ตอนนี้เรามีโค้ดพร้อมแล้ว เราก็แค่ต้องรันมัน แต่จะสะดวกกว่าถ้าเราสามารถเรียกใช้สคริปต์นี้ทุกครั้งที่ Pi กำลังบูทโดยอัตโนมัติ ดังนั้นปุ่มจะทำงานโดยที่เราไม่ต้องเรียกใช้สคริปต์ในแต่ละครั้ง มีหลายวิธีที่จะทำเช่นนั้น ฉันได้เพิ่มที่นี่หนึ่งบรรทัดในไฟล์ rc.local ซึ่งอยู่ในโฟลเดอร์ / etc / ของ Pi ของคุณ มันถูกดำเนินการเป็นส่วนหนึ่งของลำดับการบู๊ต

คุณต้องเปิดบรรทัดคำสั่งและพิมพ์คำสั่งต่อไปนี้ (หน้าจอพิมพ์ที่ 1 ด้านบน):

ซีดี /

cd ฯลฯ sudo nano rc.local

คำสั่งแรกจะนำคุณจากไดเร็กทอรี /home/pi ไปยังรูทอันหนึ่ง ซึ่งก็คือ /.

คำสั่งที่สองจะนำคุณไปยังไดเร็กทอรี /etc/

สุดท้าย ไฟล์ที่สามจะเปิดไฟล์ rc.local เป็น superuser โดยมีสิทธิ์แก้ไขแบบเต็ม ซึ่งคุณต้องแก้ไขไฟล์

เมื่ออยู่ในไฟล์ คุณเพียงแค่เพิ่มบรรทัดต่อท้ายไฟล์ แต่ก่อนคำสั่ง exit 0 (หน้าจอพิมพ์ที่ 2 ด้านบน):

# เพิ่มบรรทัดนี้ในไฟล์ rc.local เพื่อเรียกใช้สคริปต์

sudo python /home/pi/Documents/shutdown_with_hold.py &

มีบางสิ่งที่คุณจะต้องใส่ใจที่นี่:

  1. ชื่อไฟล์ของคุณ: ในบรรทัดด้านบน ฉันคิดว่าไฟล์นั้นคือ shutdown_with_hold.py แต่มันอาจเป็นอะไรก็ได้ที่คุณต้องการ เพียงแค่อัปเดตชื่อด้วยชื่อของคุณ
  2. ตำแหน่งที่คุณบันทึกไฟล์ของคุณ: ในบรรทัดด้านบน ฉันคิดว่ามันถูกบันทึกไว้ในไดเร็กทอรี /home/pi/Documents ของคุณ แต่อีกครั้งมันสามารถได้ทุกที่ คุณเพียงแค่ต้องแน่ใจว่าได้ใส่เส้นทางที่แน่นอนไปยังไฟล์ของคุณที่นี่
  3. อักขระ "&" ต่อท้าย: นี่เป็นสิ่งสำคัญ และอนุญาตให้คำสั่งนี้ทำงานในพื้นหลัง

และนั่นแหล่ะ! ดังนั้นตอนนี้ สคริปต์จะทำงานทุกครั้งที่ Pi ของคุณเปิดอยู่ และคุณจะต้องกดปุ่มค้างไว้มากกว่า 3 วินาทีเพื่อปิดเครื่อง

แนะนำ: