สารบัญ:

Raspberry Pi Reboot Router: 3 ขั้นตอน
Raspberry Pi Reboot Router: 3 ขั้นตอน

วีดีโอ: Raspberry Pi Reboot Router: 3 ขั้นตอน

วีดีโอ: Raspberry Pi Reboot Router: 3 ขั้นตอน
วีดีโอ: How To Make TOR Wi-Fi Router With Raspberry Pi 3 | Turn Your Raspberry Pi into Tor Wi-Fi Router! 2024, พฤศจิกายน
Anonim
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router
Raspberry Pi Reboot Router

คุณเคยสังเกตไหมว่าคุณไม่ได้เชื่อมต่อกับอินเทอร์เน็ตอีกต่อไป?

มันน่าหงุดหงิดไหมที่จะตื่นเช้าและต้อง 'รีบูต' เราเตอร์เพื่อรับอินเทอร์เน็ตกลับคืนมา?

สิ่งนี้เกิดขึ้นกับฉันบ่อยกว่าที่ฉันต้องการให้มันเกิดขึ้น

เมื่อต้นปีนี้ ฉันออกไปนอกเมืองเป็นเวลา 3 สัปดาห์ และในวันแรกเราเตอร์ของฉันถูกตัดการเชื่อมต่อจากอินเทอร์เน็ต! ซึ่งหมายความว่าฉันไม่มีส่วนเกี่ยวข้องกับสิ่งต่างๆ ในบ้านที่ต้อง "เช็คอิน" เป็นระยะ เช่น Nest thermostat, กล้อง Arlo…เนื่องจากฉันไม่อยู่บ้าน ฉันจึงไม่สามารถรีสตาร์ทเราเตอร์ได้ ฉันไม่ต้องการรบกวนเพื่อนบ้านให้ผ่านระบบรักษาความปลอดภัยของฉัน แล้วค้นหาเราเตอร์ของฉันแล้วรีสตาร์ท ฉันยังคิดที่จะโทรหาบริษัทพลังงานและให้พวกเขาตัดไฟไปที่บ้านของฉันประมาณ 5 นาที - S. O. ของฉัน ไม่อนุมัติ..:(เมื่อฉันกลับมา ฉันเริ่มค้นหาวิธีแก้ปัญหาที่ดี แต่ไม่พบสิ่งใดที่ครบถ้วนเพียงพอสำหรับสิ่งที่ฉันต้องการ ตอนแรกฉันเพิ่งซื้อรางปลั๊กไฟแบบตั้งเวลาแบบดิจิตอลและตั้งค่าให้ปิดเราเตอร์เวลา 2:00 น. เป็นเวลา 5 นาที น่าเสียดายที่สองสามเช้าที่ฉันไม่มีอินเทอร์เน็ต - การตรวจสอบบันทึกของเราเตอร์สำหรับวันเหล่านั้นระบุว่าอินเทอร์เน็ต 'ตัดการเชื่อมต่อ' ประมาณ 4:00 น. และเราเตอร์ของฉันจะไม่เชื่อมต่อเว้นแต่ฉันจะรีสตาร์ท

การมี Raspberry Pi พิเศษอยู่รอบๆ และทักษะของ python บางอย่าง ฉันจึงตัดสินใจดูว่ามันจะช่วยแก้ปัญหาของฉันได้อย่างไร และคิดวิธีแก้ปัญหานี้

ฉันทดสอบและติดตั้งแล้วดีมาก!

โดยทั่วไป Raspberry Pi จะตรวจสอบการเชื่อมต่ออินเทอร์เน็ตทุกๆ 2 นาทีผ่าน 'ping' ไปยัง 2 เว็บไซต์ที่แตกต่างกัน ตราบใดที่พวกเขาตอบสนองอย่างน้อยหนึ่งคนเราทุกคนก็ดี หากไม่มี 'ping' ส่งคืน Pi จะปิดไฟไปยังฮับ USB ภายในซึ่งจะทำให้ Iot Power Relay ปิดเราเตอร์ หลังจากผ่านไป 2 นาที Pi จะเปิดฮับ USB ภายในทำให้ Iot Power Relay เปิดสวิตช์เราเตอร์ จากนั้นรอ 4 นาทีก่อนที่จะดำเนินการตรวจสอบการเชื่อมต่ออินเทอร์เน็ต 2 นาทีต่อ

ฉันต้องพิจารณาด้วยว่าพื้นที่ของฉันอาจมีไฟดับและอินเทอร์เน็ตกำลังจะหยุดทำงานชั่วขณะ - หายาก แต่มันเกิดขึ้น (อย่างน้อยก็ในพื้นที่ของฉัน…) และฉันไม่ต้องการให้เราเตอร์รีสตาร์ททุกๆ 6 ถึง 8 นาที ดังนั้นฉันจึงตั้งค่าสถานะที่จะเลื่อนการรีสตาร์ทครั้งถัดไปเป็นเวลา 1 ชั่วโมงในกรณีนี้

เสบียง

รายการอุปกรณ์:

  1. Iot Power Relay สำหรับ Raspberry Pi (ภาพด้านบน)
  2. ขั้วต่อขั้วต่อแบบสกรู USB 2.0 A (หากคุณจะทำ USB -> สายไฟสตริปเอง ดังภาพด้านบน)
  3. สายเคเบิลที่มีสายไฟนำไฟฟ้า 2 เส้นขึ้นไป หรือสาย USB เก่า/เสริมที่คุณสามารถใช้ได้ ฉันใช้สายปลั๊กสเตอริโอแบบเก่าและตัดปลั๊กออก
  4. Raspberry Pi Model 3+ (คุณสามารถใช้ Model 4 และควบคุมแต่ละพอร์ตได้ - ฉันใช้ Model 3)

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

ขั้นตอนที่ 1: สร้างและเชื่อมต่อฮาร์ดแวร์

สร้างและเชื่อมต่อฮาร์ดแวร์
สร้างและเชื่อมต่อฮาร์ดแวร์

ฉันสร้างสายเคเบิลเพื่อเชื่อมต่อ Pi กับรีเลย์ไฟฟ้า

ฉันใช้แผงขั้วต่อแบบสกรู USB ที่มีสายไฟ 2 เส้นเชื่อมต่อกับช่อง + และ gnd คุณควรจะสามารถเห็นได้บนตัวเชื่อมต่อ ดูภาพที่มีลูกศรสีแดง(+) และสีขาว(-) ไปที่ช่อง

ฉันเชื่อมต่อปลายอีกด้านหนึ่งเข้ากับรีเลย์กำลัง ส่วนสีเขียวที่ด้านข้างของรีเลย์กำลังดึงออกมา จากนั้นคุณสามารถเสียบสายไฟเข้าไปในช่องเสียบแล้วขันสกรูให้แน่น ดูภาพที่มีลูกศรสีแดง (+) และสีขาว (-) ไปที่สายไฟ

หมายเหตุ: หากคุณใช้สาย USB ที่มีอยู่ คุณมักจะมีสาย 4 เส้นที่ปลายอีกด้านหนึ่ง - สายสีแดงคือ (+5v) และสายสีดำคือสายกราวด์ (-) คุณจะใช้ 2 ตัวนั้นสำหรับ Power Relay เท่านั้น

สำหรับการทดสอบ ฉันเชื่อมต่อโคมไฟตั้งโต๊ะเข้ากับเต้าเสียบที่มีเครื่องหมาย 'ปิดตามปกติ' สิ่งนี้ถูกควบคุมโดยสถานะพลังงาน USB ฉันเสียบ Raspberry Pi เข้ากับเต้ารับ 'เปิดตลอดเวลา' แล้วเสียบปลั๊กและเปิดเครื่องสำหรับขั้นตอนต่อไป

ขั้นตอนที่ 2: ติดตั้งซอฟต์แวร์

ตั้งค่า Pi:

มีเว็บไซต์สองสามแห่งที่จะแนะนำคุณในการตั้งค่า RPi ของคุณเป็นครั้งแรกหากจำเป็น

Life Hacker

Raspberry Pi Org

ฉันตั้งค่า 'หัวขาด' และใช้ VNC เพื่อเชื่อมต่อกับมัน ลิงก์ด้านบนแสดงวิธีการดำเนินการนี้

การตั้งค่าซอฟต์แวร์:

  1. ติดตั้ง uhubctl (ดู https://github.com/mvp/uhubctl) ที่จะใช้ในการปิดและเปิดฮับ usb
  2. ดาวน์โหลดและติดตั้งซอฟต์แวร์ที่ฉันเขียนจากหน้า GitHub ของฉัน: ซอฟต์แวร์ RPi Router Reboot
  3. ตั้งค่าและลงทะเบียน internet-monitor.service หากคุณต้องการเรียกใช้บริการนี้เมื่อ Raspberry Pi เริ่มทำงาน

ขั้นตอนที่ 3: รายละเอียดการทดสอบและการใช้งาน

โปรแกรม python หลัก rpi-internet-monitor.py สามารถเรียกใช้ด้วยพารามิเตอร์ 1 หรือ 2 ตัวสำหรับการดีบักและการทดสอบ

เปิดเทอร์มินัลเซสชันในโฟลเดอร์ที่คุณใส่รหัสและรันคำสั่งต่อไปนี้:

:~/Documents/RebootRouter $ python3 rpi-internet-monitor.py -debug -test

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

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

ฉันตั้งค่าบริการเพื่อเรียกใช้เมื่อบูตดังนั้นจึงทำงานบน Raspberry Pi ของฉันเสมอ

เปิด internet-monitor.service และแก้ไขบรรทัด ExecStart และ WorkingDirectory ด้วยเส้นทางแบบเต็มของคุณไปยังโค้ด python บันทึกไฟล์.

คัดลอกไฟล์ไปยังโฟลเดอร์ systemd/system:

:~/Documents/RebootRouter $ sudo cp internet-monitor.service /etc/systemd/system/internet-monitor.service

ทดสอบว่าบริการเริ่มต้นโดยไม่มีข้อผิดพลาด:

:~/Documents/RebootRouter $ sudo systemctl start internet-monitor.service

เปิดใช้งานบริการเพื่อเริ่มต้นในเวลาบูต:

:~/Documents/RebootRouter $ sudo systemctl enable internet-monitor.service

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

ฉันทำการทดสอบอีกครั้งหลังจากเชื่อมต่อทุกอย่างแล้ว - ฉันถอดสายอินเทอร์เน็ตที่ผนังออกแล้วรอ เราเตอร์ก็ดับแล้วเปิดใหม่นั่นเอง มันเปิดอยู่และหลังจากนั้นประมาณ 10 นาทีฉันก็ต่อสายเคเบิลที่ผนังอีกครั้งและมีอินเทอร์เน็ต - จนถึงตอนนี้ก็ใช้งานได้ดี….:)

แนะนำ: