Project MQTT Sensor Kelembapan Tanah
Project MQTT Sensor Kelembapan Tanah
Project ini untuk monitoring kelembapan tanah dari jarak jauh dengan komunikasi MQTT (lebih realtime dan cepat)
Rangkaian:
SIG(Sensor) --> 33 (ESP32)
GND(Sensor) --> GND (ESP32)
VCC(Sensor) --> 3.3V (ESP32)
Note: Jangan lupa masukkan Library MQTT dan WiFi
ESP32 - MQTT.h
#include <WiFi.h>
#include <MQTT.h>
String ssid = "Wokwi-GUEST";
String pass = "";
WiFiClient net;
MQTTClient client;
void konekWifi(){
Serial.println("Coba Konek ke WiFi...");
WiFi.begin(ssid,pass);
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(50);
}
Serial.println("\nWiFi Terhubung");
}
void konekMqtt(){
while (!client.connected()){
Serial.println("Coba konek ke MQTT...");
if (client.connect("Bebas-Aja")){
Serial.println("Terhubung ke MQTT");
client.publish("wokwi/cek/koneksi", "online");
}
else {
Serial.println("MQTT gagal terhubung");
Serial.println("Sedang konek ulang, sabar!");
}
}
}
void setup() {
Serial.begin(115200);
pinMode(33, INPUT);
konekWifi();
client.begin("mqtt-dashboard.com", net);
client.setWill("wokwi/cek/koneksi", "offline", true, 1);
}
void loop() {
if (!client.connected()){
konekMqtt();
}
client.loop();
int baca = analogRead(33);
int s = map(baca, 0 , 4096 , 0, 100);
Serial.println("nilai sensor tanah: "+ (String) s);
if (s > 50){
client.publish("wokwi/cek/kelembapanTanah", "Tanah Basah");
}
else {
client.publish("wokwi/cek/kelembapanTanah", "Tanah Kering");
}
delay (2000);
}
Rangkaian:
SIG(Sensor) --> 33 (ESP32)
GND(Sensor) --> GND (ESP32)
VCC(Sensor) --> 3.3V (ESP32)
Note: Jangan lupa masukkan Library PubSubClient dan WiFi
ESP32 - PubSubClient.h
#include <WiFi.h>
#include <PubSubClient.h>
String ssid = "Wokwi-GUEST";
String pass = "";
WiFiClient espClient;
PubSubClient client(espClient);
void konekWifi(){
Serial.println("Coba Konek ke WiFi...");
WiFi.begin(ssid,pass);
while (WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(50);
}
Serial.println("\nWiFi Terhubung");
}
void konekMqtt(){
while (!client.connected()){
Serial.println("Coba konek ke MQTT...");
if (client.connect("Bebas-Aja", "wokwi/cek/koneksi", 1, true, "offline")){
Serial.println("Terhubung ke MQTT");
client.publish("wokwi/cek/koneksi", "online", true);
}
else {
Serial.println("MQTT gagal terhubung");
Serial.println("Sedang konek ulang, sabar!");
}
}
}
void setup() {
Serial.begin(115200);
konekWifi();
client.setServer("mqtt-dashboard.com", 1883);
pinMode(33, INPUT);
}
void loop() {
if (!client.connected()){
konekMqtt();
}
client.loop();
int baca = analogRead(33);
int s = map(baca,0,4096,0,100);
Serial.println("nilai sensor tanah: "+ (String) s);
if (s > 50){
client.publish("wokwi/cek/kelembapanTanah", "Tanah Basah");
}
else {
client.publish("wokwi/cek/kelembapanTanah", "Tanah Kering");
}
delay (2000);
}