ESP 32 HTTP POST Protocol - Arduino IDE

ESP 32 HTTP POST Protocol - Arduino IDE

Tujuan

Kita akan menghubungkan ESP32 kita dengan menggunakan protocol HTTP POST menggunakan Arduino IDE. Kita akan menggunakan library baru dalam pemograman yaitu, HTTPClient.h library.

Dengan adanya library ini kita tidak perlu khawatir untuk membuat HTTP protocol lagi, jadi kita bisa langsung memanfaatkan library ini untuk berkomunikasi dengan REST API (Representional State Transfer Application Programming Interface).

Overview

Disini ESP32 akan bertindak sebagai client terhadap Web, dimana client ini akan mengirimkan protocol HTTP POST ke Web dan akan membaca response atau balasan dari Web. 

ESP 32 HTTP POST Protocol with Arduino IDE

Code

Pertama kita harus memasukkan library HTTPClient.h terlebih dahulu, juga library Wifi.h.

#include <WiFi.h>

#include <HTTPClient.h>

Selanjutnya buat global variable untuk nama wifi dan password wifi.

const char* ssid = "yourNetworkName";

const char* password =  "yourNetworkPassword";

Kemudian pada void setup () kita tulis program untuk koneksi ke jaringan internet menggunakan Wifi.begin() dan open serial komunikasi untuk serial monitor menggunakan Serial.begin()

void setup() {

   Serial.begin(115200);

  WiFi.begin(ssid, password); 

   while (WiFi.status() != WL_CONNECTED) { //Check for the connection

    delay(1000);

    Serial.println("Connecting to WiFi..");

  }

  Serial.println("Connected to the WiFi network");

 }

Setelah itu baru kita masuk ke program void loop () , kita tulis program untuk mengirim permintaan POST ke situs URL dengan cara memasukkan nama URL nya. Disini saya menggunakan menggunakan situs REST API online palsu, dimana situs ini cocok untuk melakukan pengujian ESP32 kita. Kalian bisa mengeceknya di sini.

void loop() {

 if(WiFi.status()== WL_CONNECTED){   //Check WiFi connection status

   HTTPClient http;   

   http.begin("http://jsonplaceholder.typicode.com/posts");  //Specify destination for HTTP request

   http.addHeader("Content-Type", "text/plain");             //Specify content-type header

   int httpResponseCode = http.POST("POSTING from ESP32");   //Send the actual POST request

   if(httpResponseCode>0){

    String response = http.getString();                       //Get the response to the request

    Serial.println(httpResponseCode);   //Print return code

    Serial.println(response);           //Print request answer

   }else{

    Serial.print("Error on sending POST: ");

    Serial.println(httpResponseCode);

   }

   http.end();  //Free resources

 }else{

    Serial.println("Error in WiFi connection");   

 }

  delay(10000);  //Send a request every 10 seconds

  

}

Full Code 

#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "onlyone13";
const char* password =  "islam130590";
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password); 
  while (WiFi.status() != WL_CONNECTED) { //Check for the connection
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
  Serial.println("Connected to the WiFi network");
 
}
void loop() {
 if(WiFi.status()== WL_CONNECTED){   //Check WiFi connection status
   HTTPClient http;   
   http.begin("http://jsonplaceholder.typicode.com/posts");  //Specify destination for HTTP request
   http.addHeader("Content-Type", "text/plain");             //Specify content-type header
   int httpResponseCode = http.POST("POSTING from ESP32");   //Send the actual POST request
   if(httpResponseCode>0){
    String response = http.getString();                       //Get the response to the request
    Serial.println(httpResponseCode);   //Print return code
    Serial.println(response);           //Print request answer
   }else{
    Serial.print("Error on sending POST: ");
    Serial.println(httpResponseCode);
  
   }
   http.end();  //Free resources
  
 }else{
    Serial.println("Error in WiFi connection");   
  
 }
  delay(10000);  //Send a request every 10 seconds
  
}

Testing Code

Untuk testing kode program, kita perlu sambungan wifi untuk ESP32 sesuai dengan nama wifi dan password wifi yang sudah di tulis pada program diatas, kemudian upload program ke ESP32 dan kemudian buka serial monitor. Hasil serial monitor akan seperti berikut :

Pada awal program kita akan mencoba tersambung ke jaringan wifi, kemudian jika sudah tersambung maka kita akan mengirim permintaan POST ke REST API menggunakan protocol HTTP, hasil dari permintaan tadi akan mendapat jawaban atau response, di program kita jawaban dari REST API seperti diatas { "id:101" }.

Kesimpulan

Jadi HTTP POST ke Web API sama saja ketika kita bertanya ke seseorang dan kita menunggu balasan atas pertanyaan kita dari Web API. Semoga membantu, Terima Kasih.


Komentar

Postingan populer dari blog ini

ESP 32 Membuat ESP32 Web Server - Arduino IDE

ESP 32 Koneksi ke Jaringan Wifi

ESP 32 Control LED From Firebase Real Time Database