POST Method ESP32 Lebih Dari 1 Parameter
Halo teman-teman semua kali ini DT Production akan memberikan tutorial tentang cara menggunakan metode request POST pada protokol HTTP. Berbicara tentang metode request pada protokol HTTP terdapat juga metode GET. Apa hubunganya dengan ESP32 ?
kedua metode ini paling sering digunakan pada proyek – proyek berkonsep IoT contohnya ketika kita akan membuat suatu proyek menyimpan data atau nilai sensor ke database yang pada umum nya kita sering menggunakan PHP yang merupakan bahasa pemrograman berbasis web dan keuntunganya php menyediakan sarana untuk kita dapat berinteraksi dengan kedua metode tersebut yaitu POST dan GET.
Terdapat perbedaan antara kedua metode ini pada php yang secara umum teman – teman sering gunakan lihat contoh url berikut :
Metode GET
http://domain-saya.com/data.php?parameter1=nilai1¶meter2=nilai2
URL diatas merupakan contoh penggunaan metode GET yang sering kita gunakan, contoh penggunaan di skrip php kita menggunakan variabel super global yakni $_GET[‘parameter1’]; contoh untuk kita ingin mengambil nilai dari parameter1 yaitu “nilai1”. begitu juga caranya jika kita ingin mengambil nilai dari parameter yang ke dua. dapat disimpulkan secara awam dari contoh diatas, bahwa parameter yang kita kirim berada pada URL, sehingga itu tidak bersifat rahasia alias telanjang. Sedangkan penggunaan metode POST teman-teman tidak akan tampil pada URL dikarenakan pada metode ini data/form (POST) akan dikirimkan secara langsung ke action.
Jika teman – teman kurang paham, silahkan mencari referensi yang lain di google mengenai teori ini.
Percobaan kali ini kita akan menampilkan respon dari parameter yang kita kirimkan dari ESP32. dimana pengiriman data dari kontroler menggunakan metode POST dan parameter yang akan dikirim berjumlah dua.
Belum punya ESP32 ? bisa teman – teman dapatkan ditoko DT Production. Link pembelian via tokopedia:
- Buatlah sebuah folder baru bernama esp32_post kemudian simpan folder tersebut pada direktori htdocs untuk localhost dan Public_html jika menggunakan layanan server hosting.
- Selanjutnya kita akan mebuat satu file PHP, dimana file php berfungsi sebagai action untuk kita mengambil nilai dari kedua parameter dan akan kita akan tampilan kedua nilai tersebut menggunakan syntax echo pada php. Buatlah file bernama action.php kemudian salin skrip dibawah ini selanjutnya simpan di dalam folder esp32_post.
<?php
if(isset($_POST['nama']) && isset($_POST['sensor'])){
$parameter1 = $_POST['nama']; // $parameter1 akan menampung nilai dari parameter nama yang dikirim dari esp32
$parameter2 = $_POST['sensor']; // $parameter2 akan menampung nilai dari parameter sensor yang dikirim dari esp32
if($parameter1 != "" && $parameter2 != ""){
echo "NILAI PARAMETER 1 = ".$parameter1." ";
echo "NILAI PARAMETER 2 = ".$parameter2;
}else{
echo "Ada nilai dari parameter yang kosong";
}
}else{
echo "Definisi Parameter Tidak Ada";
}
?>
- Pada percobaan ini teman – teman dapat melihat respon dari website adalah nilai dari parameter yang kita kirimkan dari kontroler ESP32 pada serial monitor. untuk itu silahkan teman-teman salin sketch berikut ini.
#include <wifi.h>
#include <httpclient.h>
String parameter1 = "DT PRODUCTION"; //nilai dari parameter1 nama
int parameter2 = 100; //nilai dari parameter2 sensor
void setup() {
const char* ssid = "DTproduction"; //Nama WiFi
const char* password = "abcdefg"; //Password WiFi
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting..");
}
Serial.println("Connection OK");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin("http://192.168.1.7/esp32_post/action.php");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpResponseCode = http.POST("nama=" + parameter1 + "&sensor=" + parameter2); //post 2 parameter
delay(100);
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println(response); //menampilkan respon dari website
} else {
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
}
http.end(); //Free resources
} else {
Serial.println("Error in WiFi connection");
}
delay(10000);
}
Harap baca!
Baca Juga: IoT Project WhatsApp Kontrol Relay dan Monitoring Temperatur Menggunakan WhatsApp ESP12E/F– Pastikan sebelum melakukan upload kedalam kontroler teman-teman sudah menginstall board ESP32 terlebih dahulu.
– Pastikan jika menggunakan localhost perlu menjalankan XAMPP.
– Perhatikan sketch untuk ESP32, teman-teman perlu mengganti nama Wifi dan Password Wifi sesuai dengan nama dan password wifi yang akan dihubungkan dengan ESP32. dan jika teman – teman menggunakan locahost, tentu saja komputer / laptop yang teman – teman gunakan untuk menyimpan file website harus juga terkoneksi ke jaringan yang sama dengan esp32. singkatnya buatlah koneksi LAN.
– Perhatikan pada baris program http.begin(“http://192.168.1.7/esp32_post/action.php”);
ganti IP Address tersebut dengan IP Address dari komputer server (komputer yang menyimpan file website). jika menggunakan server hosting, gantilah dengan domain website yang teman-teman punya.
- Selanjutnya upload program kedalam kontroler ESP32, jika terdapat error saat melakukan upload. pastikan anda menekan tombol BOOT dan lepas tombol tersebut setelah status compile masuk pada status write..
- Buka serial monitor jika sudah berhasil melakukan upload, selanjutnya set baudrate serial monitor ke 115200 dan lihat hasilnya. jika percobaan ini berhasil, teman -teman akan mendapat respon dari website sesuai dengan 2 parameter yang teman -teman kirim dari kontroler ESP32. lihat gambar berikut.
Percobaan ini merupakan tahap awal untuk teman-teman mengembangkan proyek berkonsep internet of things. dimana teman -teman dapat menyimpan nilai – nilai tersebut kedalam database atau dll. dapat disesuaikan dengan kebutuhan. teman – teman dapat mencari referensi tentang fungsi dari pengguaaan php isset di google. budayakan membaca admin harapkan.
Terima kasih, dan semoga bisa bermanfaat untuk teman – teman semua. cherss…….
Satu komentar tentang “POST Method ESP32 Lebih Dari 1 Parameter”