본문 바로가기

django8

make IP camera using raspberry pi 4 (14) sound detecting 만드는 순서가 뒤죽박죽이긴 한데 아이가 울면 핸드폰 알람이 울리도록 하기 위해서 sound detecting을 준비하기로 했다. 먼저 rpi에서 python으로 recording기능을 테스트 함. https://makehappylife.tistory.com/entry/rpi-%EB%A7%88%EC%9D%B4%ED%81%AC-%ED%99%95%EC%9D%B8-%EB%B0%8F-%EB%85%B9%EC%9D%8C python pyaudio를 통해 sound입력레벨을 알 수 있고, threshold를 정해 지정시간동안 큰 소리가 발생하면 디텍팅이 가능하다. 디텍팅 함수를 아래와 같이 구현하였다. def detect_sound(data_chunk): THRESHOLD = 350 compare = max(data_.. 2022. 3. 2.
make IP camera using raspberry pi 4 (9) motion alarm setting 알람여부를 설정했으니, 실제로 알람을 보내는 기능이 필요함. 구현해보자. 1. django server에 url을 구성. sound와 motion을 각각 만들었음. sound는 나중에 구현. 2. motion eye에서 django server에 만들어 둔 url에 web hook 전송하도록 설정 3. django server는 motion eye로부터 위 url에 post를 받으면 alarm on 해둔 user를 검색하여 user에 알림을 띄움. alarm on해둔 user들에게 GET or POST를 보내려면 그들은 서버가 구동되고 있어야 한다. 이거슨 핸드폰기능으로 구현할 것이므로 좀 뒤에 해야겠다. 2022. 2. 20.
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.