개발Study/IP Camera15 make IP camera using raspberry pi 4 (8) button event 버튼이벤트 구현하기. 구현할 내용: motion과 sound alarm setting 버튼을 누를 때 각각 값을 db에 저장. 값을 저장하기 위해 save버튼을 생성했음. save버튼 클릭시 해당 page에 post로 전송되며, 이 때 check box들의 상태를 view에 전달하도록 구현. html 일부: motion {% if motion_alarm %} {% else %} {% endif %} sound {% if sound_alarm %} {% else %} {% endif %} save views.py: def index_mac(request, mac_addr): #1. find mac_addr from userlist user = User.objects.filter(Q(mac_address=m.. 2022. 2. 20. make IP camera using raspberry pi 4 (7) model 버튼기능을 구현하기에 앞서 model 설정으로 database를 구축해야 한다. refresh 버튼에는 필요 없지만 alarm on/off 설정시 값을 저장해야하기 때문이다. 여기서 놓치지 말아야 할 것은, 접속한 유저 각각에 대해 alarm 설정 여부를 저장해야 한다는 사실. 그러면 생성해야 할 db는 두개이다. 1. user list 이는 접속한 user를 기록할 unique한 무언가가 있어야 한다. id/pw도 좋고. 그러나 id/pw를 통한 로그인과정까지 구현할 시간은 없다. 접속 기기별 mac address를 저장하기로 결정함. 을 이용하면 될 것 같다. 2. user별 alarm on/off 여부 django가 motion eye로부터 알람을 받았을 때 alarm을 on설정해 둔 유저에게만 a.. 2022. 2. 12. make IP camera using raspberry pi 4 (6) web ui with django 대략 아래와 같은 UI를 만들고자 한다. 그림판으로 그려봤다. 지난번에 스트리밍에 실패해서 캡쳐화면만 남겨놨지만 refresh버튼을 눌러 언제든 화면갱신을 할 수 있도록 해보고자 한다. 노란선은 대략 table 모양이랄까. 역시 눈에 보이는건 순식간에 만들어진다. 여기서 refresh와 on/off 버튼들을 버튼으로 바꿔주어야 한다. 먼저 refresh 버튼을 해보자. refresh의 기능은 위의 image를 갱신하는 것. 다음으로 구현해야 할 것은 db. 페이지를 불러올 때 db에서 motion, sound alarm설정값을 불러와서 화면에 표시해주어야 한다. 그리고 버튼을 눌렀을 때 db에 해당 값을 저장해주어야 한다. 지금은 버튼을 눌러도 아무런 동작을 하지 않는다. 모양을 다듬어보자. 온갖 구글링.. 2022. 2. 9. make IP camera using raspberry pi 4 (5) django server rpi에 motion eye가 돌아가는 상태에서 django server도 함께 돌리고자 한다. 몇몇 필요한 기능들 때문인데, motion eye가 web hook을 django에 보내면 접속한 모든 device들 중에서도 알림을 허용한 device에게만 보내도록 설정하기 위해서. 나도 접속하고 남편도 접속할 수 있으니까. 그리고 사운드 알람 기능. 아이가 울면 알람을 주기 위해서. 그래서 rpi shell에 접속하여 django project를 만들어보기로 했다. django설치 참놰.. 뭔가 하나씩 부족한 개발환경. sudo apt install python3-pip sudo pip3 install Django django project 생성 django-admin startproject ipcame.. 2022. 1. 28. make IP camera using raspberry pi 4 (4) motion detect test motion detect 기능으로 디텍팅을 한번 테스트해보고자 한다. motion eye가 제공하는 디텍팅 기능중 가장 빨리 확인할 수 있는게 web hook. 컴터에 대충 웹서버하나 띄워 놓고 web hook을 보내도록 해보자. 1. 서버실행 - django server django 프로젝트를 만들고 거기서 web server를 실행시키고자 한다. git bash를 열어 python 가상환경을 만든 뒤, Django 설치. python -m venv myipcamera source myipcamera/Scripts/activate pip install Django django project 생성 후 server 실행 django-admin startproject ipcam_test cd ipcam_te.. 2022. 1. 28. Web hook motion eye에서 제공하는 web hook이 유용해보여서 이것에 대해 알아보고자 한다. web 통신의 기본은 client가 요청할 때 server가 데이터를 전송하는 방식이다. web hook을 이용하면 반대로 서버에서 어떤 이벤트가 있을 때 client에게 데이터를 전송할 수 있다. web hook을 전송하고 받는 순간만큼은 server와 client가 반대라고 생각하면 된다. 예를 들어 서버에 mail이 수신되었다. 이 때 client에게 메일이 수신되었음을 알리는 것이다. server에서 어떤 이벤트가 발생할 때 client에 데이터를 전송하는 callback을 구현하여 이루어진다고 한다. 근데 서버에서 어떤 클라이언트에게 보내는지를 어떻게 결정하는 것인가??? 모든 client에게 전송하면 .. 2022. 1. 25. 이전 1 2 3 다음