0% found this document useful (0 votes)
8 views8 pages

Monitoring

tugass monitoring

Uploaded by

Tamara Maharani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views8 pages

Monitoring

tugass monitoring

Uploaded by

Tamara Maharani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Mengatur LED dan menampilkan status LED, Menampilkan nilai

suhu dan Kelembaban pada panel MQTT


https://wokwi.com/projects/394660957788304385
https://www.youtube.com/watch?v=yJa-8aDWGLc

#include <WiFi.h>
#include <MQTT.h>
#include "DHT.h"
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
WiFiClient net;
MQTTClient client;
#define DHT22Pin 5
#define ledRed 27
#define ledBlue 26

DHT dht(DHT22Pin, DHT22);


const int trigPin = 23;
const int echoPin = 22;
long duration;
int distance;
unsigned long lastMillis = 0;

void connect(){
// Menghubungkan ke WiFi
Serial.print("Cek WiFi");
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("Sukses Terhubung ke WiFi");
}

void subscribeData(String &topic, String &data){


Serial.print("Topic: ");
Serial.println(topic);
Serial.print("Data: ");
Serial.println(data);

if(topic == "rumah/iot/led1"){
digitalWrite(ledRed, data.toInt()); //control led 1
if(data.toInt()==1){
client.publish("rumah/iot/statusled1",String("ON"), true, 1);
}else{
client.publish("rumah/iot/statusled1",String("OFF"), true, 1);
}
}
else if(topic == "rumah/iot/led2"){
digitalWrite(ledBlue, data.toInt()); //control led 2
if(data.toInt()==1){
client.publish("rumah/iot/statusled2",String("ON"), true, 1);
}else{
client.publish("rumah/iot/statusled2",String("OFF"), true, 1);
}
}
else if(topic == "rumah/iot/all LED ON"){
digitalWrite(ledBlue, HIGH);
digitalWrite(ledRed, HIGH);
client.publish("rumah/iot/statusled1",String("ON"), true, 1);
client.publish("rumah/iot/statusled2",String("ON"), true, 1);
}
else if(topic == "rumah/iot/all LED OFF"){
digitalWrite(ledBlue, LOW);
digitalWrite(ledRed, LOW);
client.publish("rumah/iot/statusled1",String("OFF"), true, 1);
client.publish("rumah/iot/statusled2",String("OFF"), true, 1);
}
}

void publish(){
float hum = dht.readHumidity();
float temp = dht.readTemperature();
Serial.print("Temperature : ");
Serial.print(temp);
Serial.print(" C ");
Serial.print("Humidity : ");
Serial.print(hum);
Serial.println(" % ");
ultrasonic();
client.publish("rumah/iot/dht/temp", String(temp), true, 1); //
client.publish("rumah/iot/dht/humi", String(hum), true, 1); // publish
variabel humidity ke topic rumah/iot/humi dengan QoS 1
client.publish("rumah/iot/level/cm", String(distance), true, 1);
}

void ultrasonic() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
if (distance>=0 && distance <51){
client.publish("rumah/iot/level/rendah",String("ON"), true, 1);
client.publish("rumah/iot/level/sedang",String("OFF"), true, 1);
client.publish("rumah/iot/level/tinggi",String("OFF"), true, 1);
} else if (distance >51 && distance<101){
client.publish("rumah/iot/level/rendah",String("OFF"), true, 1);
client.publish("rumah/iot/level/sedang",String("ON"), true, 1);
client.publish("rumah/iot/level/tinggi",String("OFF"), true, 1);
} else{
client.publish("rumah/iot/level/rendah",String("OFF"), true, 1);
client.publish("rumah/iot/level/sedang",String("OFF"), true, 1);
client.publish("rumah/iot/level/tinggi",String("ON"), true, 1);
}
}

void setup() {
pinMode(ledRed,OUTPUT);
pinMode(ledBlue,OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
dht.begin();
Serial.begin(9600);
WiFi.begin(ssid, pass);
connect();
broconnect();
}

void broconnect(){
client.begin("broker.emqx.io",net);
client.onMessage(subscribeData);
Serial.print("Cek Broker");
while(!client.connect("")){ // Client ID boleh dikosongkan
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("Sukses Terhubung ke Server");
client.subscribe("rumah/iot/#", 1);
}

void loop() {
client.loop();
broconnect();//connect ulang ke broker
// publish a message roughly every second.
if (millis() - lastMillis > 1000) {
lastMillis = millis();
publish();
}
delay(10);
}
1. Install dan Buka MQTT Panel dari Playsotre

2. Tambahkan koneksi
2.Buat Koneksi dengan nama smarthome 3.Tambah panel Switch untuk mengatur
dengan Client ID sembarangan dan LED 1 dan LED 2
simpan

4.Tambahkan Panel Button untuk 5.Tambahkan Panel LED INDICATOR


mengatur ALL LED ON dan ALL LED OFF sebagai kondisi LED 1 dan LED 2
6.Tambahkan Panel Gauge untuk 7.Tambahkan Panel Progres untuk
Temperatur Kelembaban dengan type Vertical

8.Tambahkan Panel Line Graph untuk


Grafik Suhu dan Kelembaban

9. Koneksikan dengan mengclick tanda awan di atas

You might also like