Arduino 용 Arduino / XMPP 클라이언트를 사용한 홈 자동화
-
12-09-2019 - |
문제
집에서 특정 작업을 자동화하기위한 시스템을 설정하려고합니다.
서버 측 응용 프로그램이 명령/데이터를 아르두노 (첨부 Arduino 이더넷 방패) 웹을 통해.
여기서 Arduino는 서버 응용 프로그램의 센서 인터페이스 또는 서버 앱의 명령 executor 인터페이스 역할을 할 수 있습니다.
예 : (사용자 스토리) :
내 집의 오버 헤드 워터 탱크에는 Arduino (Arduino 이더넷 방패가 부착 된)가 부착 된 수위 센서가 있습니다.
다른 Arduino (Arduino 이더넷 방패가 부착 된)는 릴레이/래치와 함께 부착됩니다. 이 릴레이/래치는 워터 펌프에 연결됩니다.
이제 웹의 서버 측 응용 프로그램은 물 탱크의 Arduino로부터 수위 정보를받을 수 있습니다.
수위 정보에 따라 웹 애플리케이션은 워터 펌프의 워터 펌프의 Arduino에 적절한 신호/명령을 보내 워터 펌프를 '끄기'또는 스위치를 끄려면 '수 펌프를 꺼내야합니다.
이제 그러한 시스템이 웹을 통해 작동하기 위해서는 우선 순위의 순서대로 솔루션 유형 중 하나를 사용한다고 생각합니다.
사용 XMPP 서버 응용 프로그램과 Arduino 간의 통신.
HTTP 폴링 사용.
HTTP 교수형 사용.
솔루션 번호 1의 경우 Arduino에 거주하는 XMPP 클라이언트를 구현해야합니다.
Arduino에 거주 할만 큼 작은 XMPP 클라이언트를 작성할 수 있습니까?
그렇다면 Arduino에 작성 해야하는 최소 XMPP 클라이언트 기능은 무엇입니까? gtalk, 등.?
솔루션 번호 2 및 3의 경우 구현에 대한 지침이 필요합니다.
또한 어떤 솔루션이 비용 효율적이고 쉽게 확장 가능합니까?
해결책 8
사용 가능한 모든 옵션을 살펴본 후에는 만족하지 못했습니다.
현재 위에서 정의한 문제에 대한 내 자신의 솔루션을 제시하기 위해 노력하고 있습니다.
해결책은 내가 위의 'Dustin'에 대답 한 의견의 선에 있습니다.
내 솔루션의 첫 번째 릴리스를 여기에 올리 자마자 Project URL을 게시합니다.
다른 팁
MQTT를 살펴볼 수 있습니다. Arduino 라이브러리가 있으며 간단한 게시자 수입자 메시지 중개인이 있습니다.
나는 당신이하려는 일을 위해 그 중 어느 것도 찾지 않을 것이라고 생각합니다.
주어진 간격으로 Arduino에서 센서 데이터를 공급하고 다른 쪽이 스마트를 수행하도록하십시오.
또한 이러한 유형의 프로젝트의 경우 이더넷 방패를 피하고 어느 쪽도 사용하려고했습니다. xbee 또는 RFM12B. 이것들은 그 방향으로 당신을 안내하지만, 더 중요한 것은 원격 측정법과 제어를 모두 수행하는 더 많은 장치를 갖는 것이 훨씬 쉽게 만들어줍니다.
같은 것이 있다면 XMPP 그것은 Arduino에서 실행되었으며, 더 똑똑한 서버 측 프로세스를 통해 프록시 된 필수 프로토콜이 될 것입니다. 즉, 비슷한 양의 작업 일 것입니다. 가능할 수 있지만 응용 프로그램 코드와 함께 1KB RAM의 XMPP는 정말 고통 스럽습니다.
우리는 오픈 소스 릴레이 인프라를 연구하여 웹을 통해 Arduinos (및 TCP/IP 소켓을 지원하는 다른 장치)를 액세스 할 수 있도록합니다. 그런 다음 신청서는 간단한 REST API를 통해 Arduinos를 호출 할 수 있습니다. 보다 http://www.yaler.org/ 자세한 정보와 라이브 데모.
안부, 탐버그
개발 프로젝트가 있으며 정책 및 데이터 레코더 기능이 있습니다. (XMPP의 센서/Any_Data_Source)http://middlewaresensing.wordpress.com/
좋은 오래된 RS485를 사용하여 센서 액추에이터에 도달하지 않겠습니까? 간단한 프로토콜 (주소, 명령, 데이터) 만 발명하십시오. 더 복잡한 것이 필요한 경우 다른 사람을 RS485/이더넷 브리지로 사용하십시오.
오픈 소스 프로젝트
센서 및 네트워크 관리 | 레코드 센서 데이터 | 차트 | 정책 | 이력/날짜/센서 규칙 | SMS/이메일/URL/Twitter/XMPP 알림 | 이벤트 로깅 | Google지도 | 그리고 훨씬 더
wiki at dev.hci.uma.pt/mediawiki/index.php
Middlewaresensing.wordpress.com의 블로그
HTTP Post를 사용하여 서버로 보내는 데이터를 사용할 수 있으며 센서 데이터는 XMPP를 통해 게시됩니다. HTTP Post (Arduino와 같은 Resource Limited 장치의 경우) 및 Sox_Tools이 시스템에서 XMPP를 통해 게시 할 XMPP 클라이언트
Restduino라는 Arduino (이더넷 포함)에서 REST와 같은 HTTP 요청을하고 JSON 응답을 받기위한 새로운 라이브러리가 있습니다. Arduino 프로젝트에 유용한 드롭 인 HTTP 인터페이스가 될 수 있습니다.
http://jasongullickson.posterous.com/restduino-arduino-hacking-for-rest-of-us