Trang chủ —› Tin tức —› Công nghệ —› Gửi tín hiệu MQTT với Wemos D1 (có kèm code mẫu)

Gửi tín hiệu MQTT với Wemos D1 (có kèm code mẫu)

4 Tháng Hai,2018 Đăng bởi: admin
Chào các bạn,
Ở bài viết này mình sẽ hướng dẫn các bạn cách gửi tín hiệu MQTT giao tiếp với các thiết bị qua mạng internet nhé
Video hướng dẫn đây nhé

Học lập trình ở đâu

Còn code mẫu đây nhé

/* </> */
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include<string>
// Update these with values suitable for your network.
#define ssid “TenMangWifi”
#define password “PassWifi”
#define mqtt_server “m13.cloudmqtt.com”
#define mqtt_topic_pub “Topic2”
#define mqtt_topic_sub “Topic2”
#define mqtt_user “imjxzepj”
#define mqtt_pwd “Ulv-9P3pNxx7”
const uint16_t mqtt_port = 17717;
String inString = “”;

WiFiClient espClient;// Tạo đối tượng wificlient
PubSubClient client(espClient);// Khai báo là client có thuộc tính của PubSubClient
long lastMsg = 0;
char msg[50];
int value = 0;

void setup() {
Serial.begin(115200);
setup_wifi(); // Hàm tự viết ở dưới để kết nối wifi
client.setServer(mqtt_server, mqtt_port);// Hàm kết nối vào mqtt server
client.setCallback(callback);
}

void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print(“Connecting to “);
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
Serial.println(“”);
Serial.println(“WiFi connected”);
Serial.println(“IP address: “);
Serial.println(WiFi.localIP());
}

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 reconnect() {
// Loop until we’re reconnected
while (!client.connected()) {// Nếu chưa kết nối
Serial.print(“Attempting MQTT connection…”); // thì in ra dòng này
// Attempt to connect
if (client.connect(“ESP8266Client”,mqtt_user, mqtt_pwd)) { //nếu kết nối đúng
Serial.println(“connected”);// in ra là đã kết nối
// Once connected, publish an announcement…
client.publish(mqtt_topic_pub, “ESP_reconnected”);// rồi gửi lên broker là ESP_reconnected
// … and resubscribe
client.subscribe(mqtt_topic_sub);// và lại hóng tin từ broker
} else {
Serial.print(“failed, rc=”); // còn nếu không thì in ra cái thất bại
Serial.print(client.state());// in ra trạng thái của client
Serial.println(” try again in 5 seconds”);
// Wait 5 seconds before retrying
delay(5000);
}
}
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
long now = millis();// gán thời gian bây giờ là millis
if (now – lastMsg > 2000) {// Cái này là cứ 2s
lastMsg = now;
++value;// giá trị được cộng 1
snprintf (msg, 75, “hello world #%ld”, value);// cái này là kiểu như gán giá trị của biến mảng mgs với kích thức là 75 , hello word rồi giá trị đc thay vào %d
Serial.print(“Publish message: “);
Serial.println(msg);
client.publish(mqtt_topic_pub, msg);// đẩy lên broker
}
}


Notice: WP_Query được gọi với một tham số đã bị loại bỏ kể từ phiên bản 3.1.0! Hãy sử dụng ignore_sticky_posts thay cho caller_get_posts (sẽ sớm bị loại bỏ) in /home/lapt0260/public_html/wp-includes/functions.php on line 4045

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *