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?