원래는 IoT Core에다가 mqtt로 binary형태로 사진을 전송하려고 했는데 이상하게 전송이 안 되었다;;
그래서 장고로도 업로드 하다가 사진 찍힐 때마다 업로드 하는 건 이상하게 또 잘 안 풀려서
그냥 boto3만 써서 센서가 감지할 때마다 사진을 찍게 해준 다음에 매번 업로드 하게 해주었다.
import boto3
from botocore.client import Config
ACCESS_KEY_ID = ''
ACCESS_SECRET_KEY = ''
BUCKET_NAME = ''
from time import sleep
from picamera import PiCamera
from datetime import datetime
import RPi.GPIO as GPIO
sensor = 17
def capture():
nw = datetime.now()
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(sensor,GPIO.IN)
print("Waiting for a sensor to settle.")
camera = PiCamera()
camera.resolution = (320, 240)
camera.start_preview()
sleep(2)
while True:
try:
if GPIO.input(sensor) == True:
print("Motion detected")
# Create File
camera.capture(f'img{nw.year}-{nw.month}-{nw.day}_{nw.hour}:{nw.minute}:{nw.second}.jpg')
print("camera capture")
# Read File
f = open(f"img{nw.year}-{nw.month}-{nw.day}_{nw.hour}:{nw.minute}:{nw.second}.jpg","rb")
s3 = boto3.resource(
's3',
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=ACCESS_SECRET_KEY,
config=Config(signature_version='s3v4')
)
s3.Bucket(BUCKET_NAME).put_object(
Key = f"img{nw.year}-{nw.month}-{nw.day}_{nw.hour}:{nw.minute}:{nw.second}.jpg", Body = f, ContentType='image/jpg')
print("image send")
except Exception as e:
print(e)
camera.stop_preview()
camera.close()
break
capture()'조열심 카테고리 > 잡담' 카테고리의 다른 글
| [공부] 네트워크 관련 윈도우 커맨드 (0) | 2022.09.26 |
|---|---|
| [공부] 정보보호와 보안의 기초 3주차 (0) | 2022.09.26 |
| [공부] 정보보호와 보안의 기초 2주차 (0) | 2022.09.10 |
| [공부] 정보보호와 보안의 기초 1주차 (0) | 2022.09.10 |
| [Python] Django로 AWS S3에 파일 넣기 (0) | 2022.05.26 |