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

IOT를 사용한 Android 앱 기반 홈 오토메이션 시스템

구성품 및 소모품

Arduino 윤
× 1
Arduino Mega 2560
× 1
Arduino UNO
× 1
서보 모터
× 1
Adafruit Standard LCD - 파란색 바탕에 16x2 흰색
× 2
숫자 키패드
× 1
부저
× 1
DHT11 온도 및 습도 센서(4핀)
× 1
LED(일반)
× 5
팬 모듈
× 1
SparkFun 푸시버튼 스위치 12mm
× 1
화염 센서
× 1
logitech c270 HD 웹캠
× 1
릴레이(일반)
× 1
전구
× 1
브레드보드(일반)
× 1
점퍼 와이어(일반)
× 1
SD 카드
× 1
HC-05 블루투스 모듈
× 1
RFID 리더(일반)
× 1

필요한 도구 및 기계

납땜 인두(일반)

앱 및 온라인 서비스

블링크
템부
Arduino IDE
퍼티
arduino Meet 로봇 애플리케이션

이 프로젝트 정보

동영상

진행하기 전에 시청자에게 프로젝트의 비디오를 보고 이 프로젝트에서 어떤 일이 일어나고 있는지, 어떤 점이 좋은지 알 수 있도록 요청하겠습니다.

다음은 프로젝트에 대한 비디오입니다:

요약

지난 몇 년 동안 스마트 홈은 매우 윙윙거리고 인기 있는 단어가 되었습니다. 많은 사람들이 자체 버전의 스마트 홈 아키텍처를 제안하려고 했지만 대부분은 스마트 홈 장치의 통합이 부족합니다. 또한 보안은 스마트 홈 아키텍처의 주요 관심사이기도 합니다. 이러한 스마트 홈 아키텍처에서 사용되는 일부 통신 기술에는 블루투스, GSM, Zigbee 등이 포함됩니다. 이러한 모든 아키텍처에는 장단점이 있습니다. 공학의 마지막 해에 저는 간단한 사용자 친화적인 모바일 애플리케이션으로 모니터링하고 제어할 수 있는 통합 스마트 홈 아키텍처를 구현하려고 했습니다. 또한 모든 시스템이 상호 연결되고 특정 범위 내에서 장치를 제어하기 위한 음성 명령이 추가됩니다. 제 홈 오토메이션 아키텍처의 무소음 기능은 다음과 같습니다.

<울>
  • 숫자 키패드와 RFID를 이용한 2단계 보안 시스템으로 침입자의 집 접근을 차단합니다.
  • <울>
  • 도난 시 온라인으로 사진 업로드, 사용자가 웹 브라우저를 사용하여 볼 수 있는 로컬 서버에 비디오를 업로드하는 원격 비디오 감시.
  • <울>
  • 안드로이드 애플리케이션을 통해 DHT11, 화염 센서, MQ3, MQ135 센서 등 다양한 센서의 판독값을 사용하여 가정 환경을 모니터링합니다.
  • <울>
  • 안드로이드 애플리케이션을 통해 led, 서보 모터 등의 장치를 제어합니다.
  • <울>
  • Android 애플리케이션을 통해 사용자가 설정한 기본 설정에 따라 장치의 자동 예약
  • <울>
  • 사용자가 집에 접근할 때 사용자가 설정한 기본 설정에 따라 장치(간헐천, 커피 머신)를 준비하는 집입니다.
  • <울>
  • 사람의 음성을 사용하여 기기 제어하기
  • 전제 조건

    <울>
  • C 프로그래밍에 익숙해야 합니다.
  • <울>
  • Arduino IDE 사용 및 Arduino 보드에 코드 배포에 익숙해야 합니다.
  • 지침 - 다음 단계를 따르세요.

    계속 진행하기 전에 이 프로젝트에 대한 내 비디오를 확인하여 작업이 어떻게 작동하고 연결이 만들어지는지 알 수 있도록 하십시오.

    1단계 - 전체 시스템 연결

    아래 첨부된 회로도에 따라 연결하십시오. 연결해야 할 연결이 많이 있으므로 인내심을 갖고 모든 연결을 신중하게 수행하십시오. 나는 당신이 홈 오토메이션의 실제 느낌을 얻을 수 있도록 골판지를 사용하여 일부 홈 유형 아키텍처를 제안합니다. PIR Motion 센서는 민감한 변화를 일으키기 쉬우므로 주의하십시오. 가양성을 제공하지 않도록 단단히 고정하십시오. 그렇지 않으면 문이 예기치 않게 열립니다.

    RFID 연결은 다음과 같습니다.

    - MOSI ---> PIN 51

    - 미소 ---> PIN 50

    - SCK ---> PIN 52

    - SS/SDA ---> PIN 9

    - RST ---> PIN 8

    또한 I2C 통신을 위해 mega의 핀 20을 arduino yun의 핀 2에 연결하고 arduino mega의 핀 21을 arduino yun의 핀 3에 연결합니다.

    2단계 - Temboo 계정 생성 및 Dropbox API 설정

    이 프로젝트의 다음 단계는 웹 서비스 Temboo에서 계정을 만들고 설정하여 Temboo에서 제공하는 다양한 서비스를 사용할 수 있도록 하는 것입니다. 그렇게 하려면 첫 번째 단계는 Temboo 웹사이트 http://temboo.com/으로 이동하는 것입니다. 메인 페이지에서 등록할 이메일 주소를 입력하고 등록을 클릭하기만 하면 됩니다. 그런 다음 계정 이름과 같은 계정에 대한 몇 가지 기본 정보를 입력하라는 메시지가 표시됩니다. 그런 다음 첫 번째 앱을 만들라는 메시지가 표시됩니다. 귀하의 첫 번째 앱 이름 및 귀하에게 제공될 키와 같은 계정 세부 정보를 저장했는지 확인하십시오. 이러한 값을 다시 가져와야 하거나 새 애플리케이션을 생성해야 하는 경우에 언제든지 이 데이터에 액세스할 수 있습니다. APPLICATIONS 아래의 MANAGE 버튼을 클릭하여 Temboo 웹사이트의 내 계정 섹션.

    이제 소프트웨어 측면에서 Arduino IDE보다 조금 더 필요합니다. SSH를 통해 연결할 때 카메라에 필요한 소프트웨어를 Yún 보드에 직접 설치하지만 Dropbox에 사진을 업로드하려면 Temboo Python SDK가 필요합니다. SDK는 https://temboo.com/python에서 찾을 수 있습니다. 압축을 풀고 SD 카드의 루트에도 놓을 때입니다. SD 카드의 루트에 temboo라는 이름이 표시되는지 확인하면 방금 만든 Python 파일이 올바르게 액세스할 수 있습니다. 그런 다음 Dropbox 계정도 있어야 사진을 업로드할 수 있습니다. https://www.dropbox.com/home으로 이동하여 간단히 계정을 만들 수 있습니다. 계정이 생성되면 프로젝트에서 사용할 앱을 생성해야 합니다. 이것은 기본적으로 매번 로그인과 비밀번호를 입력할 필요 없이 사진을 자동으로 Dropbox 계정으로 보내도록 이 장에서 구축하려는 프로젝트를 승인해야 함을 의미합니다. 또한 나중에 Yún의 Python 스크립트에 입력할 모든 필수 정보(예:API 키)가 제공됩니다.

    1. 앱을 생성하려면 먼저 https://www.dropbox.com/developers/apps로 이동합니다.

    2. 그런 다음 창의 오른쪽 상단에 있는 앱 만들기를 클릭합니다. 이제 만들려는 앱 유형을 선택할 수 있습니다. 우리의 경우 Dropbox API를 직접 사용하고자 합니다.

    3. 그러면 앱에 저장해야 하는 데이터 종류를 선택하라는 메시지가 표시됩니다. 사진을 업로드하고 싶으므로 파일 및 데이터 저장소를 선택하십시오.

    4. 그런 다음 Dropbox 앱을 만드는 과정을 마칠 수 있습니다.

    5. 앱을 설명하는 확인 페이지에서 나머지 프로젝트에 필요한 앱 키와 앱 비밀을 적어 두어야 합니다.

    6. 또한 권한 유형 필드가 앱 폴더로 설정되어 있는지 확인합니다. 이렇게 하면 사진이 앱 전용 폴더에 업로드되고 Yún이 Dropbox 폴더의 나머지 부분에 액세스할 수 없게 됩니다.

    7. 지금 얻어야 할 것은 Dropbox 앱과 관련된 토큰 키와 토큰 암호이므로 나중에 프로젝트 소프트웨어에 입력할 수 있습니다. 이를 얻으려면 첫 번째 단계는 Temboo 웹사이트(https://temboo.com/library/Library/Dropbox/OAuth/InitializeOAuth/)의 InitialiseOAuth Choreo로 이동하는 것입니다. 여기에 앱 키와 앱 암호를 입력해야 합니다. 그러면 콜백 ID 및 임시 토큰 암호와 같은 몇 가지 추가 정보가 생성됩니다. 또한 Dropbox 링크를 방문하여 인증을 확인하라는 메시지가 표시됩니다.

    8. 마지막으로 FinalizeOAuth 페이지로 이동하여 프로세스를 완료합니다. https://temboo.com/library/Library/Dropbox/OAuth/FinalizeOAuth/에서 앱 키, 앱 암호, 콜백 ID 및 임시 토큰 암호를 입력하라는 메시지가 표시됩니다. 이 단계가 끝나면 최종 토큰 키와 토큰 암호가 제공됩니다. 나중에 필요하므로 적어 두십시오.

    3단계:Arduino Yun에 드라이버 설치

    Putty 소프트웨어를 설치하고 엽니다. arduino yun의 IP 주소를 입력하고 ssh를 선택하고 열기를 클릭합니다. 사용자 이름으로 root를 입력하면 Yún에 대해 선택한 암호를 입력하라는 메시지가 표시됩니다(기본 암호는 arduino). 작동하는 경우 터미널에 다음 스크린샷이 표시되어야 합니다. 이는 현재 Yún에서 직접 작업하고 있음을 나타냅니다.

    Yún Linux 시스템에서 모든 기능에 액세스할 수 있습니다. 이제 카메라에 필요한 소프트웨어를 설치하겠습니다. 다음 단계에 설명된 대로 필요한 패키지를 가져올 수 있도록 Arduino Yún이 인터넷에 연결되어 있어야 합니다.

    1. 프로세스는 다음과 같이 패키지 관리자 opkg를 업데이트하여 시작합니다. opkg update

    2. 다음과 같이 UVC 드라이버를 설치합니다. opkg install kmod-video-uvc

    3. 다음 명령과 같이 프로젝트에서 나중에 사용할 python-openssl 패키지를 설치합니다. opkg install python-openssl

    4. 마지막으로 다음 명령과 같이 사진을 찍는 데 사용할 fswebcam 소프트웨어를 설치할 수 있습니다. opkg install fswebcam

    4단계:라이브 비디오 감시

    응용 프로그램이 작동하도록 하려면 먼저 다음 단계에 표시된 대로 Yún에 몇 가지 추가 소프트웨어 패키지를 설치해야 합니다.

    1. SSH를 사용하여 Arduino Yún 이름과 암호를 사용하여 Yún에 다시 연결하고 다음 명령을 입력하여 라이브 스트리밍을 위한 올바른 패키지를 가져옵니다. wget http://www.custommobileapps.com.au/downloads/mjpgstreamer.ipk

    2. 링크가 더 이상 유효하지 않고 파일을 찾을 수 없는 경우 이 패키지는 이 장의 코드 내에서도 사용할 수 있습니다. 이제 다음 명령을 사용하여 설치할 수 있습니다. opkg install mjpg-streamer.ipk

    3. 이제 다음 명령을 사용하여 Arduino Yún에서 라이브 스트리밍 소프트웨어를 시작할 수 있습니다.

    mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 640x480 -f 25" -o "output_http.so -p 8080 -w /www/webcam" &

    여기서 –h 뒤의 매개변수는 해상도이고 –i 뒤의 매개변수는 스트림을 사용할 수 있는 포트입니다. 또한 –I 명령을 사용하여 초당 프레임 수를 지정했습니다. 다른 옵션은 덜 중요하므로 걱정할 필요가 없습니다. 그런 다음 웹 브라우저에서 Arduino Yún의 주소로 이동한 다음 8080을 입력하여 올바른 포트를 지정하여 스트림에 액세스할 수 있습니다. 예를 들어 링크는 http://yourarduinoyunipaddress.local:8080/stream.html과 같습니다. 위 링크에서 yourarduinoyunipaddress를 arduino yun의 IP 주소로 바꾸십시오.

    5단계:문자 메시지용 Twilio 계정 설정

    https://www.twilio.com/에서 가입하세요. 계정 sid와 auth 토큰을 기록해 둡니다. twilio에서 무료 번호를 구입하고 확인된 발신자 ID 섹션에서 문자 메시지를 보낼 번호도 확인하세요. 번호가 확인되면 해당 번호로 메시지를 보낼 준비가 된 것입니다. 이제 temboo.com에 로그인하십시오. 이 링크(https://temboo.com/library/Library/Twilio/SMSMessages/SendSMS/)로 이동하여 twilio에서 얻은 자격 증명을 제공합니다. 지금 실행을 클릭하기 전에 추가 정보를 기록해 둡니다. 지금 실행을 클릭하고 필요한 추가 정보를 제공하고 프로필을 일부 이름으로 저장합니다. 이 프로필 이름은 arduino yun 코드에서 사용됩니다. arduino yun 코드의 208행으로 이동하여 your_profile_name을 프로필 이름으로 바꿉니다. temboo에서 지금 실행 버튼을 클릭할 때 오류가 발생하지 않는지 확인하십시오. 그렇지 않으면 자격 증명에 문제가 있으므로 스스로 문제를 해결해야 합니다.

    6단계:blynk 계정 설정 및 blynk 앱 구성

    https://play.google.com/store/apps/details?id=cc.blynk 링크를 사용하여 플레이스토어에서 blynk 앱을 다운로드합니다.

    Blynk 앱을 다운로드한 후 새 Blynk 계정을 만들어야 합니다. 계정에 성공적으로 로그인한 후 새 프로젝트를 생성하여 시작하십시오. 하드웨어 모델을 Arduino yun으로 선택합니다. 인증 토큰은 하드웨어를 스마트폰에 연결하는 데 필요한 고유 식별자입니다. 생성하는 모든 새 프로젝트에는 고유한 인증 토큰이 있습니다. 프로젝트 생성 후 이메일로 인증 토큰을 자동으로 받게 됩니다. 수동으로 복사할 수도 있습니다. 장치 섹션을 클릭하십시오. 이제 를 누르십시오. 생성 단추. 다음 지침에 따라 위젯을 추가하십시오.

    홈, hvac, 모니터링 및 제어로 4개의 탭을 만드십시오.

    홈 탭에서 LCD, 값 표시, 레벨 H 및 알림의 네 가지 위젯을 선택합니다.

    LCD의 입력을 V1으로 설정합니다.

    값 표시의 이름을 화재 센서로 지정하고 화재 센서의 입력을 V11로 구성하고 범위 0에서 1023까지 매핑하고 판독 속도를 1초로 설정합니다.

    레벨 h를 화재 레벨로 지정하고 입력을 V12로 구성하고 범위 0에서 1023까지 매핑하고 읽기 속도를 푸시로 설정합니다.

    평소와 같이 우선순위로 알림을 구성합니다.

    공조

    HVAC 탭에서 LCD, 슬라이더, 값 표시(2), 히스토리 그래프를 선택합니다.

    lcd의 입력을 V3로 설정합니다.

    슬라이더 이름을 팬으로 변경하고 출력을 D9로 구성하고 0에서 255로 매핑합니다.

    두 값 디스플레이의 이름을 room1 temp 및 room2 temp로 바꿉니다. 하나의 입력을 V2로 구성하고 다른 입력을 V6으로 구성하고 1초의 판독률로 0에서 50까지 둘 다 매핑합니다.

    히스토리 그래프의 입력을 V9와 V8로 설정합니다. V9에 해당하는 room1 temp와 V8에 해당하는 room2 temp라는 이름을 입력합니다.

    모니터링

    모니터링 탭에서 레이블이 지정된 값(2), 그래프(2), 이력 그래프를 선택합니다.

    2개의 레이블이 지정된 값 위젯의 이름을 room1 습도 및 room2 습도로 바꾸고 입력을 V5 및 V7로 설정하고 1초의 읽기 속도로 0에서 100까지 매핑합니다.

    입력 핀이 V10이고 V9가 0~100 범위이고 판독 속도가 1초인 방 1 습도 및 방 2 습도로 2개의 그래프 이름을 바꿉니다.

    히스토리 그래프의 입력을 V10과 V7로 설정합니다. V10에 해당하는 room1 습기와 V7에 해당하는 room2 습기를 이름으로 입력합니다.

    통제

    제어 탭에서 LCD, 값 표시(2), 레이블이 지정된 값, 슬라이더, 시간 입력, GPS 트랙을 선택합니다.

    lcd의 입력을 V4로 설정합니다.

    값 표시의 입력을 V19 및 V20으로 구성하고 범위는 0에서 1023이고 판독 속도는 1초입니다.

    레이블 값의 입력을 V21로 구성하고 1초의 읽기 속도로 0에서 1023까지 다양한 범위를 구성합니다.

    슬라이더 설정의 이름을 Main room light로 바꾸고 쓰기 간격 100ms로 0에서 255까지 출력합니다.

    시간 입력 V31을 구성하고 시작/중지 허용 입력을 yes로 구성, 요일 선택을 yes로 허용, 시간대 선택을 yes로 허용합니다.

    gps 트랙 입력을 v29로 구성하고 입력할 때 트리거합니다. 이렇게 하면 사용자가 지도 내부에 도착했을 때 시스템이 v29 핀(예:geysar에 연결될 수 있음)을 트리거할 수 있습니다. 당신의 편의에 따라 지도의 반경을 변경할 수 있습니다.

    실행 버튼을 클릭하세요.

    축하 해요! 이제 Android 스마트폰에서 가정 환경을 제어하고 모니터링할 수 있습니다.

    장치의 음성 제어 작동

    이 링크에서 AMR_VOICE 앱을 다운로드하고 HC05로 블루투스를 구성하십시오. arduino uno에 대한 음성 제어로 명명된 아래에 언급된 코드를 arduino uno에 배포합니다. 앱에서 로봇 연결을 클릭합니다. 스마트폰 블루투스가 hc05와 페어링되어 있는지 확인하십시오. 음성 아이콘을 누르고 코드에 언급된 문자열을 말하여 기기를 켜거나 끕니다.

    이 프로젝트를 만드는 동안 문제가 발생하면 알려주십시오. 사용자가 arduino, c 및 기본 Linux 프로그래밍의 기본 사항에 익숙할 수 있다는 사실을 고려하여 일부 단계는 자세히 표시되지 않습니다. 어떤 단계에서든 막힌 부분이 있으면 언제든지 댓글 섹션에 질문하세요.

    참고:모든 문서와 코드를 공개 git 리포지토리로 마이그레이션했습니다. https://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOT 링크로 이동하여 소스 코드, 회로도 파일 및 아키텍처 참조를 다운로드하십시오. 또한, 이 프로젝트에 기여하거나 새로운 기능을 추가하려면 내 github 저장소에서 pull 요청을 만드세요. 코드나 설정 환경에 문제가 있는 경우 github 저장소에 문제를 제기하세요.

    건배!

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    이 프로젝트의 코드베이스
    내 git 저장소에서 이 프로젝트의 코드를 다운로드합니다. 이 프로젝트에 더 많은 기능을 추가하려면 내 저장소에서 pull 요청을 발행하세요.https://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOT

    회로도

    프로젝트 개략도
    내 github 저장소에서 회로도를 다운로드하십시오. https://github.com/akib-islam/Android-App-Based-Home-Automation-System-Using-IOT

    제조공정

    1. Arduino, 1Sheeld 및 Android를 사용한 범용 원격 제어
    2. IoT를 사용한 심박수 모니터
    3. IoT를 사용하여 로봇 팔 원격 제어
    4. Raspberry Motor Shield를 사용한 Android 제어 장난감
    5. 원쉴드를 사용한 스마트 홈 자동화 및 보안 시스템
    6. 볼트와 Arduino를 사용하여 LED 밝기 제어
    7. Arduino, Yaler 및 IFTTT가 포함된 IoT 게이지
    8. 가정용 식물 관수 시스템
    9. AWS IoT를 사용한 식물 모니터링 시스템
    10. Alexa에 의해 활성화된 Arduino 홈 컨트롤러