/* SIJA - IoT Praktikum Series | ESP8288 - Web Client
Tanggal penulisan : 26 Mei 2024
Author : Oegik
Sumber belajar :
https://github.com/manrueda/ESP8266HttpClient
https://www.arducoding.com/2020/10/nodeMCU-esp8266-menyimpan-data-base-MySQL.html
Deskripsi
ESP8266 sebagai http client, bisa mengakses website dengan protokol http
ESP8266 bisa mengirimkan data ke database server dengan protokol http
ESP8266 mengirimkan data dengan method GET via URL
contoh:
<servername>/iot/rakam.php?angka=xx
angka: nama variabel
xx : data angka yang dikirim user
---------------------------------------------------------------- */
// mengakses library WiFi untuk ESP8266 Lolin
#include <ESP8266WiFi.h>
// Blok http Client
// mengakses library ESP8266 http client
#include <ESP8266HTTPClient.h>
// Akun Wifi
const char *ssid = "Wokwi-GUEST"; //ganti nama hotspot
const char *pass = "";//ganti password
// membuat object: esp8266Client untuk melayani koneksi wifi
WiFiClient esp8266Client;
// membuat object: esp8266Client untuk melayani http
HTTPClient esp8266Http;
// deklarasi funtion untuk konek ke wifi
void konekWifi();
// deklarasi variabel angka
int angka=0;
void setup() {
// aktifkan Serial monitor
Serial.begin(115200);
delay(10);
// memanggil funtion untuk koneksi ke SSID
konekWifi();
}
void loop() {
// kirim data ke mysql
kirim_data();
if(angka<=100){
angka++;
}else {
angka=0;
}
delay(5000);
}
//detil function konekWifi()
void konekWifi(){
// menampilkan pesan di Serial Monitor
Serial.print(" Koneksi ke SSID : ");
Serial.println(ssid);
// menjalankan koneksi ke SSID
WiFi.begin(ssid, pass);
// proses koneksi ke SSID
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// koneksi ke SSID berhasil
Serial.print("\n");
Serial.print("IP address : ");
Serial.print(WiFi.localIP());
Serial.print("\n");
Serial.print("Terkoneksi ke SSID : ");
Serial.println(ssid);
}
void kirim_data(){
// variabel url untuk menyimpan data website yang dituju
String url = "";
url += "https://fifi.sija-bridge.tech/ui/iot/rekam.php?angka=";
url += angka;
Serial.println(url);
esp8266Http.begin(esp8266Client,url);
int httpCode = esp8266Http.GET();
String payload;
if (httpCode > 0) { //Check the returning code
payload = esp8266Http.getString(); //Get the request response payload
payload.trim();
if( payload.length() > 0 ){
Serial.println(payload + "\n");
}
}
esp8266Http.end(); //Close connection
}