제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
|
이 튜토리얼에서는 무단 활동이나 침입을 알리는 시스템을 만드는 방법에 대해 설명합니다. 활동 감지에는 Arduino와 PIR을, WiFi 연결에는 ESP8266을 사용했습니다. My Xperia Z1은 알림을 받는 데 사용됩니다. 나는 알림을 받기 위해 인기 알림 앱인 Pushbullet을 사용했고 Arduino에서 알림을 보내기 위해 Pushbullet API를 사용했습니다.
아두이노 메가 2560
ESP8266 직렬 WiFi ESP-01 변형
HC-SR501 PIR 센서
1000µF 커패시터, 다른 저항기 [ WiFi 전원 공급용 커패시터, 전압 조정용 저항 ]
단일 스레드 0.5mm 와이어 [ 커넥터 리드 ]
암-암 점퍼 와이어 [ 커넥터 ]
엑스페리아 Z1 [ Pushbullet 앱의 경우 모든 스마트폰에서 ]
내 노트북 [ 아두이노 코딩 ]
아두이노 IDE [v1.6.4]
환경 설정: arduino가 설치되어 있지 않다면 arduino 웹사이트에서 설치하세요.
복사 코드 숨기기
PIR 설정:
더 나은 탐지율을 얻으려면 최소 경보 주기로 최대 감도가 필요하다고 가정합니다. 따라서 PIR 센서 포트를 다음과 같이 설정하십시오.
이제 PIR 센서의 흰색 구를 열면 핀 설명이 표시됩니다. GND | 아웃 | VCC
GND VCC 및 OUT으로 암 점퍼를 연결합니다.
이제 점퍼 핀(PIR에 연결됨)의 다른 쪽 끝을 Arduino에 연결합니다.
PIR GND -> Arduino GND
PIR VCC -> Arduino 5V
PIR OUT -> 디지털 핀 2 [ arduino 코드 변경 및 선택에 따라 핀을 선택할 수 있습니다. ]
PIR을 테스트하려면 이 Arduino Playground의 코드를 사용할 수 있습니다.
따라서 귀하의 PIR 센서가 준비되었습니다. 일하다
복사 코드 숨기기
WiFi를 통해 Arduino가 인터넷에 연결하도록 설정:
꽤 저렴한 내 프로젝트에 ESP8266(변형 ESP-01) 직렬 WiFi 모듈을 사용했습니다. ESP-01 외에도 사용할 수 있는 다른 변형이 있습니다. 다른 펌웨어도 있습니다. 저는 기본 AT 펌웨어를 사용했습니다. 연결 참조를 위해 이 두 이미지를 확인하십시오.
점퍼 와이어가 있는 Arduino와 ESP8266을 연결하지 않음:
ESP8266 GND -> Arduino GND
ESP8266 UXTX(전송 핀) -> Arduino RX2 (arduino 메가 수신기 핀, 즉, 코드의 Serial2)
ESP8266 CH_PD(HIGH로 만들기) -> Arduino 5V (ESP 8266이 3.3v를 견딜 수 있으므로 하나의 전압 조정기 0f 3.3을 추가하십시오. 나는 전압 조정기가 없기 때문에 저항기를 사용했습니다. 그러나 전압 조정기가 선호됨)
RST, GPIO2 및 GPIO0을 연결하지 않은 상태로 둡니다.
ESP8266 URXD(수신기 핀) -> Arduino TX2 (arduino 수신기 핀 ie. 코드의 Serial2)
ESP8266 VCC -> Arduino의 3.3v
ESP8266은 데이터 전송 시 전원 문제가 있습니다. Arduino가 PC USB를 통해 전원이 공급되면 arduino가 다시 시작될 수 있도록 arduino에서 전원을 끌어옵니다. 전원 플러그를 통한 5v 전원 공급으로도 충분하지 않을 수 있습니다. 따라서 ESP8266에는 항상 외부 전원 공급 장치를 사용하는 것이 좋습니다. 그러나 내 실험에서 나는 이것을 위해 빠르고 저렴한 솔루션을 사용했습니다. ESP8266에 충분한 전력을 공급하기 위해 하나의 1000µF 전해질 커패시터를 사용했습니다.
긴 핀 -> 3.3v에 연결된 ESP8266 VCC
짧은 핀 -> arduino GND에 연결된 ESP8266 GND
따라서 ESP8266 WiFi 모듈이 준비되었습니다. 일하다
복사 코드 숨기기
Pushbullet 알리미:
Pushbullet을 사용하면 푸시 알림을 통해 다른 장치에 무심코 알릴 수 있습니다. 우리는 PIR 센서의 푸시 알림에 API를 사용할 것입니다. 푸시불렛에 대해 자세히 알아보기
시작하겠습니다.
PushBullet으로 이동
자신을 등록하고 크롬 앱과 스마트폰 앱을 다운로드하세요.
Pushbullet에 로그온 장치에서.
이제 PC에 설치된 앱 또는 크롬 확장 프로그램을 사용하여 푸시 메시지를 기기로 보내는 방법을 확인하세요.
API 섹션으로 이동
참고:여기에 모든 API 링크와 URL이 https 연결을 위해 제공되며 Arduino는 https를 처리하기에 그다지 강력하지 않기 때문에 https를 사용할 수 없습니다. 따라서 여기에서 pushbullet 문서에 언급되지 않은 해당 API의 HTTP 버전을 사용하지만 github에서 이 참조를 얻었습니다. .
푸시를 위한 pushbullet 문서에서는 HTTPS인 URL을 언급했으므로 해당 github 프로젝트에서 제공하는 HTTP URL 및 포트를 사용합니다. 또한 /pushbullet을 추가합니다. 그들이 언급한 이전 및 REST 경로.
예:
pushbullet 문서에 따라 모든 기기에 대한 알림 푸시 , REST 경로: /v2/pushs
그러나 우리는 다음을 사용할 것입니다 :/pushbullet/v2/pushs
기본 URL :173.17.168.19
포트 :8181
이제 다른 API를 확인하고 설명을 읽고 이에 대해 알아보세요. 나중에 이 튜토리얼의 향상된 버전에 사용할 수 있습니다.
arduino에서 푸시하려면 인증 키가 필요합니다. 따라서 계정으로 이동하십시오.
액세스 토큰 찾기 , 안전한 장소에 있는 PC에 복사 및 저장하십시오.
그래서 푸시불렛 이제 준비되었습니다. 푸시 알림을 보내고 받습니다.
이 GitHub 프로젝트 열기
실험 폴더로 이동합니다. MotionSense.ino를 찾을 수 있습니다. , 스마트 장치에 알림을 푸시할 코드입니다.
이 코드를 arduino IDE에 복사하고 arduino를 연결합니다(이미 WiFi 및 PIR 센서로 설정됨).
이제 다음 매개변수를 변경하십시오.
복사 코드 숨기기
#define SSID "YOURSSID" /* YOURSSID를 WiFi 액세스 포인트 이름으로 교체 */#define PASS "YOURPASSWORD" /* 귀하의 PASSWORD를 WiFi 액세스 포인트 비밀번호로 교체 */
PIR OUT 핀을 원하는 핀으로 변경할 수 있습니다.
복사 코드 숨기기
#define PIRPIN 2 /* arduino의 원하는 디지털 핀으로 변경 */#define AUTH_TOKEN "YOUR_TOKEN_FROM_YOUR_ACCOUNT";/* YOUR_TOKEN_FROM_YOUR_ACCOUNT를 액세스 토큰으로 교체*/
또한 위 스니펫에서 언급한 액세스 토큰을 사용하세요.
이제 컴파일하고 실행하십시오.
센서 보정, WiFi 모듈 초기화 및 액세스 포인트에 연결하는 데 시간이 걸립니다.
시리얼 모니터에서 이러한 것들을 볼 수 있습니다.
모든 작업이 완료되면 메인 루프를 반복하기 시작하고 다음을 볼 수 있습니다.
"모든 것이 정상 | 침입 없음 "
계속해서 직렬 모니터에 표시됩니다.
PIR 센서 앞으로 갈 때마다 움직임을 감지하고 장치에 푸시 알림을 보냅니다.
#defines는 그에 따라 변경해야 하는 사전 정의된 매개변수 세트입니다.
설정에서 arduino Serial() 초기화를 볼 수 있습니다. Serial2는 WiFi 직렬 액세스용입니다.
기능 이해 :
복사 코드 숨기기
<사전>센서 교정(); /* 적절한 출력을 위해 센서를 보정합니다. 그 전에 PIRPIN의 전원을 꺼야 합니다. */복사 코드 숨기기
<사전>check_WiFi_radio(); /* WiFi 모듈이 정상인지 확인 */복사 코드 숨기기
<사전>reset_wifi(); /* 문제를 해결하기 위해 WiFi 모듈을 재설정합니다. */복사 코드 숨기기
<사전>set_wifi_mode(); /* 액세스 포인트에 연결하기 위해 WiFi 모듈을 클라이언트로 설정 */WiFi 모드를 설정한 후 설정하려면 WiFi를 재설정해야 합니다.
복사 코드 숨기기
<사전>check_wifi_stat(); /* WiFi 모듈이 AP에 연결되었는지 확인 */복사 코드 숨기기
<사전>connect_ssid(); /* 연결되어 있지 않으면 연결 매개변수로 연결됩니다. */여기까지 WiFi 모듈이 초기화되어 연결되었습니다. 이제 PIR 판독값이 모션 감지 여부를 확인해야 합니다. 메인 루프 아래에 있을 것입니다.
복사 코드 숨기기
pirRead();/*는 0 또는 1의 PIR 값을 읽습니다. 1이면 Motion Sensed, 0이면 아무 것도 없습니다 */
무언가가 감지되면 먼저 Pushbullet 서버에 연결해야 합니다.
복사 코드 숨기기
<사전>서버 연결(); /* 서버에 연결 */지금 푸시 알림
복사 코드 숨기기
<사전>포스트(); /* 모든 장치에 알림 푸시 */연결 해제
복사 코드 숨기기
<사전>서버_연결 해제(); /* 서버 연결 종료 */루프 스루
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">제조공정
구성품 및 소모품 Arduino UNO × 1 이 프로젝트 정보 github에서 진행 상황 보기 회로도 논리 분석기 모든 코드는 여기에 있습니다https://github.com/aster94/logic-analyzer
구성품 및 소모품 SparkFun Arduino Pro Mini 328 - 5V/16MHz × 5 5 초음파 센서 × 5 Perfboard × 5 진동 모터 × 5 부저 × 5 5mm LED:빨간색 × 5 슬라이드 스위치 × 5 암컷 헤더 8 위치 1 행(0.1) × 2 남성 헤더 40 위치 1 행(0.1) × 2 점퍼 와이어(일반) × 4