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.
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 connectiondelay(1000);Serial.println("Connecting to WiFi..");}Serial.println("Connected to the WiFi network");}void loop() {if(WiFi.status()== WL_CONNECTED){ //Check WiFi connection statusHTTPClient http;http.begin("http://jsonplaceholder.typicode.com/posts"); //Specify destination for HTTP requesthttp.addHeader("Content-Type", "text/plain"); //Specify content-type headerint httpResponseCode = http.POST("POSTING from ESP32"); //Send the actual POST requestif(httpResponseCode>0){String response = http.getString(); //Get the response to the requestSerial.println(httpResponseCode); //Print return codeSerial.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 :
Kesimpulan
Komentar
Posting Komentar