ESP32 Project#-ESP32 Send SHT20 RS485 Sensor Data to ThingSpeak

Dalam panduan ini, kita akan belajar cara mengirim pembacaan sensor menggunakan ESP32 ke ThingSpeak. pada praktek kali ini, kita akan menggunakan sensor SHT20, namun anda bisa juga mengganti sht20 ini dengan sensor yang lain seperti sensor dht11 atau lainya.pada percobaan kali ini kita akan menggunakan arduino IDE untuk tool programmingnya.

ThingSpeak memungkinkan Anda untuk mempublikasikan pembacaan sensor ke situs web mereka dan menampilkannya dalam bentuk grafik dengan waktu tertentu. Setelah itu, Anda dapat mengakses pembacaan tersebut dari mana saja di dunia.

Ads Jadwal Training bisaioti Offline
NoMateriTanggalWaktuHargaLokasiViewAction
1IOT PLC SCADA Siemens7-8 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
2IOT PLC SCADA Omron14 - 15 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
3IOT PLC SCADA Schneider21-22 Juni 202508.00 -16.002000000SurabayaSilabusDaftar Sekarang
4IOT PLC SCADA Allen Bradley28-29 Juni 202508.00-16.002000000SurabayaSilabusDaftar Sekarang

Ada berbagai cara untuk mengirim pembacaan sensor ke ThingSpeak. Dalam tutorial ini, kita akan menggunakan salah satu cara termudah, yaitu dengan memanfaatkan library thingspeak-arduino. library ini menyediakan metode untuk mempublikasikan pembacaan sensor ke satu atau beberapa field dengan mudah. Anda bisa melihat contoh-contoh library ini di situs GitHub-nya. Sebagai contoh, kita akan menggunakan sensor SHT20, tetapi Anda dapat menggunakan sensor lain dengan memodifikasi coding yang ada.

Menyiapkan arduino IDE

Untuk tutorial ini, kita akan memprogram ESP32 menggunakan Arduino IDE. Jadi, pastikan Anda telah menginstal add-on ESP32 di Arduino IDE Anda. Jika Anda ingin memprogram ESP32 menggunakan VS Code dengan ekstensi PlatformIO.

Cara install library Thingspeak

Untuk mengirim pembacaan sensor ke ThingSpeak, kita akan menggunakan pustaka thingspeak-arduino. Anda bisa menginstal pustaka ini melalui Arduino Library Manager. Buka Sketch > Include Library > Manage Libraries… dan cari “ThingSpeak” di Library Manager. Instal pustaka ThingSpeak yang dibuat oleh MathWorks.

thingspeak library

Install Library Modbus RTU DFRobot_RTU

kerena sensor suhu dan kelembaban SHT20 ini menggunakan protokol modbus RTU untuk sistem komunikasi pengiriman datanya.Maka kita harus melakukan instalasi libratynya.

dfrobot

Komponen-komponen yang dibutuhkan
  1. Sensor SHT20
  2. ESP32 DEVKIT V1
  3. Converter TTL to RS485
  4. Kabel Secukupnya
Wiring Diagram

Kita akan menggunakan komunikasi serial pada esp32 untuk menghubungkan sensor SHT20 dengan controller.pin yang digunakan untuk komunikasi serial (TX RX) ini adalah menggunakan pin 16 dan 17 dimana pada coding nanti kita akan menggunakan serial2.

sht20 with esp32

Cara setting thingspeak

Buka situs ThingSpeak dan klik tombol “Get Started For Free” untuk membuat akun baru. Akun ini akan terhubung dengan akun MathWorks. Jadi, jika Anda sudah memiliki akun MathWorks, sebaiknya masuk menggunakan akun tersebut.

Membuat Saluran Baru
Setelah akun Anda siap, masuklah, buka tab “Channels” dan pilih “My Channels”.

Tekan tombol “New Channel” untuk membuat saluran baru.

new channel

Ketikkan nama untuk Channel Anda dan tambahkan deskripsi. Dalam contoh ini, kita hanya akan menampilkan parameter suhu. Jika Anda ingin menampilkan beberapa pembacaan (seperti kelembaban dan tekanan), Anda bisa mengaktifkan lebih banyak field seperti yang akan dijelaskan nanti dalam tutorial ini.

membaca suhu

Klik tombol “Save Channel” untuk membuat dan menyimpan saluran Anda.

Cara menampilkan chart di thingspeak

view chart

API KEY

Untuk mengirim data dari ESP32 ke ThingSpeak, Anda memerlukan Write API Key. Buka tab “API Keys” dan salin Write API Key ke tempat yang aman karena Anda akan membutuhkannya sebentar lagi.

Coding Program
#include  “WiFi.h” //ganti karakter “” dengan ‘>’ jika error
WiFiClient client;
#include “DHT.h”
#define DHTPIN 15
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
String thingSpeakAddress = “api.thingspeak.com”;
String writeAPIKey;
String tsfield1Name;
String request_string;
void setup()
{
  Serial.begin(9600);
  WiFi.disconnect();
  WiFi.begin(“esp32”, “wemoslolin”);
  while ((!(WiFi.status() == WL_CONNECTED))) {
    delay(300);
    Serial.print(“.”);
  }
  Serial.println(“”);
  Serial.println(“WiFi connected”);
  Serial.println(“IP address: “);
  Serial.println(WiFi.localIP());
  dht.begin();
}
void loop()
{
  delay(2000);
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);
  kirim_thingspeak(t, h);
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println(“Failed to read from DHT sensor!”);
    return;
  }
}
void kirim_thingspeak(float suhu, float hum) {
  if (client.connect(“api.thingspeak.com”, 80)) {
    request_string = “/update?”;
    request_string += “key=”;
    request_string += “VSQ1UVHKJEMKCHWW”;
    request_string += “&”;
    request_string += “field1”;
    request_string += “=”;
    request_string += suhu;
    request_string += “&”;
    request_string += “field2”;
    request_string += “=”;
    request_string += hum;
    Serial.println(String(“GET “) + request_string + ” HTTP/1.1\r\n” +
                 “Host: ” + thingSpeakAddress + “\r\n” +
                 “Connection: close\r\n\r\n”);
                 
    client.print(String(“GET “) + request_string + ” HTTP/1.1\r\n” +
                 “Host: ” + thingSpeakAddress + “\r\n” +
                 “Connection: close\r\n\r\n”);
    unsigned long timeout = millis();
    while (client.available() == 0) {
      if (millis() – timeout > 5000) {
        Serial.println(“>>> Client Timeout !”);
        client.stop();
        return;
      }
    }
    while (client.available()) {
      String line = client.readStringUntil(‘\r’);
      Serial.print(line);
    }
    Serial.println();
    Serial.println(“closing connection”);
  }
}

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Sekarang