Halo Fanbot! Kali ini kita akan membuat sebuah proejct yang berkaitan dengan IoT Pertanian.
Pada project kali ini, kita akan membuat monitoring pH dan kelembaban tanah dengan menggunakan platform thingspeak.
Thingspeak merupakan salah satu platform cloud yang dapat kita gunakan untuk melakukan monitoring atau controlling dengan sistem Internet of Things (IoT). Thingspeak ini tergolong platform gratis yang open source untuk data real time.
[lwptoc numeration=”none” title=”Daftar Isi”]
Nah di project ini, pengiriman data real time ke thingspeak akan di lakukan oleh mikrokontroler NodeMCU ESP8266. NodeMCU ESP8266 merupakan mikrokontroler yang sudah memiliki fasilitas wifi untuk bisa terhubung dengan internet. Inilah kenapa NodeMCU di pilih untuk project ini. Di karenakan kita harus mengirimkan data ke cloud dengan menggunakan internet.
Sensor yang akan di gunakan di project ini adalah senor pH tanah untuk mengukur pH dan sensor soil moisture untuk mengukur kelembaban tanah. Sensor ini akan di hubungkan dengan NodeMCU ESP8266 agar dapat di baca dan di kirimkan ke platform thingspeak. Bagaimana caranya? yuk kita simak.
Monitoring pH dan Kelembaban Tanah Menggunakan Platform Thingspeak

Alat dan Bahan
- Komputer yang terinstall Arduino IDE
- NodeMCU ESP8266 1
- Sensor Soil Moisture 1
- Sensor pH Tanah 1
- Sumber 5V 1
- Projectboard 1
- LCD 16×2 1
- I2C LCD 1
- Kabel jumper Secukupnya
Rangkaian
Susun device di atas menjadi rangkaian seperti berikut. Pastikan semua terhubung dengan baik. Rapikan semua device agar lebih mudah diperbaiki jika terjadi kesalahan.

Setting Thingspeak
Setting Thingspeak ini akan menghasilkan ID yang digunakan untuk menghubungkan dengan project kita. Jangan lupa untuk mendaftarkan diri terlebih dahulu. Jika sudah terdaftar, ikutilah cara berikut ini.
- Masuk ke laman https://thingspeak.com/. Kemudian klik pada Channel.

- Klik New Channel untuk membuat channel baru.

- Setelah muncul seperti tampilan di bawah, isi nama channel kemudian centang pada field 1 dan field 2 untuk hasil pembacaan sensor pH dan Soil Moisture. Isi namanya dengan pH dan Kelembaban. Klik save channel untuk membuat channel kita.


- Jika sudah, maka akan dimunculkan tampilan seperti berikut. Channel ID yang ditampilkan di sini adalah yang akan digunakan di program Arduino IDE.

- Klik API Keys untuk melihat “Write API Key” untuk digunakan pada program Arduino IDE.

baca juga: Tutorial Monitoring Kelembaban Tanah di Kebun Anggrek dengan Arduino IoT Cloud
Program
Tahap selanjutnya adalah penulisan program pada Arduino IDE. Perhatikan keterangan (comment) untuk memahami program dengan baik. Masukkan terlebih dahulu library Liquidcrystal, dan thingspeak untuk menghindari error.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ThingSpeak.h>
#include <LiquidCrystal_I2C.h> //library untuk I2C LCD
LiquidCrystal_I2C lcd(0x27,16,2); //alamat I2C dan ukuran LCD
#define pinPH D3 //pin output Sensor PH ditempatkan di D3
#define pinSoil D4 //pin output Sensor SoilMoisture ditempatkan di D4
int bacaSensorPH = 0; //membaca hasil dari sensor pH
int bacaSensorSoil = 0; //membaca hasil dari sensor soilmoisture
float nilaiPH = 0.0; //nilai pH yang ditampilkan
float nilaiSoil = 0.0; //nilai kelembaban yang ditampilkan
const char *ssid = "*********";
const char *password = "***********";
WiFiClient client;
unsigned long myChannelNumber = 0000000;
const char * myWriteAPIKey = "***************";
void setup() {
lcd.init(); // mengawali LCD
lcd.backlight(); // menyalakan backlight LCD
pinMode(pinPH,INPUT); //inisialisasi pinPH sebagai input
pinMode(pinSoil,INPUT); //inisialisasi pinSoil sebagai input
Serial.begin(115200);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop()
{
bacaSensorPH = analogRead(pinPH); //baca pH
bacaSensorSoil = analogRead(pinSoil); //baca Soil Moisture
delay(500);
nilaiPH = (-0.0139*bacaSensorPH)+7.7851; //rumus pembacaan sensor pH
nilaiSoil = map(bacaSensorSoil, 1023, 465, 0, 100); //pengubahan nilai baca menjadi persen
//tampilan LCD
lcd.setCursor(0,0);
lcd.print("pH = ");
lcd.print(nilaiPH);
lcd.setCursor(0,1);
lcd.print("Lembab = ");
lcd.print(nilaiSoil);
//Pengiriman ke thingspeak
ThingSpeak.writeField(myChannelNumber, 1, nilaiPH, myWriteAPIKey);
ThingSpeak.writeField(myChannelNumber, 2, nilaiSoil, myWriteAPIKey);
delay(2000);
}
|
Ubahlah ssid dan password sesuai dengan wifi dan password wifi yang anda gunakan. Isikan pada bagian berikut.
const char *ssid = “*********”;
const char *password = “***********”;
Kemudian isi juga Channel ID dan APIkey bagian write pada bagian di bawah ini agar pengiriman data sesuai dengan channel yang kita gunakan.
unsigned long myChannelNumber = 0000000;
const char * myWriteAPIKey = “***************”;
Data yang sudah dikirimkan ke thingspeak akan ditampilkan seperti grafik. Kita dapat melihat data ini secara real time dengan mengakses thingspeak yang kita gunakan atau dapat juga menggunakan aplikasi smartphone Thing Viewer untuk melihat monitoring hasil pembacaan thingspeak.
Selamat mencoba.
*Note: Jika ada kendala terkait tutorial project di atas, silakan hubungi Minbot agar dapat segera kami perbaiki. Terima kasih.







mau tanya untuk mendapatkan rumus sensor ph caranya gimana?