IntegrateSense: Simulasi IoT & Backend Terhubung

Ellen Chandra

Sosial Media


0 orang menyukai ini
Suka

Summary

IntegrateSense adalah aplikasi simulasi IoT yang menghubungkan perangkat ESP32 dengan server backend berbasis Flask. Aplikasi ini dirancang untuk mengumpulkan data dari sensor potensio (potentiometer), mengirimkan data secara real-time ke server melalui HTTP request, dan menampilkan hasilnya melalui endpoint backend. Dengan memanfaatkan Wokwi sebagai platform simulasi, IntegrateSense memungkinkan pengguna untuk menguji dan memvalidasi integrasi antara sensor IoT dan sistem backend tanpa perlu perangkat keras fisik. Aplikasi ini ideal sebagai prototipe untuk berbagai proyek IoT, mulai dari monitoring sensor lingkungan hingga implementasi sistem smart home yang membutuhkan pengumpulan dan pengelolaan data secara terpusat.

Description

  1. Membuat Database menggunakan MySQL


    Membuat database dalam aplikasi IntegrateSense: Simulasi IoT & Backend Terhubung memiliki beberapa kegunaan penting, terutama dalam konteks mengelola data dari sensor IoT. Berikut adalah beberapa alasan dan manfaat dari penggunaan database di aplikasi ini:
    a. Menyimpan data sensor secara terstruktur
    b. Monitoring real-time
    c. Menghindari kehilangan data
     
  2. Membuat Backend menggunakan Flask dan terhubung ke MySQL




    a. Endpoint GET
        - /sensor-data (GET): Endpoint untuk mengambil semua data sensor dari tabel sensor_data.
        - cursor(dictionary=True): Mengambil data sebagai dictionary agar hasilnya lebih mudah dibaca (dalam format JSON).
        - fetchall(): Mengambil semua baris hasil query.
        - jsonify(result): Mengembalikan hasil dalam format JSON dengan status kode 200 (OK)
    b. Endpoint POST
        - /sensor-data (POST): Endpoint untuk menambahkan data sensor baru ke database.
        - data.get('sensor_name') dan data.get('value'): Mengambil nilai sensor_name dan value dari JSON.
        - Validasi Input: Jika sensor_name atau value tidak ada, akan mengembalikan error 400 (Bad Request).
        - commit(): Menyimpan perubahan ke database.
        - 201 (Created): Status kode yang menunjukkan data telah berhasil ditambahkan.
    c. Endpoint PUT
        - /sensor-data/int:id (PUT): Endpoint untuk mengupdate data sensor berdasarkan ID yang diberikan.
        - int:id: Parameter URL yang menunjukkan ID data sensor yang akan diupdate.
        - UPDATE sensor_data: Query SQL untuk memperbarui nilai di tabel berdasarkan ID.
        - 200 (OK): Status kode yang menunjukkan bahwa data telah berhasil diperbarui.
     
  3. Testing Backend menggunakan Postman
    a. Testing POST
        
    b. Testing PUT
         
    c. Testing GET
        
     
  4. Membuat Frontend Wokwi dan terhubung ke Backend








    a. Koneksi WiFi:
        - Menghubungkan ESP32 ke WiFi Wokwi-GUEST untuk mendapatkan akses internet.
    b. Fungsi sendPostRequest():
        - Membaca nilai dari sensor potensio (potentiometer) pada pin analog (sensorPin).
        - Mengubah nilai pembacaan menjadi tegangan (voltage).
        - Mengirim data tegangan ke server menggunakan HTTP POST dalam format JSON dengan atribut sensor_name dan value.
    c. Fungsi sendGetRequest():
        - Mengirim HTTP GET request ke server untuk mengambil data sensor terbaru.
        - Menerima dan menampilkan response dari server di Serial Monitor.
        - Melakukan parsing JSON response untuk menampilkan nama sensor (sensor_name) dan nilai (value).
    d. Fungsi loop():
        - Mengirim POST request untuk mengirim data sensor ke server.
        - Mengirim GET request untuk mengambil dan menampilkan data sensor dari server.
        - Mengulangi proses ini setiap 10 detik.

    Program ini mensimulasikan perangkat IoT yang secara berkala mengirim data sensor ke server dan mengambil data dari server. Ini berguna untuk prototipe sistem monitoring berbasis IoT, seperti sistem pengumpulan data lingkungan atau pemantauan kondisi real-time.
     
  5. Hasil Program Wokwi


    a. Output 1
        - Nama Sensor: Temperature
        - Nilai: 25.5 (contoh data suhu)
        - Waktu: Timestamp saat data dicatat
    b. Output 2
        - Nama Sensor: Potentiometer
        - Nilai: 0.0 (tegangan potensio saat itu)
        - Nilai: 0.0 (tegangan potensio saat itu)
     
  6. Cek Log di VM


     
  7. Cek Database


     

Informasi Course Terkait
  Kategori: Internet of Things / FPGA
  Course: Cloud Computing