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

WARAN - 홈 오토메이션

구성품 및 소모품

라즈베리 파이 2 모델 B
× 1
Arduino UNO
× 1
DHT11 온도 및 습도 센서(4핀)
× 2
토양 습도계
× 1
Arduino Pro Mini 5V
× 2
9V 배터리(일반)
× 3
워터 펌프
선택 사항
× 1
nRF24l01+
× 3
nRF24l01+ 소켓
선택 사항
× 1
NPN 트랜지스터
선택 사항
× 1
3.3V 전압 조정기
× 2
10kΩ 저항기
× 2
10µF 커패시터
× 4
47µF 커패시터
× 2
Perfboard
× 3

필요한 도구 및 기계

납땜 기계
와이어 스트리퍼
와이어 니퍼
점퍼 와이어

앱 및 온라인 서비스

Microsoft Windows 10 IoT Core
Microsoft Azure
PubNub 게시/구독 API

이 프로젝트 정보

저렴한 홈 오토메이션 시스템을 구축할 계획이었습니다. 많은 변경 없이 센서와 장치를 계속 추가할 수 있도록 이것이 모듈식 시스템이 되었으면 합니다. WARAN(W indows IoT, A 주르, R 아스베리 파이, A rduino, N RF24L01+)는 단일 허브와 다중 모듈로 구성된 모듈식 홈 오토메이션 시스템입니다. 이 모듈은 집의 다른 위치에서 데이터를 수집하고 RF를 통해 허브로 데이터를 전송하는 마이크로 컨트롤러와 센서의 조합입니다. 허브와 모듈 간의 모든 통신은 RF를 통해 이루어집니다. 허브용 Windows Phone 앱도 함께 제공됩니다. 다음은 설정을 설명하는 간단한 흐름도입니다.

Windows IoT를 선택해야 하는 이유

저는 현재 IoT에 도전하고 있는 소프트웨어 개발자입니다. 이전에 XAML/C# 및 Visual Studio(지금까지 최고의 IDE로 간주됨)를 사용한 경험을 통해 이를 매우 빠르게 구현하는 것이 매우 도움이 되었습니다.

왜 NRF24L01+인가?

무선 옵션을 조사하던 중 NRF24L01+가 저렴하고 전력 소모가 적은 솔루션으로 떠올랐습니다. 정말 강력한 라이브러리를 사용할 수 있어 저에게 최고의 솔루션이 되었습니다.

Windows Azure가 필요한 이유

Windows Azure는 배우고 적응하기가 매우 쉽습니다. 서비스를 시작하는 데 필요한 구성이 거의 없기 때문에 구성 및 배포보다 개발에 더 집중할 수 있습니다. Azure에 대한 이전 경험은 빠른 통합에 도움이 되었습니다.

허브

Hub는 WARAN의 중심 관제 센터입니다. RPI2, Arduino Uno 및 nRF24L01+로 구성됩니다. RPI2는 Windows IoT 코어를 실행합니다. 제어 센터 역할을 하는 유니버설 앱을 실행합니다. 허브는 모듈의 데이터를 보고 모듈을 제어할 수 있는 대형 디스플레이(일반적으로 TV 또는 모니터)에 연결됩니다. RPI2에 연결된 키보드와 마우스는 제어 센터에서 모듈을 추가하고 제거하는 데 도움이 됩니다. 다음은 회로도입니다(프로젝트의 WARAN.Hub.fzz. 파일 참조)

어떻게 작동합니까?

모든 모듈에는 허브가 통신하는 데 사용하는 고유한 주소가 있습니다. 이 주소를 사용하여 모듈을 제어 센터에 추가하고 모듈에 이름을 지정합니다. 제어 센터(Universal App)가 추가되면 I2C를 통해 Arduino Uno에 데이터를 보냅니다. Arduino Uno는 nRF24L01+를 통해 모듈에 데이터를 보내고 모듈은 수신한 데이터를 기반으로 센서에서 데이터를 읽거나 장치를 시작/중지하고 데이터를 Arduino Uno로 다시 보냅니다. Arduino Uno는 I2C를 통해 데이터를 제어 센터로 보냅니다. 이 데이터는 TV/모니터에 표시되고 클라우드로도 전송됩니다. Arduino Uno는 RPI2가 다른 모듈에서 센서 데이터를 가져오는 인터페이스 역할을 합니다. 위의 프로세스는 세 가지 시나리오에서 발생합니다.

<올>
  • 모듈에 따라 특정 간격으로
  • 사용자가 제어 센터와 상호작용할 때(마우스/키보드를 통해)
  • 클라우드에서 트리거가 전송될 때(비시 PubNub)
  • 다음은 일반적인 흐름입니다.

    이것이 허브와 모듈의 구성 요소가 상호 작용하는 방식입니다.

    제어 센터

    제어 센터는 RPI2에서 실행되는 범용 앱입니다. 제어 센터는 사용자가 상호 작용할 수 있는 인터페이스입니다. 모듈 및 클라우드와도 통신합니다. WARAN 제어 센터는 Azure Mobile Services 및 PubNub를 클라우드 백엔드로 활용합니다. 우리가 추가하는 모든 모듈 정보는 sqlite db에 로컬로 저장되고 azure 모바일 서비스로도 전송됩니다. 그러면 PubNub 메시지 또는 푸시 알림이 모바일 앱으로 전송됩니다. 나는 여기서 코딩 부분을 설명하고 이 기사를 엉망으로 만들고 싶지 않습니다. 프로젝트 소스 코드, 문서 및 배포 세부정보는 https://bitbucket.org/arjunganesan/waran에서 찾을 수 있습니다(곧 완료될 문서를 완전히 업데이트하는 중입니다). 이것이 제어 센터의 작동 방식입니다.

    모바일 앱

    모바일 앱은 허브의 동반 앱 역할을 하는 Windows Phone 앱(나중에 다른 플랫폼용으로 개발 예정)입니다. 전 세계 어디서나 모바일에서 모든 센서 관련 데이터를 볼 수 있습니다. 모듈에서 중요한 정보를 얻은 경우(예:가스 누출 모니터 모듈의 가스 누출 경고) 푸시 알림도 받게 됩니다. 또한 모바일 자체에서 모듈에 대한 일부 작업(예:Plant Waterer 모듈에서 펌프 시작)을 트리거할 수 있습니다. 이 모든 것이 클라우드를 통해 이루어지므로 이러한 모든 작업을 수행하기 위해 허브 근처에 모바일 장치가 있을 필요가 없습니다.

    모바일 앱은 다음과 같습니다.


    모듈

    모듈은 함께 작동하고 RF를 통해 허브와 데이터를 주고받는 구성 요소의 조합입니다. 센서가 있는 Arduino Pro Mini 또는 센서가 있는 RPI2와 같은 조합일 수 있습니다. RF를 통해 허브에서 데이터/명령을 수신하고 적절하게 응답하기만 하면 됩니다. 이것은 모듈의 무한한 가능성을 제공합니다. 시작하기 위해 2개의 모듈을 추가합니다

    <올>
  • 식물 급수기
  • 온도 모니터
  • 식물 급수기

    식물 급수기는 식물의 수위와 식물 주변 환경의 온도를 모니터링합니다. 물이 부족할 경우 모바일 앱으로 알림이 전송됩니다. 어디서나 모바일 앱에서 펌프를 시작할 수 있습니다. 수위가 임계값 아래로 떨어질 때마다 펌프를 자동으로 시작하도록 구성할 수도 있습니다. Arduino Pro Mini, DHT11, 토양 습도계 및 nRF24L01+로 구성되어 있습니다. 다음은 회로도입니다(프로젝트의 PlantWaterer.fzz 참조)

    9V 배터리의 전원은 Arduino Pro Mini의 RAW 핀으로 갑니다. arduino에 내장된 전압 조정기는 Vcc에서 5V 출력을 제공합니다. 이것을 사용하여 DHT11에 전원을 공급합니다. 또한 nRF24L01+에 전원을 공급하는 데 사용할 3.3V 전압 조정기에 9V 전원을 입력합니다. 습도계의 수위는 아날로그 핀 A3에서 읽습니다. DHT11의 온도 판독값은 디지털 핀 6에서 읽힙니다. 디지털 핀 5에서 신호를 트랜지스터 또는 릴레이에 보내 펌프를 정지하기 시작합니다. 데모 목적으로 DC 펌프를 사용하고 트랜지스터를 스위치로 사용합니다. 작동 방식의 흐름은 다음과 같습니다.

    회로가 브레드보드에 남아 있는 것을 원하지 않아 perfboard로 옮겼습니다. 컴팩트하게 유지하고 싶어서 이렇게 만들었습니다. 회로도를 참조하여 자신만의 레이아웃을 만들 수 있습니다.

    그리고 아래는 작동 방식에 대한 비디오입니다.

    온도 모니터

    온도 모니터는 방(예:침실)의 온도를 모니터링하고 온도 및 습도 수준을 유지합니다. 또한 허브 또는 모바일에서 장치(온도 조절 장치, AC 등)를 켜고 끄거나 조정할 수 있습니다. 데모를 위해 arduino에 연결된 LED를 끄거나 켭니다. 회로는 Arduino Pro Mini, DHT11 및 nRF24L01+로 구성됩니다. 아래는 회로도입니다(프로젝트의 TemperatureMonitor.fzz 파일 참조)

    9V 배터리의 전원은 Arduino Pro Mini의 RAW 핀으로 갑니다. arduino에 내장된 전압 조정기는 Vcc에서 5V 출력을 제공합니다. 이것을 사용하여 DHT11에 전원을 공급합니다. 또한 nRF24L01+에 전원을 공급하는 데 사용할 3.3V 전압 조정기에 9V 전원을 입력합니다. DHT11의 온도 및 습도 판독값은 디지털 핀 5에서 읽힙니다. 핀 6에서 우리는 장치(예:온도 조절기, AC 등)를 중지하는 데 사용하는 트랜지스터 또는 릴레이에 신호를 보냅니다. 데모 목적으로 LED 조명을 사용하여 장치의 켜기/끄기를 표시합니다. 작동 방식의 흐름은 다음과 같습니다.

    다음은 성능 보드에 배치한 방법입니다. 회로도를 기반으로 자신만의 레이아웃을 만들 수 있습니다.

    작동 방식은 다음과 같습니다.

    알려진 문제

    <울>
  • 전원 - 두 모듈 모두에서 몇 시간 이내에 배터리가 소모됩니다. 효율적이고 휴대 가능한 전원을 찾아야 합니다. 가능한 모든 모듈에서 pro mini 대신 attiny 프로세서를 사용할 계획입니다. 전력에 더 효율적일 것입니다. attiny에 대한 이전 기사는 여기에서 찾을 수 있습니다.
  • I2C 동시성 - RPI2가 한 번에 2개의 와이어 요청을 Arduino uno에 보내면 그 중 하나가 실패합니다. 이를 방지하기 위해 노력하고 있으며 재시도 메커니즘도 구현하려고 노력하고 있습니다.
  • 단방향 통신 - 현재 허브가 요청을 시작하고 모듈이 이에 대해 응답합니다. 이것은 많은 시나리오에서 잘 작동하지만 일부 새 모듈은 허브가 요청을 보내지 않고 허브에 데이터를 보내야 할 수도 있습니다.
  • 범위 - 다음 방에 모듈을 보관하고 데이터를 제대로 수신할 수 있습니다. 그러나 범위를 늘리려면 Hub의 nRF24L01을 외부 안테나가 있는 NRF24L01+PA+LNA로 교체하십시오.
  • 보안 - 개발자가 소유한다는 가정 하에 개발되었기 때문에 인증 메커니즘을 추가하지 않았습니다. 원하는 경우 Azure Mobile 서비스의 ID 서비스를 활용하여 Microsoft, FB, Twitter, Google 인증을 모바일 앱 및 허브에 통합할 수 있습니다.
  • 향후 계획

    나는 이것을 사람들이 자신의 홈 오토메이션 시스템을 구현할 수 있는 개방형 플랫폼으로 만들고 싶습니다. 허브와 모바일 앱을 안정화 시키겠습니다. 이 프로젝트에 더 많은 모듈을 추가하고 싶습니다. 음성 기반 명령 및 응답도 로드맵에 있습니다. 지금은 아래 모듈에서 작업 중입니다.

    <울>
  • 가스 누출 센서
  • 침입 탐지기
  • 기기 컨트롤러(예:커피 머신 컨트롤러, 조명 컨트롤러 등)
  • 차고 도어 오프너
  • 일부 웨어러블 모듈
  • 하드웨어가 없는 인터넷 서비스(날씨, Azure Logic App, 주식 보고서 등)
  • 허브의 범위 밖에서 작동하고 인터넷을 통해 허브와 통신하는 모듈(예:자동차 추적기, 애완동물 추적기, 보수계 등)
  • 이 모든 모듈이 함께 결합되고 Hub를 통해 단일 장치로 작동하면 제가 항상 갖고 싶었던 홈 오토메이션 시스템을 제공할 것입니다. hackster에서 새 모듈을 별도의 프로젝트로 계속 추가하겠습니다. 누구나 새로운 모듈을 추가하고 확장할 수 있습니다. 프로젝트에 새 모듈을 추가하는 방법에 대한 위키 페이지를 업데이트할 예정입니다.

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

    코드

    비트버킷

    회로도

    WARAN.Hub.fzz PlantWaterer.fzz TemperatureMonitor.fzz

    제조공정

    1. 가정 자동화 애플리케이션
    2. RASPBERRY PI 홈 자동화
    3. Arduino 디지털 주사위
    4. Arduino 게임 컨트롤러
    5. 물리적 홈 자동화 인터페이스
    6. 픽셀 체이서 게임
    7. 가정용 식물 관수 시스템
    8. Arduino 반발 전자기 부상
    9. Alexa에 의해 활성화된 Arduino 홈 컨트롤러
    10. NeoMatrix Arduino Pong