Program upgrade skill di bidang engineering, dari dasar hingga mahir.
Program khusus melalui platform mitra resmi dokter mekanik academy seperti Udemy, Prakerja, dan Kampus Merdeka.
Sertifikasi BNSP
Pilih pelatihan dan sertifikasi Nasional BNSP di bidang engineering, rekayasa, manufaktur, dan subsetnya
Lihat SemuaSertifikasi Internasional
Pilih pelatihan dan sertifikasi Internasional di bidang engineering, rekayasa, manufaktur, dan subsetnya
Lihat Semua
Temukan inspirasi dari hasil karya dan pengalaman para alumni dr. Mekanik Academy.
dr. Mekanik Academy tersedia di berbagai platform mitra resmi untuk memudahkan akses pelatihan Anda.
Jelajahi produk dan layanan lainnya dari ekosistem dr. Mekanik untuk solusi bisnis yang komprehensif.
Membantu kamu belajar, berkarya, dan membuat proyek engineering secara instan dan presisi!
Oleh: Nurul Fatimah
PYTHON BACKEND DAN FRONTEND UNTUK IOT MONITORING PADA WOKWI
Simulasi di Wokwi
Flask di VM3
Simulasi ketikawokwi dijalankan dan mengirim data ke server(vm3), lalu pengecekan menggunakan postman, dapat dilihat proses pengiriman data berhasil dengan response code 201
Berikut tampilan GET di Postman, data tersebut merupakan data yang sudah di masukkan ke database
Berikut tampilan database pada server
Berikut tampilan POST melaluiPostman, POST berhasil denganresponse code 201
Dan ini adalah ketikamelakukan PUT, dapat dilihat responsecode 200
Berikut Kode simulasi wokwi dengan menggunakan esp 32 dengan dht22 terhubung pada pin 15
#include <WiFi.h>
#include <HTTPClient.h>
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
WiFi.begin("Wokwi-GUEST", "");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" Connected!");
}
void loop() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String serverName = "http://110.239.71.90:5002/data";
http.begin(serverName);
http.addHeader("Content-Type", "application/json");
String httpRequestData = "{"temperature": " + String(temperature) + ", "humidity": " + String(humidity) + "}";
int httpResponseCode = http.POST(httpRequestData);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.print(" %, Response code: ");
Serial.println(httpResponseCode);
http.end();
}
delay(2000);
}
Kode Python flask yang digunakan dengan menggunakan endpointdata
from flask import Flask, request, jsonify
import mysql.connector
app = Flask(__name__)
# Fungsi untuk koneksi ke database
def db_connection():
connection = mysql.connector.connect(
host='localhost',
user='root', # Ganti dengan username MySQL Anda
password='', # Ganti dengan password MySQL Anda
database='sensor_dataa'
)
return connection
# Endpoint untuk menerima data (POST)
@app.route('/data', methods=['POST'])
def receive_data():
data = request.get_json()
temperature = data.get('temperature')
humidity = data.get('humidity')
connection = db_connection()
cursor = connection.cursor()
cursor.execute(
"INSERT INTO readings (temperature, humidity) VALUES (%s, %s)",
(temperature, humidity)
)
connection.commit()
cursor.close()
connection.close()
return jsonify({"status": "success", "message": "Data inserted"}), 201
# Endpoint untuk memperbarui data (PUT)
@app.route('/data/<int:id>', methods=['PUT'])
def update_data(id):
data = request.get_json()
temperature = data.get('temperature')
humidity = data.get('humidity')
connection = db_connection()
cursor = connection.cursor()
cursor.execute(
"UPDATE readings SET temperature = %s, humidity = %s WHERE id = %s",
(temperature, humidity, id)
)
connection.commit()
cursor.close()
connection.close()
return jsonify({"status": "success", "message": "Data updated"}), 200
# Endpoint untuk mendapatkan data (GET)
@app.route('/data', methods=['GET'])
def get_data():
connection = db_connection()
cursor = connection.cursor(dictionary=True)
cursor.execute("SELECT * FROM readings")
results = cursor.fetchall()
cursor.close()
connection.close()
return jsonify(results), 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5002, debug=True)
0 Orang Menyukai Karya Ini