DIY Smart Home Sensors with Arduino, MySensors and OpenHAB

by Jame Bruce



What We’re Making

The basic idea is that rather than adding onto our existing crowded local network using unreliable Wi-Fi or expensive Ethernet shields, we create an entirely separate mesh-capable network just for the Arduinos; then bridge that to the local network using a single gateway node, which has both an Ethernet connection and a radio connection to the other Arduinos. So we’re making a couple of sensor nodes, which gather data; and a gateway node, which relays that data onto the OpenHAB server.

Again, this is what works for me, because my Wi-Fi reception is so horrendous and I don’t want to clutter it with unnecessary data. If you’re happy with Wi-Fi, look at using the low cost ESP8266 Arduino-compatible with built-in Wi-Fi boards – MySensors supports those too.

Important Note for El Capitan Users and Arduino Clones: Apple managed to break the serial drivers used to communicate with a number of Arduino clone boards in the latest release of El Capitan thanks to new security measures. To see if you’re affected, look at your board and the chip closest the USB port. If it says CH340, you’re affected by this. Follow the instructions here to disable driver kext signing, install CH340 serial drivers again.

Components

  • For the gateway, you’ll need:

    • Arduino Uno
    • Ethernet Shield (W5100 based)
    • NRF24L01 module – I’ve used the +PA+LNA versions throughout, which have an increased range of up to 1km. The wiring is the same whichever you choose.
  • For each sensor node:

    • Arduino Uno
    • NRF24L01 module
    • Sensors (to start with, I’d suggest a temperature and humidity DHT11 or DHT22 module)

Learn More

Goto Original


저작자 표시 동일 조건 변경 허락
신고
Creative Commons License
블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Another Home Automation System- Forget me Not

by Inderpreet


This project is part of “Forget Me not” At Element14.com .
The project consists of several open source hardware platform such as Auduino Ethernet, Raspberry Pi, EnOcean sensor, CC3200, and MSP430 CC250.

Architecture

The following picture show the architecture very well.
This home-automation project is composed with Open source hardware platforms and serveral sensor module.

Demos

Blog posts

Authos is well noted on element14 about making them.

How to use WIZnet Ethernet in the project?

Arduino Ethernet is used for MQTT client. The Arduino Ethernet IOT device operates with a Current Sensor and a Present Sensor(PIR).



 

저작자 표시 동일 조건 변경 허락
신고
Creative Commons License
블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

MQTT 란 무엇인가?

MQTT 2015.01.30 08:20

MQTT (MQ Telemetry Transport)

IBM에서 최초로 개발한 MQTT는 텔레메트리 장치, 모바일 기기에 최적화된 라이트 메시징 프로토콜로서 더 다양한 앱과 서비스의 등장으로 HTTP등의 기존 프로토콜만으로는 커뮤니케이션의 다양한 요구사항을 수용할 수 없게 되었고, 제한된 통신 환경을 고려하여 디자인된 MQTT 프로토콜은 모바일 영역의 진화에 따라 최적의 프로토콜로 주목받고 있다.

MQTT 프로토콜 설계의 의도

  • 프로토콜이 차지하는 모든 면의 리소스 점유(footprint)를 최소화
  • 느리고 품질이 낮은 네트워크의 장애와 단절에 대비
  • 클라이언트 애플리케이션 동작에 자원 활용이 극히 제한적임을 고려
  • 다수의 클라이언트 연결에 접합한 Publish/Subscribe 네트워크 채용
  • 신뢰성 있는 메시징을 위한 QoS(Quality of Service) 옵션 제공.
  • 개방형 표준메시징프로토콜 - 3rd Party 기기 제조업체와 소프트웨어 개발업체의 용이한 도입, 적용을 유도

주요 특징

  • IBM과 Eurotech(Arcom)에 의해 1999년 최초 개발
  • 센서/장치 + 모바일 기기들의 연결을 위한 프로토콜
  • MQTT 프로토콜 오픈소스로 공개 (http://www.mqtt.org)
  • 단순하고 미니멀한 Pub/Sub 메시징 체제
    • 기업 경계 박의 Edge 네트워크 장치와 기업 내의 백엔드 애플리케이션 간 메시지 교환에 접합
    • 간편한 메시징을 위한 직관적 verb set(connect/disconnect publish/subscribe) 제공
    • 오버헤드를 최소화
    • 가장 작은 메시지 사이즈는 2byte: 가변길이 MQTT헤더 + 애플리케이션 Payload
    • Payload 데이터에 중립적: 별도의 다른 애플리케이션 헤더 불필요
    • 클라이언트 라이브러리: C버전은 30KB, Java 버전은 100KB 내외
  • Pub/Sub에 있어서 세가지 메시징 신뢰성을 위한 QoS(Quality of Service) 레벨 제공
    • 0 메시지가 최대 1번 전달, 유실 가능성 있음
    • 1 메시지가 최소 1번 전달, 중복 전달 가능성 있음
    • 2 메시지가 단한번, 정당성 있게 전달
  • 클라이언트와 서버간의 연결을 잃었을때 이를 보정하기 위한 자체 기능
    • Last will and testament
      클라이언트가 예고 없이 연결을 잃을 경우 이벤트가 서버에서 발생, 서버 측에서 연결의 유실 여부 인지
    • Durable subscription
      서버에 클라이언트의 구독(subscription)정보 저장됨, 세션 종료 후 재접속 시에도 재작업 없이 Pub/Sub유지
    • Clean session 기능
      연결 해제 후 다시 연결되었을 때의 이전 세션 유지/삭제 선택

이외 특징

  • FB 메신져가 이걸 사용. 국내 통신사 PUSH 서버도 이걸 사용함
  • 일단 FB가 쓰니, 동남아권 Telco에서 패킷 걸리는 문제는 없을듯
  • Qos 0,1,2로 해서, 2 의 경우 message delivery를 gurantee함
  • 저전력!! 이게 중요
  • XMPP에 비해서 훨씬 경량. (XMPP는 XML, MQTT는 byte로 보내는데, 2바이트부터 시작)
  • MQTT 서버를 라즈베리와 같은 임베디드 서버에도 넣을 수 있음. IOT용!! 즉 Things가 서버가 될 수 있다!!
  • 대부분 사용자 인증만 제공 (user id/password 방식) 이것도 대부분 서버들이 파일에 저장한다. (IDM이나 KEY 시스템과 연계 필요)
  • TLS/SSL은 지원. X.509 인증서를 이용한 양방향 인증도 지원

원문보기

저작자 표시 동일 조건 변경 허락
신고
Creative Commons License
블로그 이미지

밤소 MidnightCow

위즈네트 칩(W5300, W5200, W7100, W7500) 개발자

Tag mqtt

티스토리 툴바