2016-06-05 4 views
0

스마트 홈 시스템 용으로 mqtt + nodejs 서버가 있습니다. 첫째, 내 mqtt + nodejs 서버의 LED를 깜박이려고합니다.Arduino + esp8266 + mqtt

나는 이것을 nodemcu 보드로 만들었습니다. 이 경우 pubsubclient.h을 사용했지만 더 많은 센서와 LED를 추가하려고했습니다. 그 때문에 Arduino mega + esp8266을 사용하기로 결정했습니다. esp8266을 통해 내 서버에 연결하려고합니다. 문제는 Arduino mega + esp8266에 pubsubclient.h을 사용할 수 없다는 것입니다.

그리고 저는 AT 명령을 사용하여 wifi에 연결하기 시작했습니다. 이제 Wi-Fi에 연결할 수 있지만 지금 mqtt을 어떻게 사용할 수 있는지 알 수 없습니다.

라이브러리 espduino이 발견되었지만 특별한 연결이 필요합니다.

내 프로젝트에 어떻게 AT 명령과 Mqtt를 사용할 수 있습니까?

+0

PubSubclient와 함께 esp8266과 arduino 사이에 [mqtt]가 중복 될 수 있습니다. (http://stackoverflow.com/questions/37030019/mqtt-between-esp8266-and-arduino-with-pubsubclient) – hardillb

답변

0

대신 멀티플렉서 (예 : 4051)를 사용해야합니다. 4 개의 IO 포트를 8 개의 IO (또는 1 개의 아날로그 + 3 개의 IO 포트 ~ 8 개의 아날로그 포트)로 확장 할 수 있습니다. 더 많은 포트가 4067과 같은 것을 얻고 싶다면 5 개에서 16 개의 포트를 얻을 수 있습니다.

esp8266은 일반적인 Arduino (ATMEGA328 칩)보다 훨씬 강력합니다. ArduinoMega보다 저렴합니다. 그래서 마이크로 콘트롤러로 사용하십시오 (이미 사용하고 있다면).

0

MQTT 라이브러리를 통해 브로커에 연결하려면 WiFi 또는 Ethernel 클라이언트 인스턴스를 표시해야합니다. 따라서 직렬 통신을하는 동안 ESP와 함께 작동하는 직렬 Arduino 라이브러리가 있어야하며 프로토콜 헤더와 스택을 구현해야합니다.

WiFiEsp library을 사용하면 Wi-Fi 클라이언트 인스턴스를 만들 수 있습니다. 따라서 클라이언트를 매개 변수로 PubSubClient 생성자에 전달할 수 있습니다. 예를 들면 다음과 같습니다.

언급 한대로 다른 직렬 라이브러리는 espduino입니다. MQTT 라이브러리를 사용하여 다음과 같이 Arduino 라이브러리를 사용할 수 있습니다.

#include <SoftwareSerial.h> 
#include <espduino.h> 
#include <mqtt.h> 

SoftwareSerial debugPort(2, 3); // RX, TX 
ESP esp(&Serial, &debugPort, 4); 
MQTT mqtt(&esp); 

행운을 빈다!

0

Homie-esp8266을 시도해 보시기 바랍니다. 나는 그것이 당신의 현재 설정에 맞을 것이라고 생각합니다. MQTT, 쉬운 wifi 구성 및 OTA (Over The Air) 펌웨어 업데이트를 지원합니다. documentation도 꽤 간단합니다. 그것은 내가 스마트 홈 프로젝트에서 현재 사용하고있는 것입니다.