/*
* subscribe from esp_mqtt server
* https://github.com/martin-ger/esp_mqtt
*/
#include <ESP8266WiFi.h>
#include <PubSubClient.h> //
https://github.com/knolleary/pubsubclient
#define MQTT_SERVER "192.168.4.1"
// esp_mqtt server
#define MQTT_PORT 1883
#define MQTT_TOPIC
"nopnop2002/#" // You can change
#define SYSTEM_TOPIC "$SYS/broker/time"
// Reserved
const char* SSID = "MyAP";
const char* PASSWORD = "";
WiFiClient espClient;
PubSubClient client(espClient);
void errorDisplay(char* buff) {
Serial.print("Error:");
Serial.println(buff);
while(1) {
delay(200);
}
}
void callback(char* topic, byte* payload, unsigned int
length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();
}
void setup() {
delay(1000);Serial.begin(9600);
Serial.print("Wait for WiFi...");
WiFi.begin(SSID, PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.print("subnetMask: ");
Serial.println(WiFi.subnetMask());
Serial.print("gatewayIP: ");
Serial.println(WiFi.gatewayIP());
Serial.print("Connect to ");
Serial.println(MQTT_SERVER);
client.setServer(MQTT_SERVER, MQTT_PORT);
client.setCallback(callback);
char clientid[20];
sprintf(clientid,"ESP8266-%06x",ESP.getChipId());
Serial.print("clientid=");
Serial.println(clientid);
Serial.print("Attempting MQTT connection...");
// Attempt to connect
if (!client.connect(clientid)) {
errorDisplay("connect Fail");
}
Serial.println("connected");
client.subscribe(MQTT_TOPIC);
client.subscribe(SYSTEM_TOPIC);
}
void loop() {
client.loop(); // Receive MQTT Event
} |