728x90
UDP 신호를 받아 카메라 촬영후 사진을 FTP 서버로 전송합니다.
라즈베리파이 방화벽 변경
프로그래밍
ftp 서버와 연결후 udp 신호를 받아 사진 촬영후 서버로 이미지를 전송합니다.
import picamera
import ftplib
import os
import datetime
from socket import *
camera = picamera.PiCamera()
camera.resolution = (1024,768)
ftp = ftplib.FTP()
ftp.connect("xxx.xxx.xxx.xxx", 9021)
ftp.login("xxx","xxx")
ftp.cwd("./test")
os.chdir(r"./")
from gpiozero import LED
from time import sleep
led = LED(17)
led.on()
BUFSIZE = 64
port = 4000
sock = socket(AF_INET, SOCK_DGRAM)
sock.bind(('', port))
while True:
data, addr = sock.recvfrom(BUFSIZE)
print ( data.decode() )
print('start capture')
led.off()
camera.start_preview()
camera.stop_preview()
saveFileName = datetime.datetime.now().strftime('%y%m%d-%H%M%S%f')+'.jpg'
camera.capture(saveFileName)
filename = saveFileName
myfile = open(filename, 'rb')
ftp.storbinary('STOR ' + filename, myfile)
myfile.close()
led.on()
print('close capture')
sleep(0.1)
led.on()
# else:
#print("Released")
# led.on()
# sleep(0.1)
sock.close()
ftp.close()
UDP 데이터 송신 테스트
import socket
import os
from time import sleep
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('', 0))
addr = '192.168.100.7', 4000
output = 'camera capture'
while 1:
print('send')
sock.sendto(output.encode('utf-8'), addr)
sleep(10)
sock.close()
라즈베리파이 부팅후 파이썬 코드 자동 실행
sudo leafpad /etc/rc.local
(sleep 10 && python /home/pi/camera_capture_wifi.py)&
Reference
라즈베리파이 방화벽 설치 및 세팅
데비안 계열(유부투, 라즈비안)의 기본 방화벽은 ufw 입니다. 방화벽 설정은 포트 또는 아이피 단위로 허용, 거부를 설정 할 수 있습니다. 라즈베리 파이에 패키지 관리자 apt-get로 ufw 방화벽을 설
erider.co.kr
blog.naver.com/PostView.nhn?blogId=chandong83&logNo=220929454009
파이썬(Python) UDP Echo Server / Client 소스 코드 및 설명
파이썬으로 UDP 서버와 클라이언트 구현시 아래의 소스를 참조하면 좋을 듯하다. http://svn.python.org...
blog.naver.com
'쪼물락 비젼 AI' 카테고리의 다른 글
소스 분석 & Compile & Run (0) | 2020.09.17 |
---|---|
CODEBOT UDP Send To Raspberry UDP Server (0) | 2020.09.15 |
CODEBOT 시리얼 연결 & 컴파일 & 실행 (0) | 2020.07.11 |
GPIO 신호시 라즈베리파이 카메라촬영 + FTP 업로드 (0) | 2020.07.02 |
라즈베리파이 사진 촬영 + FTP 파일 업로드 (0) | 2020.06.25 |