NodeMCU, Cara Menyimpan Data ke Database MySQL

Oke sekarang saatnya ke inti dari project yang akan kita kerjakan yaitu tentang cara menyimpan data ke database MySql menggunakan NodeMCU. Nah sebelumnya juga banyak dibahas mengenai pengenalan Xampp database MySql, dan cara pembuatan databasenya pada server localhost. Dan masih sama dengan pembahasan sebelumnya, pada project ini data yang akan disimpan adalah data ketinggian air menggunakan sensor water level. Jika teman-teman ada yang baru menyimak tentang project ini silahkan baca terlebih dahulu persiapan-persiapan yang diperlukan pada project ini antara lain :
  1. Mengenal Xampp Persiapan Database MySQL IOT
  2. Membuat Database MySql Persiapan Mengirim Data NodeMcu
Jika persiapan di atas sudah dilakukan, sekarang lanjut ke komponen-komponen yang diperlukan sebagai berikut :
Software  :
  1. Arduino IDE
  2. Wifi, pada project ini menggunakan tathering dari smartphone android (HP)
Hardware :
  1. NodeMCU, pada project ini saya menggunakan NodeMCU V3 Lolin. Teman-teman juga bisa menggunakan tipe lainnya.
  2. Kabel data micro USB, menggunakan kabel charger Android
  3. Sensor Water Level
  4. Kabel jumper
  5. Segelas air
Konsep : "Sensor water level akan membaca data ketinggian air, kemudian data akan dikirim NodeMCU setelah itu data akan dikirim dan disimpan pada database MySql"


Rangkaian
Silahkan rangkai komponen hardware seperti gambar di atas dengan keterangan berikut ini :
Sensor Water Level :
- Data (S) dihubungkan ke pin A0 NodeMCU
- GND (-) dihubungkan ke GND NodeMCU
- VCC (+) dihubungkan ke 3.3v atau pin VU NodeMCU

Langkah-langkah :
  1. Silahkan buat sebuah folder di dalam "C:\xampp\htdocs\" dengan nama folder  "node_water"
    (tanpa tanda petik ya). Sehingga letak folder menjadi "C:\xampp\htdocs\node_water\"
  2. Kemudian buat sebuah file PHP dengan nama "koneksi.php" dan "add.php", teman-teman bisa menggunakan editor seperti Sublime atau notepad++.
Kode program "koneksi.php", berikut ini :
 
<?php
try {
$host = "localhost";
$username = "root";
$password = "";
$dbname = "db_sensor";

$PDO = new PDO("mysql:host=" . $host . ";dbname=" . $dbname . ";charset=utf8", $username, $password);
} catch (PDOException $erro) {
echo "Gagal Terhubung ke database : " . $erro->getMessage();
}

?>

Kode program "add.php", berikut ini :

<?php
include('koneksi.php');

$sensor = $_GET['tinggi_air'];

$sql = "INSERT INTO tbl_water (tinggi_air) VALUES (:tinggi_air)";

$stmt = $PDO->prepare($sql);

$stmt->bindParam(':tinggi_air', $sensor);

if($stmt->execute()) {
echo "sukses gaes";
}else{
echo "gagal gaes";
}
?>

Download file koneksi.php dan add.php di sini.

Dengan koneksi ke localhost dengan database yang sebelumnya sudah dibuat pada pembahasan Membuat Database MySql.

Langkah selanjutnya adalah buka Arduino IDE dengan Board NodeMCU 1.0 (ESP-12E Module) dan pastikan Port terceklis misalnya COM20. Kemudian perhatikan sketch program berikut ini :

Sketch program pada Arduino IDE :
 
#include <ESP8266WiFi.h>

const char* ssid = "Who????"; //nama wifi
const char* password = "bolehminta4567"; //password
const char* host = "192.168.43.235"; //IP PC

#define pinSensor A0
int sensorValue = 0;
int nilaiMax = 1023;

float tinggi_air = 0;
float panjangSensor = 4.0; //tinggi sensor

void setup() {
Serial.begin(115200);
delay(10);

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}

void loop() {
sensorValue = analogRead(pinSensor);
tinggi_air = sensorValue * panjangSensor / nilaiMax;

Serial.print("connecting to ");
Serial.println(host);

WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}

// We now create a URI for the request
String url = "/node_water/add.php?";
url += "tinggi_air=";
url += tinggi_air;

Serial.print("Requesting URL: ");
Serial.println(url);

// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");

unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}

// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil('\r');
//Serial.print(line);

if (line.indexOf("sukses gaes") != -1) {
Serial.println();
Serial.println("Yes, data masuk");
} else if (line.indexOf("gagal gaes") != -1) {
Serial.println();
Serial.println("Maaf, data gagal masuk");
//digitalWrite(alarmPin, HIGH);
}
}

Serial.println();
Serial.println("closing connection");
delay(10000);
}

Download sketch program di atas, simpan_database_water.ino
Yang perlu diperhatikan :
  1. ssid : ganti sesuai dengan nama wifi
  2. password : ganti sesuai dengan password wifi
  3. host : ganti sesuai dengan IP PC/laptop, silahkan cek IP dengan masuk ke CMD dan ketikkan ipconfig pada terminal CMD.
Jika semuanya sudah, silahkan upload sketch di atas. Buka Serial Monitor dengan baudtrate 115200. Jika berhasil datanya akan terlihat seperti ini :

nodemcu ke mysql

kemudian cek database pada web browser ketikan http://localhost/phpmyadmin/ dan cek apakah data sudah masuk pada database db_sensor? Jika berhasil maka project ini telah selesai.

Baca juga :

Membahas Bluetooth HC-05 Arduino dan Programnya
Countdown Timer Digital Arduino P10 Led Matrix

Untuk pengembangan, temen-temen juga bisa mengirim dan menyimpan data lebih dari satu, misalnya dengan menambahkan  kondisi air sedikit, sedang dan penuh. Kemudian Bagaimana jika program di atas di fungsikan ke sensor lain? Bisa banget contohnya menggunakan sensor DHT11 yaitu untuk menyimpan data suhu dan kelembaban. Bisa juga dengan menambahkan kondisi jika suhu maksimal/minimal.

Pembahasan Lanjutan :

NodeMCU, Menampilkan Data dari Database MySQL dengan PHP

Cukup sekian pembahasan kali ini semoga bermanfaat bagi teman-teman semua. Jika terdapat kendala atau pun masalah tentang project ini silahkan tinggalkan komentar. Jangan lupa juga untuk membagikan project ini ke sosial media teman-teman.
Terima kasih. Salam.

0 Response to "NodeMCU, Cara Menyimpan Data ke Database MySQL"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel

Iklan Bawah Artikel