By | 23/02/2018

Hello Sahabat Anak Kendali.
artikel kali ini akan melanjutkan tentang postingan sebelumnya tentang ESP8266. kali ini saya akan mencoba cara Menyimpan data Sensor dari arduino ke Database MySQL dengan ESP8266   yang diperlukan untuk projek ini adalah   1. Arduino, 2. ESP8266 3. Sensor (saya menggunakan Potentiometer sebagai sumber data yang akan dikirim ) 4. File PHP 6. Database MySqL   pertama kita lakukan test ESP8266 terlebih dahulu, jika agan belum tau mengkonfigurasi ESP8266 silahkan baca terlebih dahulu Cara Mengkonfigurasi ESP8266 dengan Arduino Mega 2560   Selanjutnya membuat File PHP sebagai perantara mengirim data sensor Arduino ke MySQL jika sobat belum tau dasar PHP, silahkan terlebih dahulu membaca Belajar Pemograman PHP untuk Pemula   setelah mempunyai file PHP nya selanjutnya kita harus mempunyai file database nya untuk yang belum tau cara membuat database di MySQL silahkan baca terlebih dahulu Cara Membuat Tabel Database MySQL dengan XAMPP   baiklah sekarang ikuti tutorial lengkapnya,

1. upload program Arduino berikut :

#define nama_wifi "No Internet"
#define pass_wifi "chibakutensei"
#define ip_host "192.168.43.227"

int sensorPin = A0;
int nilai_sensor;
boolean connected = false;

void setup() {
  // put your setup code here, to run once:
Serial1.begin(115200);
Serial.begin(9600);
Serial1.setTimeout(5000);
Serial.println("ESP8266 cek cek");
delay (1000);
Serial1.println("AT+RST");
delay(1000);
if(Serial1.find("WIFI GOT IP"))
{
  Serial.println(" ESP8266 SIAP ");
}
else {
  Serial.println(" Tidak Ada Response dari ESP8266 ");
  while(1);
}
delay(1000);

for (int i=0; i<5; i++){
  connect_to_wifi();
  if (connected){
    break;
  }
}
  if (!connected){
    while(1);
  }
  delay(5000);
  Serial1.println("AT+CIPMUX=0");
  delay(1000);
}

void loop() {
  // put your main code here, to run repeatedly:
String cmd = "AT+CIPSTART="TCP","";
cmd+= ip_host;
cmd+="",80";
Serial1.println(cmd);
Serial.println(cmd);
if (Serial1.find("Error")){
  Serial.println("Koneksi eror");
  return;
}
nilai_sensor = analogRead(sensorPin);
cmd = "GET /arduinovb/index.php?data=";
cmd+=nilai_sensor;
cmd+="HTTP/1.0/1/rn";
cmd+="rn";
Serial1.print("AT+CIPSEND=");
Serial1.println(cmd.length());
if (Serial1.find(">")){
  Serial.print(">");
} else {
  Serial1.println("AT+CIPCLOSE");
  Serial.println("Koneksi Timeout");
  delay(1000);
  return;
}
Serial1.print(cmd);
delay(2000);

while(Serial1.available())
{
  char c =Serial1.read();
  Serial.write(c);
  if (c=='r') Serial.print('n');
}
Serial.println("-----end");
delay(10000);
}

void connect_to_wifi()
{
  Serial1.println("AT+CWMODE=1");
  String cmd = "AT+CWJAP="";
  cmd+=nama_wifi;
  cmd+="","";
  cmd+=pass_wifi;
  cmd+=""";
  Serial1.println(cmd);
  Serial.println(cmd);
  if (Serial1.find("OK")){
    Serial.println("Berhasil Terkoneksi ke internet");
  connected=true;
  } else {
    Serial.println("Gagal Terkoneksi");
  connected=false;
  }
}

untuk ip_host silahkan isi dengan IPv4 komputer sobat jika ingin tau caranya klik WIN+R lalu tulis cmd dan ketikan “ipconfig”

Cara Menyimpan Data Sensor Arduino pada Database MySQL dengan ESP8266

jika sudah selesei sekarang kita akan membuat file PHP nya, silahkan tulis program dibawah ini dan beri nama “koneksi.php”   <?php

$servername = "localhost";
$database = "my_database_2";
$username = "root";
$password = "";
$konek = mysqli_connect ($servername, $username, $password, $database); 
 /* if ($konek!=false){
 echo "berhasil";
} else {
echo "gagal";}
*/
?>

Jika sudah di tulis pada Aplikasi Editor silahkan buat folder baru pada folder direktori C/xampp/htdocs/arduinovb/ lalu simpan file  “koneksi.php” didalamnya   selanjutnya kita akan membuat file “index.php” tuliskan program dibawah ini

<?php 
include ("koneksi.php");
$var = $_GET['data'];
mysqli_query($konek, "INSERT INTO sensor(nilai_sensor) VALUES('$var')");
?> 

simpan pada folder yang sama dengan file “koneksi.php”    setelah selesai membuat file PHP sekarang kita membuat tabel databasenya, silahkan buat nama database nya “my_database_2” mengikuti variable pada kode PHP diatas dan buat tabel dengan nama “sensor” dengan jumlah kolom “1” dan beri nama kolomnya “nilai_sensor”

lalu pada browser sesuai IP komputer yang sudah di lihat melalui CMD tadi.

jangan sampai berbeda dengan variable yang ditulis pada file PHP nya, jika sudah selesei hasil outputnya seperti ini 

Baiklah cukup sekian Artikel kali ini, jika ada kritik, saran, ataupun pertanyaan silahkan dikolom komentar!

keyword :
Anak kendali
anak kendali esp8266
esp8266 arduino
esp8266 mysql
esp8266 database mysql
menghubungkan esp8288 ke database mysql
arduino wifi
mengirim data arduino ke database mysql

61 Replies to “ESP8266, Cara Mengirim data ke MySQL Arduino Mega 2560”

  1. zeta

    maaf mas mksdnya ini "setelah selesai membuat file PHP sekarang kita membuat tabel databasenya,
    silahkan buat nama database nya "my_database_2" mengikuti variable pada kode PHP diatas
    dan buat tabel dengan nama "sensor" dengan jumlah kolom "1" dan beri nama kolomnya "nilai_sensor" gimana ya mas? ane masih awam soal web mas:(

    Reply
  2. Anak Kendali

    maksudnya, mas buat database dengan XAMPP di phpmyadmin dan di kasih nama "my_database_2" sesuai deklarasi variable di file koneksi.php, coba liat kode nya diatas ada $database = "my_database_2"

    kemudian setelah membuat nama database mas buat tabel dan beri nama tabel nya "sensor" mengikuti kode di file "test1.php" disitu ada program untuk memanggil tabel database nya "INSERT INTO sensor(nilai_sensor)……."

    sebenernya penamaan bebas yang penting sinkron dengan variable pada program php nya 🙂
    semoga bisa dimengerti 🙂

    Reply
  3. zeta

    maaf mas ini kok eror di connect_to_wifi 'Serial1' was not declared in this scope, cara mengatasi nya bagaimana ya mas? maaf menganggu mas, terimakasih^^

    Reply
  4. Yuki Doyle

    gan kutipnya banyak yg error pas dicompile

    muncul ini terus pas di compile

    exit status 1
    missing terminating " character

    itu blom saya apa-apakan ubah apapun tapi udah muncul error
    apakah agannya typo atau gmana ini ya?
    mohon bantuannya gan

    Reply
  5. Anak Kendali

    mohon maaf, setalah saya cek kembali sepertinya ada code yang kerubah akibat ke parse html template blog nya, sekarang kodenya sudah saya betulkan, dan semoga berhasil, karena kode di copy paste langsung dari hasil percobaan yang saya lakukan, terimakasih sudah memberi tahukan 🙂

    Reply
  6. Dimas Purba

    Saya sudah punya program seperti diatas dan sudah terhubung ke Database dengan python, tapi kalau mau diubah dari python ke php gimana gan apa bisa?

    Reply
  7. Anak Kendali

    bisa mas,, itu kan program aduino nya mengirim data ke php, dari php ke database,
    jadi tinggal buat file php nya aja yang menghubungkan ke database, bisa diikutin mas tutorial diatas 🙂

    Reply
  8. Hannafi Muhammad

    gan jika saya pake sensor gps apakah di arduino code nya jg harus diganti? apabila iya saya masukin code sensor saya dmn gan? mhon bantuan gan, makasih

    Reply
  9. Anak Kendali

    di paling bawah bisa bikin void fungsi lagi misal

    void sensorGPS (){

    disini sensor gps nya kemudian ambil nilai gps nya
    nilai_sensor = nilai gps
    }

    program void diatas tinggal panggil dalam void loop {
    sensorGPS();

    ………………….

    }

    Reply
  10. yoga handayana

    nilai_sensor = analogRead(sensorPin);
    cmd = "GET /arduinovb/index.php?data=";
    cmd+=nilai_sensor;
    cmd+="HTTP/1.0/1/rn";
    cmd+="rn";
    Serial1.print("AT+CIPSEND=");
    Serial1.println(cmd.length());

    mau nanya mas, coding diatas kan ngirim 1 data sensor, kalau misalnya 3 data sebut saja data1, data2, data3 jadi kaya gimana ya codingnya

    Reply
  11. Anak Kendali

    pernah nyoba kirim 3 data sekaligus,, tapi saya sendiri hasilnya belum maksimal,, gambaran hasilnya seperti ini di database

    1 0 0
    0 1 0
    0 0 1
    1 0 0
    0 1 0
    …….
    ……. dst

    Reply
  12. yoga handayana

    set TCP connection
    AT+CIPSTART="TCP","192.168.0.11",80

    >

    Recv 54 bytes

    SEND OK

    +IPD,883:HTTP/1.1 400 Bad Reques—–end

    maaf mas saya mau tanya lagi, ini 400 bad request karena apa ya?

    Reply
  13. yoga handayana

    saya nyoba ubah" di codingan add.php terus dikasi nilai sendiri lewat browser dan hasilnya mirip sama mas diatas. kalau untuk codingan di arduinonya mas ada referensi untuk fungsi GET nya ga?

    Reply
  14. Romher Aldi

    Selamat siang,

    tulisannya sangat bermanfaat , terima kasih telah memberikan informasi tersebut.

    saya ada pertanyaan, apakah bisa ya jika kita menggunakan mysql dan PHP untuk memberikan perintah ke arduino ? karna saya ingin membuat website untuk controller arduino tersebut.

    Terima kasih

    Reply
  15. M TATA

    cmd = "GET /arduinovb/index.php?data=";

    maksudnya skrip diatas itu gimana ya gan

    Reply
  16. Anak Kendali

    cmd itu variable string, GET fungsi code php untuk panggil data dari arduinovb(folder di laptop saya dalam htdocs)

    Reply
  17. M TATA

    gan punya ane niai sensornya kok tetep 0 ya dilocalhost. gak kaya punya agan yang bisa berubah ubah

    Reply
  18. M TATA

    sudah bisa gan sensornya sudah ada nilainya saat ditampilkan.
    cmd = "GET /arduinovb/index.php?data=";
    index.php? ini yang bawaan saat install xampp kan gan?

    Reply
  19. aku tok

    punten gan mau nanya.. file koneksinya di save di folder test1.. terus itu pas di get foldernya di arduinovb,, arduino vb itu didalam folder tes1. atau gimana ya gan

    Reply
  20. Anak Kendali

    arduinovb didalam folder htdocs, didalam htdocs ada dua file php yang diatas,, kasih aja namanya koneksi.php dan index.php

    maaf sebelumnya salah ketik yang di atas 🙂

    Reply
  21. Roni Dwi

    Min punya ku sudah bisa semua. Cuma tinggal menampilkan di web lokal & databasenya. Di web local nya error seperti punya mu. Notice undefined data in …. line 4 itu min. Juga di database nilai sensornya nggk keluar. Gimana ya. Tolong oencerahannya

    Reply
  22. Fadhli

    untuk kodingnya gimana gan biar bisa ngirim lebih dari 1 sensor ? terimakasih

    Reply
  23. Rama

    Parse error: syntax error, unexpected ‘INTO’ (T_STRING), expecting ‘)’
    itu kenapa yaa ?

    Reply
    1. herul Post author

      ada error kena codenya kerubah oleh web, seperti karakter ” –
      sekarang sudah di perbaiki web nya.

      Reply
      1. Rama

        silahkan buat nama database nya “my_database_2” mengikuti variable pada kode PHP diatas
        itu maksudnya gimana ya ?

        Reply
        1. herul Post author

          $database = my_database_2

          itu code php ikutin nama database di phpMyadmin

          Reply
  24. Margi Fitriawan

    Mas Kalo bwt konek ke postgres ada contohnya gk ya?

    Reply
  25. Raiz

    Mas, boleh tolong file .ino nya di upload mas, soalnya sy copas muncul error message

    tes_sensor_with_esp8266:44:34: error: missing terminating ” character

    Reply
  26. tedy

    muncul ini

    exit status 1
    missing terminating ” character

    seharusnya penulisannya gimana ya gan

    Reply
      1. tedy

        sudah ketemu,

        sya menggunakan arduino mega

        koneksi timout masalahnya apa yaa ?

        Reply
  27. MDR13

    Maaf gan, missing ” character mulu, udah saya otak-atik tapi ttep gak bisa

    Reply
    1. herul Post author

      ada beeberapa karakter yang hilang karena web di programnya, seperti \ atau “

      Reply
  28. skunir

    jika ingin hosting online pada bagian define ip_host diisi alamat apa ya ?

    Reply
  29. Maulana

    Solusi biar engga timeout gimana yah bang pake arduino mega??

    Reply
    1. admin Post author

      koneksi di gedein, server digedein.

      Reply
  30. Naufal

    Permisi bang mau bertanya kalau dari mysql ke arduino mega codenya gmn ya ?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *