สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ฉันเป็นคนดูดเพื่อดูพระอาทิตย์ตกจากที่บ้าน มากเสียจนฉันได้รับ FOMO เล็กน้อยเมื่อพระอาทิตย์ตกดินและฉันไม่ได้อยู่บ้านเพื่อดู เว็บแคม IP ให้คุณภาพของภาพที่น่าผิดหวัง ฉันเริ่มมองหาวิธีที่จะปรับเปลี่ยน DSLR ตัวแรกของฉัน: Canon Rebel XTi ปี 2007 ที่ยังคงถ่ายภาพได้ดี คำแนะนำนี้ครอบคลุมอาคาร:
- เคสกันน้ำ Pelican Case
- ทริกเกอร์กล้อง Raspberry Pi และตัวอัปโหลด wifi
- เว็บเซิร์ฟเวอร์อย่างง่ายในการเข้าถึงรูปภาพจากเว็บ
มีคู่มือแนะนำอยู่หลายเล่มที่จะแสดงวิธีสร้างกล่องกันน้ำสำหรับช่วงเวลาที่ล่วงเลยไป แต่พวกเขามักจะมุ่งเน้นไปที่การตั้งค่าที่สามารถอยู่รอดในป่าได้เป็นเวลา 3-4 เดือน เนื่องจากโครงการนี้อยู่ที่บ้านของฉัน พารามิเตอร์จึงแตกต่างกันเล็กน้อย: มีทั้งกำลังไฟและ wifi ไม่จำเป็นต้องกังวลเกี่ยวกับพลังงานที่ปลดปล่อยเวลาของฉันเพื่อมุ่งใช้ wifi เพื่ออัปโหลดรูปภาพใหม่ไปยังเว็บทุกนาทีแทนที่จะดึงออกจากการ์ดด้วยตนเอง (ซึ่งเป็นเรื่องปกติในการตั้งค่าไทม์แลปส์แบบยาวแบบดั้งเดิม)
หมายเหตุ: โครงการนี้สร้างขึ้นในเดือนกันยายน 2560 และร่างคำสั่งหลังจากนั้นไม่นาน กล้องทำงานเป็นเวลา 4 เดือนจนกระทั่งไฟกระชากเผา Pi ฉันพบร่างจดหมายในวันนี้และคิดว่ามันยังคงน่าอ่านสำหรับผู้คน
ขั้นตอนที่ 1: Raspberry Pi จับภาพและอัปโหลดไปยังเว็บ
แง่มุมนี้เป็นสิ่งที่ไม่รู้จักมากที่สุดสำหรับฉัน ดังนั้นฉันจึงเริ่มที่นี่
ตอนแรกฉันเชื่อมต่อ Rebel ของฉันผ่าน USB กับแล็ปท็อปพิเศษและใช้ gphoto2 เพื่อจับภาพโดยทางโปรแกรม gphoto2 ช่วยให้คุณสามารถจับภาพในรูปแบบ JPEG หรือ RAW และโอนไปยังคอมพิวเตอร์แม่ข่ายทันทีหลังจากจับภาพ ซึ่งเป็นสิ่งสำคัญในการอัปโหลดภาพถ่ายไปยังเว็บอย่างรวดเร็ว
การพิสูจน์แนวคิดของฉันคือสคริปต์ nodejs ง่ายๆ สำหรับ Mac Mini ที่จับภาพนาทีละครั้งแล้วอัปโหลดไปยัง Amazon S3 ในการออกไปนอกบ้านด้วย Mini ฉันซื้อสาย USB ที่ยาวที่สุดที่หาได้ แต่ก็ไม่สามารถทำได้ ในขณะที่ฉันได้ยินมาว่า Raspberry Pi จะมีประโยชน์สำหรับสิ่งนี้ แต่ฉันไม่มีประสบการณ์มากนักในการใช้งาน ฉันติดตั้ง Raspbian และไขว้นิ้วและตรวจสอบการรองรับ gphoto2 สำหรับ Raspberry Pi - รองรับอย่างเต็มที่!
การทำซ้ำครั้งต่อไปเรียกร้องให้ Raspberry Pi ที่เปิดใช้งาน wifi เพื่อแทนที่ Mac Mini อย่างสมบูรณ์ ในจังหวะกว้าง:
- ดาวน์โหลดรูปภาพ Raspbian ล่าสุด
- ใส่การ์ด micro SD และยกเลิกการต่อเชื่อม (`diskutil unmountDisk /dev/disk2`)
- ใช้ยูทิลิตีบรรทัดคำสั่ง `dd` เพื่อเขียนภาพลงในการ์ด (`sudo dd if=2017-09-07-raspbian-stretch.img of=/dev/disk2 bs=4m` -- ใช้เวลา 30-60 นาที)
- แตะ `/ssh` บนระบบไฟล์เพื่อเปิดใช้งาน SSH เมื่อบูต (คำแนะนำโดยละเอียดเกี่ยวกับ SSH / Wifi)
- ติดตั้ง gphoto2 โดยใช้สคริปต์การติดตั้ง Raspberry Pi (ใช้เวลา 60-90 นาที)
- ตั้งค่าให้งาน cron ทำงานนาทีละครั้ง และใช้ gphoto2 เพื่อถ่ายภาพ
- ใช้ curl ในงาน cron เดียวกันนั้นเพื่ออัปโหลดรูปภาพไปยังเซิร์ฟเวอร์อย่างง่ายที่ทำงานบน Heroku
การกำหนดค่า cron นั้นง่ายมาก:
# ม. ดอม ม่อน ดาว คำสั่ง
* * * * * bash /home/pi/capture-upload.sh 2&1 >> /home/pi/cron.log
#!/bin/bash
# capture-upload.sh set -e gphoto2 --auto-detect --capture-image-and-download --force-overwrite curl -F "[email protected]" https://user:pass@potrerohillcam. herokuapp.com/upload
ในขณะที่การพิสูจน์แนวคิดดั้งเดิมจัดการการอัปโหลดไปยัง S3 ฉันตัดสินใจว่ามันง่ายกว่ามาก* ในการทำให้สิ่งที่ Raspberry Pi รับผิดชอบง่ายขึ้น และเริ่มต้น S3 และขั้นตอนหลังการประมวลผลไปยังเว็บเซิร์ฟเวอร์ทั่วไปที่ทำงานบน Heroku คำสั่ง curl นี้จะนำภาพที่ถ่ายมาและโพสต์ไปยังเซิร์ฟเวอร์นั้น
* ง่ายกว่านี้ฉันหมายความว่าฉันเบื่อที่จะรอแพ็คเกจคอมไพล์บน Pi
ขั้นตอนที่ 2: กล้องในเคสกันฝน Pelican
ตอนนี้ โซลูชันกล้อง/RPi สามารถถ่ายภาพและอัปโหลดได้อย่างน่าเชื่อถือ ฉันก็เริ่มทำงานกับเคสที่จะดูแลอุปกรณ์อิเล็กทรอนิกส์ทั้งหมดให้ปลอดภัยท่ามกลางสายฝน
โหลดรูปภาพทีละภาพแล้ววางเมาส์เหนือกล่องสีขาวที่ร่างไว้เพื่อดูคำอธิบายของส่วน/ขั้นตอน
ขั้นตอนที่ 3: การตั้งค่าโลกแห่งความจริง
ขั้นตอนสุดท้ายคือการติดตั้งเคส Pelican บนราวกันตกด้านหลังของฉันและตรวจสอบว่าทุกอย่างใช้งานได้