Oke pada artikel kali ini membahas telegram kembali menggunakan sensor DHT untuk mendeteksi suhu dan kelembaban. Jadi nanti akan terdapat notifikasi jika suhu melebihi batas maksimal, kita juga bisa mengecek suhu dan kelembaban. Kontroler yang digunakan ESP-01 dengan tambahan shield dht11.

Alat dan bahan :

  • DHT11 Shield ESP-01, BELI
  • ESP-01 ESP8266, BELI
  • Kabel jumper, BELI
  • Breadboard, BELI
  • Push button, BELI
  • Library yang dibutukan, DISINI

Menggunakan telegram dibutuhkan API token dan ID chat yang akan dimasukkan ke sketch program Arduino. Caranya bisa di lihat di tutorial sebelumnya.

MEMULAI MENGGUNAKAN TELEGRAM

Sekarang mari kita rangkai alat dan bahannya untuk mengupload sketch program.

Rangkaian

Keterangan :

Jika sudah, disini saya pastikan sudah mendapatkan API token dan idchat, silahkan masukan pada sketch program di bawah ini. Upload sketch sampai done uploading dengan board : Generic ESP8266 Module.

Sketch Program

#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include "DHT.h"

#define DHTPIN 2

char ssid[] = "xxxxxxxxx"; //nama wifi
char password[] = "xxxxxxxxxxx"; //password wifi

#define BOTtoken "907580866:AAGulSeQkxWxsCew-6zQQbIihTFoBu91o" //token bot telegram
#define idChat "672053529" //idbot
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);

int Bot_mtbs = 1000;
long Bot_lasttime;
bool Start = false;

#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  dht.begin();
  delay(5000);
}

void loop() {
  delay(2000);

  float t = dht.readTemperature();
  Serial.print("Suhu saat ini : ");
  Serial.print(t);
  Serial.println(" *C");

  if (t > 37.00) {
    bot.sendChatAction(idChat, "Sedang mengetik...");
    Serial.print("Suhu saat ini : ");
    Serial.println(t);
    delay(3000);

    String suhu = "Intensitas suhu : ";
    suhu += int(t);
    suhu += " *C\n";
    suhu += "Suhu maksimal\n";
    bot.sendMessage(idChat, suhu, "");
    Serial.print("Mengirim data sensor ke telegram");
  }

  if (millis() > Bot_lasttime + Bot_mtbs) {
    int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

    while (numNewMessages) {
      Serial.println("Memeriksa Respon");
      handleNewMessages(numNewMessages);
      numNewMessages = bot.getUpdates(bot.last_message_received + 1);
    }

    Bot_lasttime = millis();
  }
}

void handleNewMessages(int numNewMessages) {
  Serial.println("Pesan baru...");
  Serial.println(String(numNewMessages));

  for (int i = 0; i < numNewMessages; i++) {
    String chat_id = String(bot.messages[i].chat_id);
    String text = bot.messages[i].text;

    if (text == "/cekSuhu") {
      delay(2000);
      float t = dht.readTemperature();
      String suhu = "Suhu sekarang : ";
      suhu += int(t);
      suhu += " *C";
      bot.sendMessage(idChat, suhu, "");
    }
    else if (text == "/cekHum") {
      delay(2000);
      float h = dht.readHumidity();
      String hum = "Hum sekarang : ";
      hum += int(h);
      hum += " %";
      bot.sendMessage(idChat, hum, "");
    }
    else if (text == "/start") {
      String welcome = "Perintah : \n";
      welcome += "/cekSuhu\n";
      welcome += "/cekHum";
      bot.sendMessage(chat_id, welcome);
    }
  }
}

Hubungkan ESP-01 dengan Shield DHT11 dan disupply dengan tegangan 5V.

Buka nama bot telegram yang sudah dibuat. Klik Start.

Untuk mengecek suhu menggunakan perintah /cekSuhu, sementara kelembaban /cekHum. Suhu maksimal disini 37, anda bisa mengubah sendiri sesuai kebutuhan.

Semoga bermanfaat, terima kasih.

Kategori: NodeMCU

1 Komentar

dika · Oktober 8, 2020 pada 3:17 am

fungsinya button di sini untuk apa ya?

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Scroll Up
id_IDIndonesian
en_USEnglish id_IDIndonesian