Di musim pandemi gini bingung antara pengen jalan jalan dan menjaga kesehatan ya ges, udah hampir 6 bulan lamanya indonesia merasakan dampak keganasan covid 19 ini. daripada bengong di rumah yuk kita utak atik ESP32, sebenarnya udah lama punya ini gw ESP32 ta entah kenapa belum ada hasrat untuk ngoprek ESP32 ini, mungkin karena selama ini dimanjakan ama STM32 jadi belum pengen pindah ke lain hati. Padahal gw paham ESP32 ini punya potensi besar, support Wifi dan BLE dalam satu board dengan harga relatif murah, ini adalah poin plus plus plus yang sangat menarik. Di marketplace bisa kita temukan banyak penjual ESP32 ini, untuk harga saya kira ada di kisaran 70 ribuan. Klo kalian sudah memiliki ESP8266 maka board tersebut bisa juga digunakan pada tutor ini hanya saja akan membutuhkan sedikit perubahan seperti library yang digunakan (ESP8266WiFi.h).
please corona, klo km datang hanya untuk nyakitin doank, ce2 indonesia juga banyak yg lebih sadis.
Ok sebelum memulai jangan lupa mwndownload arduino IDE nya ya, setelah itu di bagian preference tambahkan url berikut https://dl.espressif.com/dl/package_esp32_index.json pada kolom additional board manager agar kita dapat memilih ESP32 nantinya. Setelah ditambahkan maka langkah selanjutnya adalah masuk ke board manager dan mengetikkan esp32 kemudian kita install package nya. Apabila telah selesai maka kita dapat melihat ada tambahan ESP32 arduino beserta pilihan board board nya yang dapat kita pilih. Oh iya, karena board gw adalah DOIT ESP32 DEVKIT V1 maka saya akan memilih board tersebut pada arduino IDE. Di bawah ini adalah source code untuk ESP32
include "WiFi.h"
unsigned long uptime;
long randomNumberT, randomNumberH;
const char WEBSITE[] = "xxxx.mybluemix.net";
const char* MY_SSID = "nama_ssid_kamu";
const char* MY_PWD = "password_ssid_kamu";
void setup() {
Serial.begin(115200);
Serial.print("Connecting to "+*MY_SSID);
WiFi.begin(MY_SSID, MY_PWD);
Serial.println("connecting …");
while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
Serial.print(".");
}
Serial.println("wl connected");
Serial.println("");
Serial.println("Credentials accepted! Connected to wifi\n ");
Serial.println("");
}
void loop() {
delay(5000);
WiFiClient client;
if (client.connect(WEBSITE, 80))
{
Serial.print("Time: ");
uptime = millis();
Serial.println(uptime);
randomNumberT = random(10, 90);
randomNumberH = random(5, 70);
Serial.print(" sending data package now \n");
client.print("GET /nodered?Temperature="
+ (String)randomNumberT
+ "&Humidity=" + (String) randomNumberH
+ "&upTime=" + uptime
);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(WEBSITE);
client.println("User-Agent: ESP32/1.0");
client.println("Connection: close");
client.println();
Serial.print(" Close http headers \n");
}
}
Tekan tombol upload pada arduino IDE untuk mengunggah software di atas ke ESP32, jalankan pula serial monitor untuk melihat proses / debugging program diatas.
Penjelasan program ESP32 diatas adalah sebagai berikuit. WEBSTITE adalah url/alamat situs dimana anda akan mengirim paket data http, disini saya akan menggunakan node red yang tersedia gratis untuk paket lite. Anda dapat mendaftar di situs https://cloud.ibm.com/ dan akan diberikan space sebesar 256 MB (Lumayan untuk melakukan testing koneksi perangkat IoT anda). Anda juga perlu memasukkan MY_SSID dan MY_PWD yang merupakan nama ssid dan password wifi yang akan anda gunakan untuk mengirim data. Pada bagian loop, data akan dikirimkan ke server node red setiap interval 5 detik (delay 5000). Pada fungsi ini juga terdapat pengisian payload data yang berupa suhu, kelembapan dan running time. Ketiga data ini akan dikirim menggunakan protocol http sehingga diperlukan header yang berupa http pula. Http header ini ditambahkan secara manual pada bagian bawah source code diatas.
Sekarang kita bahas node red secara singkat. Node red sendiri adalah A flow-based programming tool for wiring together hardware devices, APIs, and online services. Node red ini beruba blok blok sehingga mudah sekali dalam mengkonfigurasinya. Apabila kita telah berhasil mendaftar ibm cloud service maka kita dapat menyusun flow dari node red seperti gambar di bawah ini dengan cara mendrag drop dari blok blok yang tersedia di sebelah kiri panel.
Timestamp kita gunakan untuk melakukan tes pada sistem node red dengan cara mengklik blok tersebut maka timestamp tersebut akan muncul pada layar debug kita (msg payload). Blok warna kuning adalah http input dimana blok ini akan menangkap data yang dikirimkan oleh ESP32, pada blok ini ada perlu memasukkan /xxxx pada url dan memilih metoda yang digunakan (gunakan GET untuk source code ESP32 diatas). Blok func dan mqtt akan kita bahas di pertemuan selanjutnya.
Apabila paket berhasil diterima oleh node red maka akan dipaket tersebut akan ditampilkan disebelah kanan seperti gambar di atas.