산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

모션센스

구성품 및 소모품

Arduino 메가
× 1
Espressif ESP8266 ESP-01
× 1
HC-SR501 PIR 센서
× 1
1000uF 커패시터
× 1
저항기 및 점퍼 와이어
× 1

필요한 도구 및 기계

와이어 커터

앱 및 온라인 서비스

푸시불렛

이 프로젝트 정보

모션센스

소개

이 튜토리얼에서는 무단 활동이나 침입을 알리는 시스템을 만드는 방법에 대해 설명합니다. 활동 감지에는 Arduino와 PIR을, WiFi 연결에는 ESP8266을 사용했습니다. My Xperia Z1은 알림을 받는 데 사용됩니다. 나는 알림을 받기 위해 인기 알림 앱인 Pushbullet을 사용했고 Arduino에서 알림을 보내기 위해 Pushbullet API를 사용했습니다.


필수 지식

<울>
  • Arduino 및 기본 하드웨어에 대한 지식 [ 방문 :www.arduino.cc ]
  • AT 명령에 대한 아이디어 [ 읽기 :http://www.codeproject.com/Articles/85636/Introduction-to-AT-commands-and-its-uses ]
  • PIR, 작동 원리 [ 정보 :https://en.wikipedia.org/wiki/Passive_infrared_sensor ]

  • '사물' 사용

    아두이노 메가 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="코드">

    코드

    MotionSense 코드
    코드 설명은 저장소 readme 읽기https://github.com/anupam19/ESP8266-experiments

    회로도


    제조공정

    1. 박하 사탕 발가락 게임 방문 카드
    2. 다중 온도 센서
    3. 862D+용 DIY 납땜 인두 제어
    4. 3D 프린터 화재 안전
    5. Arduino, Yaler 및 IFTTT가 포함된 IoT 게이지
    6. Arduino 반발 전자기 부상
    7. 원격 제어 그리퍼 봇
    8. Arduino 기반 날씨 풍선 데이터 로거
    9. ArduFarmBot - 2부:IoT 구현과 원격 스테이션
    10. CoroFence - 열 감지기🖖