Minggu, 22 November 2020

Python Flask Server Dan ESP32


 

Catatan kecil ini adalah hasil oprekan mikrokontroler ESP32 dengan menggunakan Server Flask Python. Berawal dari penggunaan MQTT Server pada Flask yang terbilang sedikit ribet , maka solusi terakhir adalah menggunakan Json pada Flask Server .

Hasil oprekan disisi ESP32 :

      HTTPClient http;
      String serverPath = serverName + str;
      http.begin(serverPath.c_str());
      int httpResponseCode = http.GET();
      String payload = "{}";
      if (httpResponseCode>0) {
        payload = http.getString();
      }
      else {
        Serial.print("Error code: ");
        
      }
      http.end();
      
      JSONVar myObject = JSON.parse(payload);
      JSONVar keys = myObject.keys();
      for (int j = 0; j < keys.length(); j++) {
        JSONVar value = myObject[keys[j]];
        Serial.print(keys[j]);
        Serial.print(" = ");
        Serial.println(value);
        sensorReadingsArr[j] = (value);
      }

....

Yup , perangkat ESP32 bekerja dengan RFC522 untuk membaca Mifare Card selanjutnya , server online dengan Flask akan memeriksa input dari ESP32 dan akan memberikan jawaban dengan JSON.

Hasil JSON di terima oleh ESP32 dan ditampilkan Pada Layar LCD . Dan selanjutnya proses input dilakukan oleh Keypada pada ESP32 . Dan prosesnya untuk POST dan GET tetap sama mengandalkan Server Flask.

Oke. Proses Pengecekan Kartu Smart Card Secara online dengan Menggunakan JSONIFY Flask Python  berhasil dan alat sudah bekerja dengan baik.


      

Python Flask dan Android


 

Masih kurangnya catatan untuk bahan bacaan tentang Android Client dengan Server Python Flask bertuliskan bahasa Indonesia membuat saya agak kebingungan saat mengerjakan layanan Android Client . Mayoritas tulisan yang bertebaran adalah Server dengan menggunakan pemrogaraman PHP. Jadi akhirnya harus banyak test case deh salah satunya adalah membuat sebuah pengaman JSON di sisi server, agar yang hanya mengakses adalah aplikasi Android Klien yang kita buat.

Catatan ini sedikit dibuat dikarenakan proses CSRF seringkali membuat bingung server sehingga setiap kali POST dari Aplikasi Android Klien akan selalu di reject oleh server .

Biar gak pusing dengan CSRF , proses ini membuat Kode Autentifikasi yang dibuat pada sebuah Database , dengan aturan sebagai berikut :

  1. Halaman GET dan POST json dari Server Flask hanya diperuntukan bagi aplikasi Android Client , dimana aplikasi yang dibuat akan menghasilkan Kode Head aplikasi. Jika Kode nya tidak sesuai maka halaman tersebut tidak dapat diakses dan akan di redirect kehalaman utama.
  2. Setiap kali terdapat permintaan GET dan POST , server flask melakukan generate kode secara acak , yang selanjutnya tersimpan pada Android Client sebagai kode session . Sehingga  setiap proses GET dan POST server akan melakukan pegecekaan kode session jika tidak sesuai maka otomatis akan di redirect.

Dua teknik sederhana ini menurut saya adalah cara yang ampuh untuk menghindari POST dan GET yang tidak dikenal dan tidak di otentifikasi , sehingga server flask tetap bekerja.

Pekerjaan memang agak nambah yang pertama menyiapkan proses POST dan GET untuk basis web, dan yang kedua menyiapkan JSON yang dibuat hanya untuk Android Client. 

Catatan Kecil : Android Klien Menggunakan Library retrofit2 untuk proses POST Form dan Get , sedangkan JSON hanya sebagai halaman jawaban apakah proses yang dilakukan berhasil atau tidak. Dan itu hanya dapat diakses hanya melakukan Aplikasi Android Klien yang dibuat.


Python Flask Server Dan ESP32

  Catatan kecil ini adalah hasil oprekan mikrokontroler ESP32 dengan menggunakan Server Flask Python. Berawal dari penggunaan MQTT Server pa...