Module MQTT-1
Module MQTT-1
2. MQTT Broker
MQTT Broker memiliki suatu alamat yang dapat diakses oleh Publisher dan
Subscriber. Tugas dari MQTT Broker ini yaitu sebagai penghubung transaksi data antara
publisher dan subscriber. MQTT Broker juga mengenali suatu data lewat sebuah
pengelompokan atau biasa disebut topic. Ketika Publisher mengirim data sensor A, B, C dengan
topic data1, dan suatu saat terdapat Subscriber yang melakukan subscribe dengan topic yang
sama data1, maka bisa dipastikan Subscriber akan menerima data sensor A, B dan C dari
Publisher.
3. Blok Subscriber
Blok Subscriber bertugas untuk melakukan subscribe data pada topic data1. Setelah
mendapatkan data yang berupa nilai sensor A, B dan C dari publisher, kita dapat mengolah data-
data tersebut untuk dimasukkan kedalam database, dianalisis atau dapat kita proses menjadi
sebuah sistem monitoring yang terstruktur dan memiliki nilai jual.
#define DHTPIN D3
#define DHTTYPE DHT22
WiFiClient espClient;
PubSubClient client(espClient);
unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE (50)
char msg[MSG_BUFFER_SIZE];
char msg2[MSG_BUFFER_SIZE];
int value = 0;
void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
randomSeed(micros());
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Create a random client ID
String clientId = "NodeMcu2113191141Client-";
clientId += String(random(0xffff), HEX);
// Attempt to connect
if (client.connect(clientId.c_str())) {
Serial.println("connected");
// Once connected, publish an announcement...
client.publish("outWawan2113191141", "ini dari wawan");
// ... and resubscribe
client.subscribe("outWawan2113191141");
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}
void setup() {
pinMode(BUILTIN_LED, OUTPUT); // Initialize the BUILTIN_LED pin as an output
Serial.begin(115200);
sensor_dht.begin();
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() {
Serial.println("Suhu :");
Serial.println(suhu);
Serial.println("Kelembaban :");
Serial.println(kelembaban);
if (!client.connected()) {
reconnect();
}
client.loop();
Script HTML
<!DOCTYPE html>
<html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Latiha iot</title>
<meta name="author" content="Fani Aghistiya Lestari">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js"
type="text/javascript"></script>
</head>
<body>
<h1>Hallo!!</h1>
<h3><div id="msgarr"> </div></h3>
<h3>Temperature : <div id="suhu"> </div></h3>
<h3>Humidity : <div id="humi"> </div></h3>
</body>
<script src="iot-script-conn2.js"></script>
</html>
Script JavaScript
var connected_flag = 0
var mqtt;
var reconnectTimeout = 2000;
MQTTconnect();
function onConnectionLost() {
connected_flag = 0;
console.log('Reconnecting...');
MQTTconnect();
}
function onFailure(message) {
setTimeout(MQTTconnect, reconnectTimeout);
}
function onMessageArrived(r_message) {
out_msg = "Message received " + r_message.payloadString + "<br>";
out_msg = out_msg + "Message received Topic " + r_message.destinationName;
console.log(out_msg);
document.getElementById("suhu").innerHTML = (temp);
document.getElementById("humi").innerHTML = (humi);
function onConnect() {
connected_flag = 1
console.log('Connected');
sub_topics();
}
function MQTTconnect() {
var s = "broker.hivemq.com";
var p = 8000;
if (p != "") {
port = parseInt(p);
}
if (s != "") {
host = s;
}
console.log('Connecting ...');
};
mqtt.onConnectionLost = onConnectionLost;
mqtt.onMessageArrived = onMessageArrived;
mqtt.connect(options);
return false;
function sub_topics() {
if (connected_flag == 0) {
out_msg = "<b>Not Connected so can't subscribe</b>"
console.log(out_msg);
return false;
}
var stopic = 'outWawan2113191141';
mqtt.subscribe(stopic);
return false;
}
if (connected_flag == 0) {
out_msg = "<b>Not Connected so can't send</b>"
return false;
}
if (msg == '0') {
msg = '1'
} else {
msg = '0';
}
console.log(msg);