Komunikasi dua arah Arduino dengan Web Browser menggunakan MySQL, XAMPP/web hosting dan ESP8266

Untuk komunikasi jarak jauh atau komunikasi tanpa kabel menggunakan Arduino bisa menggunakan ESP8266 (wifi shield) yang akan menghubungkan arduino ke internet/jaringan lokal. Disamping itu harus pula dibangun server yang berfungsi sebagai penyedia layanan sehingga sistem komunikasi bisa berjalan timbal balik. Dalam server juga dibutuhkan media untuk merekam komunikasi tersebut, salah satu yang populer adalah database MySQL. Ini adalah salah satu cara menghubungkan arduino dengan database yang paling efisien.

Menghubungkan MySQL – Arduino dibutuhkan bahasa php sebagai penerjemah query (bahasa database), baik permintaan (GET request) dari arduino – MySQL dan web browser – MySQL. Jika skema ini sudah terbangun maka kita bisa mengkomunikasikan arduino – web browser (lokal / internet).

Menyimpan data dari arduino ke mysql esp8266 bisa dilaksanakan dengan cara ini, data dari arduino ditransmisikan melalui jaringan wifi dan diterima oleh web server. Data tersebut kemudian di proses oleh php dan juka diizinkan maka data tersebut akan disimpan dalam database.

Mengirim perintah dari browser ke arduino dengan esp8266 juga dapat dilakukan dengan cara sebaliknya.

Webserver yang digunakan dalam perancangan ini adalah XAMPP di PC lokal dan jasa server hosting.

Langkah perancangannya sebagai berikut:

  1. Merangkai Arduino + ESP8266
  2. Membuat sketch Arduino untuk mengirim dan menerima data dari database
  3. Konfigurasi koneksi ESP8266 ke access point wifi (AP)
  4. Install XAMPP server dan mengaktifkannya
  5. Untuk web server hosting, membuat database, user account dan priveleged-nya
  6. Membuat program php, dariArduino.php, keArduino.php, dariBrowser.php serta program php pendukung.

Arduino + ESP8266

Rangkaian yang digunakan:

Diagram:

Untuk menghubungkan arduino dengan jaringan, salah satu yang bisa digunakan adalah modul wifi shiel ESP8266. kali ini saya menggunakan library “WiFiEsp.h”.

Catatan, untuk terhubung ke web hosting, pastikan wifi terhubung ke internet (bridge connection)

sebelum menggunakannya konfigurasi dahulu modul tersebut, editlah bagian berikut:


char ssid[] = "ArduinoMySQL";        // Isi dengan nama profil Wifi
char pass[] = "12345678";            // password wifi
//char server[] = "192.168.123.1";     // alamat access point yang 
char server[] = "semesin.com";     // alamat server hosting 

sketch atau program berikut memiliki fitur:

  1. Menerima masukan string/text dari serial monitor dan mengirimkannya ke webserver untuk disimpan ke database MySQL.
  2. Menerima data perintah dari webserver dalam jangka waktu tertentu contoh kali ini setiap 5 detik.

sketch atau program lengkapnya sebagai berikut:

#include "WiFiEsp.h"

char ssid[] = "ArduinoMySQL";        // Isi dengan nama profil Wifi
char pass[] = "12345678";            // password wifi
//char server[] = "192.168.123.1";     // alamat access point yang telah terinstall XAMPP local host
char server[] = "semesin.com";     // alamat web hosting

char namaVariabel[] = "Variabel";
String text = "";
String Respon = "";
bool responDariServer = false;

bool statusKomunikasiWifi = false;
long waktuMulai;
long waktuMintaData = 5000; //minta data setiap 5000ms

WiFiEspClient client;
int status = WL_IDLE_STATUS;

void setup()
{
  Serial.begin(9600);
  Serial.println("Koneksi arduino dengan mySql menggunakan ESp8266 dan XAMPP");
  Serial.println("Ketik pesan yang akan dikirim (pastikan setting serial ke \"both NL & CR\")");
  Serial.println("https://www.project.semesin.com");
  Serial.println();

  Serial1.begin(115200);
  WiFi.init(&Serial1);

  // check for the presence of the shield
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue
    while (true);
  }

  // attempt to connect to WiFi network
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to WPA SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network
    status = WiFi.begin(ssid, pass);
  }

  // you're connected now, so print out the data
  Serial.println("You're connected to the network");
  
  printWifiStatus();
  waktuMulai = millis();
}

void loop()
{
  //tunggu imputan nilai dari untuk dikirim ke server
  while(Serial.available())
  {
    char c = Serial.read();
    if((c != '\r') && (c != '\n'))
    {
      text += c;
    }
    if(c == '\n')
    {
      statusKomunikasiWifi = kirimKeDatabase("dataDariSerial",text);
      text = "";
      waktuMulai = millis();
    }
  }

  if(waktuMintaData < millis() - waktuMulai)
  {
    statusKomunikasiWifi = ambilDatabase("perintah");
    waktuMulai = millis();
  }
  
  // periksa respon dari server
  if(statusKomunikasiWifi)
  {
    // if there are incoming bytes available
    // from the server, read them and print them
    while (client.available()) 
    {
      char c = client.read();
      Respon += c;
    }
  
    // if the server's disconnected, stop the client
    if (!client.connected()) {
      Serial.println("Disconnecting from server...");
      client.stop();
      statusKomunikasiWifi = false;
      responDariServer = true;
    }
  }

  // penanganan data yang diretima dari server
  if(responDariServer)
  {
    responDariServer = false;
    //Serial.println(Respon);
    int posisiData = Respon.indexOf("\r\n\r\n");
    String Data = Respon.substring(posisiData+4);
    Data.trim();

    String variabel;
    String nilai;

    Serial.println("Data dari server");
    posisiData = Data.indexOf('=');
    if(posisiData > 0)
    {
      variabel = Data.substring(0,posisiData);
      nilai = Data.substring(posisiData+1);
  
      //===========Penanganan respon disini
      Serial.print(variabel);
      Serial.print(" = ");
      Serial.println(nilai);
    }
    Respon = "";
  }
}
bool ambilDatabase(String variabel)
{
  Serial.println();
  Serial.println("Starting connection to server...");
  // if you get a connection, report back via serial
  if (client.connect(server, 80)) {
    Serial.println("Connected to server");
    // Make a HTTP request
    client.print("GET /arduino_mysql/keArduino.php?variabel=");
    client.print(variabel);
    client.println(" HTTP/1.1");
    client.print("Host: ");
    client.println(server);
    client.println("Connection: close");
    client.println();

    long _startMillis = millis();
    while (!client.available() and (millis() - _startMillis < 2000));

    return true;
  }
  return false;
}

bool kirimKeDatabase(String namaVariabel, String nilai)
{
  Serial.println();
  Serial.println("Starting connection to server...");
  // if you get a connection, report back via serial
  if (client.connect(server, 80)) {
    Serial.println("Connected to server");
    // Make a HTTP request

    // parameter 1
    client.print("GET /arduino_mysql/dariArduino.php?");
    client.print("variabel=");
    client.print(namaVariabel);
    
    // parameter 2 dan selanjutnya
    client.print("&");
    client.print("nilai=");
    client.print(nilai);
    
    client.println(" HTTP/1.1");
    client.print("Host: ");
    client.println(server);
    client.println("Connection: close");
    client.println();

    return true;
  }
  return false;
}

void printWifiStatus()
{
  // print the SSID of the network you're attached to
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength
  long rssi = WiFi.RSSI();
  Serial.print("Signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");

  IPAddress gateway = WiFi.gatewayIP();
  Serial.print("gateway:");
  Serial.print(gateway);
  Serial.println(" ");
}

tampilan serial monitor dari arduino:

 

XAMPP webserver + database MySQL

untuk membuat webserver di komputer lokal instal XAMPP (saya menggunakan v3.2.2) atau bundel webserver lain yang termasuk didalamnya MySQL.

untuk memulainya jalankan/aktifkan webserver dan MySQL

 

Web Hosting + Database MySQL

catatan: huruf besar/kecil berpengaruh (case-sensitif)

Server hosting umumnya memiliki fitur kemanan, untuk itu kita harus masuk ke cpanel kemudian membuat sebuah database dengan memilih menu ‘MySQL® Database Wizard‘ dan mengisi nama database, misalnya ‘arduino_mysql’.

selanjutnya ‘next step’ buatlah akun dengan memasukkan nama dan paswword (nama dan password ini akan dimasukkan ke ‘fungction.php’).

selanjutnya prilih privileges yang akan digunakan.

sebagai webserver dan database server yang akan berhubungan timbal balik dengan arduino, maka kita buat halaman web berbasis bahasa PHP dan memiliki fitur:

  1. Menerima data dari Arduino menggunakan metode ‘GET’ dengan parameter ‘variabel’, ‘nilai’, dan ‘status’.
  2. Menyimpan data dari entri data di webserver, dan akan mengirimkannya ke Arduino saat diminta.
  3. Menyedian halaman tampilan database ke halaman web.

fitur-fitur ini saya buatkan dalam beberapa program PHP, untuk menggunakannya extract file Arduino MySQL dan copy ke folder “/arduino_mysql” (untuk XAMPP root folder “C:\xampp\htdocs\arduino_mysql”, untuk web hosting “public_html/arduino_mysql”) dengan program berikut:

file php yang digunakan diuraikan disini:

function.php

sebelum menggunakan file ini edit dahulu bagian sesuai kebutuhan:

    $servername = "localhost";
    $username = "******_Arduino";
    $password = "Arduino";
    $database = "******_arduino_mysql";

kode lengkap function.php

  <?php

 function databaseConnect()
  {
    /* XAMPP
    $servername = "localhost";
    $username = "root";
    $password = "";
    $database = "arduino_mysql";
    */
    
    $servername = "localhost";
    $username = "******_Arduino";
    $password = "Arduino";
    $database = "******_arduino_mysql";
    
    // Create connection
    $conn = new mysqli($servername, $username, $password);

    // Check connection
    if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
    }
    echoDebug("Connected successfully<br>");
    
    // Create database
    $sql = "CREATE DATABASE IF NOT EXISTS ".$database;
    if ($conn->query($sql) === TRUE) {
      echoDebug("Database created successfully<br>");
    } else {
      echoDebug("Error creating database: " . $conn->error);
    }
    
    // Connect to database
    $conn = new mysqli($servername, $username, $password, $database);
    // Check connection
    if ($conn->connect_error) {
      die("Database connection failed: " . $conn->connect_error);
    }
    echoDebug("Database connected successfully<br>");
    
    // sql to create table
    $sql = "CREATE TABLE IF NOT EXISTS arduino_data (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    variabel VARCHAR(30) NOT NULL,
    nilai VARCHAR(30) NOT NULL
    )";
    
    if ($conn->query($sql) === TRUE) {
      echoDebug("Table arduino_data created successfully</br>");
    } else {
      echoDebug("Error creating table: " . $conn->error);
    }
    // sql to create table
    $sql = "CREATE TABLE IF NOT EXISTS browser_data (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    variabel VARCHAR(30) NOT NULL,
    nilai VARCHAR(30) NOT NULL
    )";
    
    if ($conn->query($sql) === TRUE) {
      echoDebug("Table arduino_data created successfully</br>");
    } else {
      echoDebug("Error creating table: " . $conn->error);
    }
    return $conn;
  }
  function echoDebug($message) 
  {
    // hapus komen '//' jika ingin men-debug pesan
    //echo $message;
  }
?> 

index.php

 <?php
  include("function.php");
  
  $conn = databaseConnect();

  if(isset($_GET['message']))
  {
    echo $_GET['message'];
    echo "<br>";
    echo "<br>";
  }
  $sql = "SELECT * FROM arduino_data";
  $result = $conn->query($sql);

  echo "<html>";
  echo "<head>";
  echo "<meta http-equiv='refresh' content='10'>";
  echo "</head>";
  echo "<body>";
  echo "Arduino Data";
  echo "<table border='1'>";
  echo "<tr>";
  echo "<td width='50'>id</td><td width='100'>Variabel</td><td width='200'>Nilai</td>";
  echo "</tr>";
  if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
      echo "<tr>";
      echo "<td>".$row["id"]."</td><td>".$row["variabel"]."</td><td>".$row["nilai"]. "</td>";
      echo "</tr>";
    }
  } else {
    echo "<td colspan='3'>";
    echo("tidak ada hasil");
    echo "</td>";
  }
  echo "</table>";
  
  echo "<form action='dariBrowser.php' method=GET>";
  echo "<input type='hidden' name='aksi' value='hapus'><br>";
  echo "<input type='submit' value='Hapus semua data'>";
  echo "</form>";

  echo "<br>Kirim data ke Arduino<br>";
  echo "<form action='dariBrowser.php' method=GET>";
  echo "Nama variabel:<br><input type='text' name='variabel'><br>";
  echo "Nilai:<br><input type='text' name='nilai'><br>";
  echo "<input type='submit' value='Kirim'>";
  echo "</form>";
  echo "</body>";
  echo "</html>";

  $conn->close();
?> 

keArduino.php

 <?php
  include("function.php");
  
  $conn = databaseConnect();
  
  // Kirim respon bila ada
  if(isset($_GET["variabel"]))
  {
    $variabel = $_GET["variabel"];
    $sql = "SELECT * FROM browser_data WHERE variabel='".$variabel."'";

    if($result = $conn->query($sql))
    {
      $row = $result->fetch_assoc();
      echo $row["variabel"]."=".$row["nilai"];
    }
  }
  
  $conn->close();
?> 

dariArduino.php

 <?php
  include("function.php");
  
  $conn = databaseConnect();
  
  if(isset($_GET["variabel"]) && isset($_GET["nilai"]))
  {
    // Simpan data yang diterima ke database
    $variabel = $_GET["variabel"];
    $nilai = $_GET["nilai"];

    $sql = "INSERT INTO arduino_data (variabel, nilai) VALUES ('".$variabel."', '".$nilai."')";

    if ($conn->query($sql) === TRUE) {
      echoDebug("New record created successfully</br>");
    } else {
      echoDebug("Error: " . $sql . "<br>" . $conn->error);
    }
  }
  $conn->close();
?> 

dariBrowser.php

 <?php
  include("function.php");
  
  $conn = databaseConnect();
  
  if(isset($_GET["variabel"]) && isset($_GET["nilai"]))
  {
    // Simpan data yang diterima ke database
    $variabel = $_GET["variabel"];
    $nilai = $_GET["nilai"];
    
    $sql = "SELECT * FROM browser_data WHERE variabel='".$variabel."'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0)
    {
      $sql = "UPDATE browser_data SET nilai='".$nilai."' WHERE variabel='".$variabel."'";
      if ($conn->query($sql) === TRUE) {
        echoDebug("Record updated successfully</br>");
      } else {
        echoDebug("Error updating record: " . $sql . "<br>" . $conn->error);
      }
    }
    else
    {
      $sql = "INSERT INTO browser_data (variabel, nilai) VALUES ('".$variabel."', '".$nilai."')";
      if ($conn->query($sql) === TRUE) {
        echoDebug("New record created successfully</br>");
      } else {
        echoDebug("Error: " . $sql . "<br>" . $conn->error);
      }
    }
      echo "<script type='text/javascript'> document.location = 'index.php?message=Entri data berhasil'; </script>";
    exit();
  }
  else if(isset($_GET['aksi']))
  {
    if($_GET['aksi'] == "hapus")
    {
      // sql to delete a record
      $sql = "TRUNCATE arduino_data";

      if ($conn->query($sql) === TRUE) {
        echoDebug("Record deleted successfully");
      } else {
        echoDebug("Error deleting record: " . $conn->error);
      }
      echo "<script type='text/javascript'> document.location = 'index.php?message=database telah dikosongkan'; </script>";
      exit();
    }
  }
  $conn->close();
?> 

Cara penggunaan

  • Nyalakan wifi (pastikan terhubung ke internet)
  • Masukkan perintah dari serial monitor, data akan tercatat dalam tabel ‘arduino_data’, dalam contoh ini nama variabelnya adalah ‘dataDariSerial’ dengan nilai sesuai dengan entry dari Serial monitor (pastikan setting serial ke “both NL & CR”)
  • Buka halaman “localhost/arduino_mysql/” atau “**nama server**/arduino_mysql/” di browser untuk melihat data yang dikirim dari arduino.
  • Masukan perintah dari formulir di halaman web, dan klik kirim untuk mengirim data ke Arduino, (dalam contoh ini arduino membaca variabel ‘perintah’ jadi masukkan nama variabel sebagai ‘perintah’ serta isikan juga kotak ‘nilai’nya)
  • Arduino akan membaca perintah setiap 5 detik dan akan dilaporkan di Serial monitor.

tampilan halaman web:

library : WiFiEsp.zip

235 thoughts on “Komunikasi dua arah Arduino dengan Web Browser menggunakan MySQL, XAMPP/web hosting dan ESP8266

  1. Maaf mas saya mau tanya untuk proses pengiriman data tertendu misalnya data dari hasil deteksi sensor yang dihubungkan ke arduino dan mau dikirim lewat esp gmana yaa mas ?

    1. Mengirimkan data melalui ESP8266
      Scenario Web Server dialamat 192.168.1.1:
      1. Client mengirimkan request ke alamat server misalnya dengan link http://192.168.1.1/ambilData
      2. Server (Arduino) menerima request ‘ambilData’
      3. Arduino membaca sensor
      4. Arduino melalui ESP8266 mengirimkan data tersebut (format html / json / data stream / format lainnya)
      5. Pengolahan data sisi client
      6. selesai

  2. Mas kalau mengubah nilai range data suhu arduino melalui PHP,
    Contohnya seperti ini mas,
    Waktu upload sketch pertama kali ke arduino saya buat range suhu amannya 25-30°, bisakah range tersebut di ubah menjadi 28-30° melalui PHP dan menggunakan input type Text,

    1. Spesifik seperti itu belum ada,
      contoh di halaman ini bisa dikembangkan untuk mengambil dua nilai variabel
      contohnya variabel ‘suhuBatasBawah’ dan variabel ‘suhuBatasAtas’

      client.print("GET /arduino_mysql/keArduino.php?variabel=suhuBatasBawah HTTP/1.1");
      ....
      client.print("GET /arduino_mysql/keArduino.php?variabel=suhuBatasAtas HTTP/1.1");
      
    1. pada arduino :
      baris 73 untuk mengambil data dari database
      statusKomunikasiWifi = ambilDatabase(“perintah”);
      “perintah” diisi jenis variabel yang ingin diambil

      baris 65 untuk mengirim data
      statusKomunikasiWifi = kirimKeDatabase(“dataDariSerial”,text);
      “dataDariSerial” merupakan nama variabel yang hendak disimpan dalam database

  3. Koneksi arduino dengan mySql menggunakan ESp8266 dan XAMPP
    Ketik pesan yang akan dikirim (pastikan setting serial ke “both NL & CR”)
    https://www.project.semesin.com

    [WiFiEsp] Initializing ESP module
    AT
    [WiFiEsp] >>> TIMEOUT >>>
    AT
    [WiFiEsp] >>> TIMEOUT >>>
    AT
    [WiFiEsp] >>> TIMEOUT >>>
    AT
    [WiFiEsp] >>> TIMEOUT >>>
    AT
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] Cannot initialize ESP module
    AT+CIPSTATUS
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] No tag found
    WiFi shield not present

    muncul kayak gini kenapa mas? saya pake arduino uno

  4. Bang permisi ada kontak bisa dihubungi saya ingin konsultasi mengenai pengiriman data dari sensor via esp 8266 tanpa arduino, secara teknik output data dapat tampil pada webpage saja, belum databasenya. Jika menggunakan cara diatas apakah bisa? Terima kasih. Jika mungkin saya masih kesulitan saya ingin memesan sketch, terima kasih

  5. Bang, kalo ketika hendak compile sketch ke Arduino trus ada pesan kek dibawah, apa penyebabnya bang? terima kasih bang.
    #include “WiFiEsp.h”

    ^

    compilation terminated.

    exit status 1
    Error compiling for board Arduino/Genuino Uno.

  6. Assalamualaiku wr.wb,
    kalau boleh tahu agan pakai hosting apa ? Dan untuk kirim data dari arduino ke mysql(hosting), di hosting harus ada fitur remote databasenya ?
    terima kasih

    1. Untuk mengirim data ke mysql (server) bisa dengan koneksi langsung (remote database) atau menggunakan ‘middleman’ yang umum digunakan adalah php. masing-masing punya kelebihan.
      remote database biasanya sudah disediakan oleh hostingan.

  7. Berarti kalo saya kirim data arduino ke mysql(hosting) memakai php, jadi tidak perlu fitur remote database ?
    terima kasih sebelumnya

  8. malam kang mo tanya, disini menggunakan sensor apa yaa ?? dan apakah “waktuMintaData” hanya meminta data jika ada perintah saja ??

    1. Dalam contoh diatas tidak menggunakan sensor apapun
      hanya simulasi masukan melalui Serial (Input dari serial monitornya arduino IDE) dikirim ke database
      juga menampilkan respon dari database server dalam variabel ‘perintah’

  9. mlm kakng mo nanya, apakah codding untuk arduino d atas dapat di jalankan di Wemos D1 ?? jika dapat, apa aja yg harus di ganti dalam codding tersebt. terimakasih

  10. malam Kang, mau nanya nii, bgmna cara membaca data mysql ke arduino -> LCD

    misalnya : data jadwal akademik di seting di mysql truss mau manggilnya ke arduino untuk di tampilkan di LCD

    1. pada baris 109 – 120 bisa ditambahkan kode lcd.print()

          Serial.println("Data dari server");
          posisiData = Data.indexOf('=');
          if(posisiData > 0)
          {
            variabel = Data.substring(0,posisiData);
            nilai = Data.substring(posisiData+1);
         
            //===========Penanganan respon disini
            Serial.print(variabel);
            Serial.print(" = ");
            Serial.println(nilai);
          }
      
  11. kira kira untuk mengatasi masalah di tampilan serial monitor di bawah ini gimana ya bang ?

    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] Cannot initialize ESP module
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] No tag found
    WiFi shield not present

    Soft WDT reset

    ctx: cont
    sp: 3ffffd90 end: 3fffffd0 offset: 01b0

    >>>stack>>>
    3fffff40: 3ffee9f0 00000017 3ffeea98 40203b34
    3fffff50: 3ffee9f0 3ffeea98 3ffeea98 40203cf9
    3fffff60: 3ffe8b60 3ffeea98 3ffeea98 40203cf9
    3fffff70: 3ffe89a0 3ffeea7c 3ffeea98 40203d24
    3fffff80: 0001c200 3ffeea7c 3ffeea98 40203d98
    3fffff90: feefeffe 3ffeea98 3ffeea98 402025ed
    3fffffa0: feefeffe feefeffe feefeffe 3ffeeadc
    3fffffb0: 3fffdad0 00000000 3ffeead4 40204818
    3fffffc0: feefeffe feefeffe 3ffe8540 40100739
    <<<stack<<<

    ets Jan 8 2013,rst cause:2, boot mode:(1,6)

    ets Jan 8 2013,rst cause:4, boot mode:(1,6)

    wdt reset

  12. malam gan, kok aku ada error seperti itu kenapa ya? aku pakai arduino uno.

    C:\Users\Probook 640 i5\Documents\Arduino\sketch_nov22c\sketch_nov22c.ino: In function ‘void setup()’:

    sketch_nov22c:28: error: ‘Serial1’ was not declared in this scope

    Serial1.begin(115200);

    ^

    exit status 1
    ‘Serial1’ was not declared in this scope

    1. Bisa aplikasikan dengan uni, namun permasalahnnya terletak pada komunikasi serial
      pada mega Serial ada 4 buah sedangkan di uno hanya 1 (sharing dengan usb serial arduino)
      Bisa, uno menggunakan software serial/sharing serial.
      kendalanya adalah apabila esp8266 baudratenya 115200, maka cenderung ga stabil dengan software serial arduino uno.
      tapi bisa diakali dengan sharing port serial, dengan catatan saat upload sketch pin 0 (rx) mesti di lepas dulu.
      tetapi jika baudrate esp8266 9600, penggunaan software serial lebih stabil.

  13. kang mohon bantuannya saya kirim data sensor dengan esp8266 ke web hostinger mendapat kode 404 seperti terjutu ke halaman lain, gimana ya biar datanya masuk ke database saya di hostinger?

    1. 404 adalah kode bahwa esp8266 dapat berkomunikasi dengan hostinger, tetapi halaman yang diminta tidak ditemukan di hostiger.
      cek lagi penulisan alamat, dan sistem keamanan server (setting web server di hostinger mungkin menggunakan ssl)

    1. coding arduino + esp / arduino + ethernet / nodemcu dkk untuk berkomunikasi dengan database melalui php / remote database melalui protokol http akan ‘berbeda’ karena perbedaan interface.

      masing-masing interface memiliki cara memulai, perizinan, bertukar data, menguji keaslian data dll yang berbeda, disamping itu penggunaan library yang berbeda juga mempengaruhi metode pemrograman

  14. mas, saya rencana mau nyoba buat absen finger print pake arduino + php. apa bisa dari arduino mengirim data id hasil scan finger print ke server lokal? atau apa bisa arduino menjalankan file php ? terima kasih.

  15. BAng kalo kodingan menggunakan arduino dan wifi esp supaya bisa diliat di server, dan bisa diliat di LCD sama gitu datanya. Misal di LCD datanya 50 gimna cara nyamain sama di server supaya datanya 50

  16. bang mau nanya jika kita mau ngambil data dari localhost satu data nama contohnya dalam satu tabel bisa gak ya ? nanti di tampilkan di LCD pake wemos d1 r2

  17. makasih gan respon nya, untuk CP buat bertanya ada gak gan ?
    Jika kita menggunakan sensor IR Obstacle apakah bisa menggunakan metode untuk mengirimkan hasil sensor ke web dan di buat tampilan di web ? sama untuk esp8266 apakah esp8266 harus di berikan hambatan 10kOhm dan 1kOhm?

  18. Gan mau nanya saya sudah bisa mengirimkan satu sensor IR ke database localhost menggunakan ESP8266 01, cara agar bisa mengirimkan lebih dari satu gimana gan ?
    terima kasih.

  19. mas saya sudah bisa menampilkan data monitoring sensor menggunkan coding ini. Tapi saya ingin komunikasi controling mas. Saya belum bisa untuk controling nya. Mungkin mas bisa buat tutorial controlling led menggunakan coding ini. klo bisa lebih cepat ya mas. Buat referensi tugas akhir. ?

  20. bang mau nanya, kalau komunikasi esp8266 ini di ganti modul LoRa Shield (komunikasi jarak jauh menggunakan gelombang radio) apakah akan beda jauh? dari segi coding dll. sudah pernah coba belum bang?

  21. Saya sudah mencoba untuk controlling led menggunakan coding ini mas. Masih belum bisa.
    Fungsi dari respondariserver itu untuk apa ya mas. Apakah itu untuk menampung data dari web ?

  22. mas, jika mengambil data dari database ke arduino kan tidak bisa. diambil datanya kan dari server, nah disini bagian yang diambil dari phpnya apakah bagian ini?
    if($result = $conn->query($sql))
    {
    $row = $result->fetch_assoc();
    echo $row[“variabel”].”=”.$row[“nilai”];

    lalu code pengambilan dari arduinonya itu yg mana ya?

    1. //===========Penanganan respon disini
      Serial.print(variabel);
      Serial.print(" = ");
      Serial.println(nilai);

      data dari server contohnya
      lampu=on
      maka ‘string variabel’ isinya “lampu”
      dan ‘string nilai’ isinya “on”
      dari sini bisa dikembangkan sesuai kebutuhan

  23. kenapa di serial monitor tidak terbaca nilai data dari databasenya ya? disini nilai dan variabelnya tidak terbaca, hanya berisi Starting connection to server…
    [WiFiEsp] Connecting to 192.168.43.64
    Connected to server
    Disconnecting from server…
    Data dari server

    kenapa ya mas?

  24. mas, saya mau tanya. saya disini saya punya tabel database mysql, yang setiap ada kartu yang terbaca akan disimpan. didalam tabel penyimpanan tersebut ada kolom berisi angka untuk menggerakkan motor (realisasinya nanti) .nah cara baca kolom tsb agar bisa dibaca dan diambil ke arduino bagaimana ya mas? mohon bantuannya step step yang harus saya lakukan mas

  25. Mohon maaf mas, mau tanya, kalau komunikasi 2 arah vb (server) dengan ethernet shield tanpa web server ada tutor nya apa engga mas?
    Terima kasih mas.. Mohon jawabannya

  26. Mas mau nanya bagaimana mengirimkan data esp8266-01 ke database hosting mas ? saya udah bisa mengirimkan ke database local host tapi ketika mencoba ke hosting ggl mas. Terima kasih mas

  27. mas saya sudah buat database di hosting, dan sudah atur database sesuai yang hosting, saya sudah taruh file untuk di public_html, ketika mengrimkan data dari url ke database sudah bisa mas, tapi waktu mengirimkan data melalui esp masih ggl mas, saya masih bingung di get “”GET /arduinovb/index2.php?data6=” ini untuk local host, untuk yang hosting gimana ya mas, mungkin bisa lihat code yang saya gunakan mas

    void senddataid(String x)
    {
    sendcommand();
    String cmd2 = "GET /index2.php?data7=";
    cmd2 +=x;
    cmd2 +="\r\n";
    cmd2 +="HTTP/1.1\r\n";
    Serial1.print("AT+CIPSEND=");
    Serial1.println(cmd2.length());
    if (Serial1.find(">")){
    Serial.print(">");
    } else {
    Serial1.println("AT+CIPCLOSE");
    Serial.println("Koneksi Timeout");
    delay(1000);
    return;
    }

  28. eror mas…

    bukan nya itu bagian yang ini mas ?

    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;
    }

  29. Selamat malam mas, saya udah ngikutin sesuai tutor di atas code nya tapi saya make rfid di kirim ke database, untuk database local sudah bisa, tetapi ke hosting tidak bisa mas, saya make framework codeigniter tetapi file untuk menghubungkan arduino dan server saya pisah tidak saya satuin dengan CI, jadi CI khusus nanti hanya mengambil data dari database setelah data bisa terkirim ke database.
    Kira-kira salah dimana ya mas.

  30. Mas kenapa ketika berhasil sekali mengirmkan data. terus ketika data berikut nya “No Socket available” data nya menjadi tidak terkirim mas.

  31. mas, setelah saya upload program di arduino ada notif error gini mas:
    error: ‘WiFiEspClient’ does not name a type
    WiFiEspClient client;

  32. Mantap mas udah bisa
    Tapi permasalahan utama saya itu saat upload program ke esp8266 nya mas.
    di buat perintah AT command sudah bisa (pas cuman program kosongan), kalo mau upload program sebenernya malah error terus mas.
    saya udah coba beberapa step sampai flashing modul esp saya dari internet, tapi masih tetep ga bisa mas. mungkin mas asep punya solusi. makasih mas.

    Errornya :
    error: failed reading byte
    warning: espcomm_send_command: cant receive slip payload data
    error: failed reading byte
    warning: espcomm_send_command: cant receive slip payload data

    #kadang cuman gini aja mas kalo rangkaiannya saya ubah
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed

    1. esp8266-nya jenis apa / board apa?
      rekomendasi flash (datasheet)
      GPIO15-LOW
      GPIO0-HIGH
      GPIO2-HIGH
      Penggunaan standar arduino (komunikasi Serial melalui rx-tx)
      GPIO15-LOW
      GPIO0-LOW
      GPIO2-HIGH

  33. Arduino: 1.6.5 (Windows 8.1), Board: “Generic ESP8266 Module, 80 MHz, Flash, Disabled, ck, 26 MHz, 40MHz, DOUT (compatible), 512K (no SPIFFS), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200”

    In file included from C:\Users\Muh inwan suaidy\Documents\Arduino\libraries\WiFiEsp\src/WiFiEsp.h:29:0,
    from TAku.ino:1:
    C:\Users\Muh inwan suaidy\Documents\Arduino\libraries\WiFiEsp\src/WiFiEspServer.h:41:16: error: invalid abstract return type for member function ‘WiFiEspClient WiFiEspServer::available(uint8_t*)’
    WiFiEspClient available(uint8_t* status = NULL);
    ^
    In file included from C:\Users\Muh inwan suaidy\Documents\Arduino\libraries\WiFiEsp\src/WiFiEsp.h:28:0,
    from TAku.ino:1:
    C:\Users\Muh inwan suaidy\Documents\Arduino\libraries\WiFiEsp\src/WiFiEspClient.h:30:7: note: because the following virtual functions are pure within ‘WiFiEspClient’:
    class WiFiEspClient : public Client
    ^
    In file included from C:\Users\Muh inwan suaidy\Documents\Arduino\libraries\WiFiEsp\src/WiFiEspClient.h:25:0,
    from C:\Users\Muh inwan suaidy\Documents\Arduino\libraries\WiFiEsp\src/WiFiEsp.h:28,
    from TAku.ino:1:
    C:\Users\Muh inwan suaidy\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Client.h:29:21: note: virtual int Client::connect(const IPAddress&, uint16_t)
    virtual int connect(CONST IPAddress& ip, uint16_t port) =0;
    ^
    C:\Users\Muh inwan suaidy\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Client.h:37:22: note: virtual bool Client::flush(unsigned int)
    virtual bool flush(unsigned int maxWaitMs = 0) = 0;
    ^
    C:\Users\Muh inwan suaidy\AppData\Roaming\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\cores\esp8266/Client.h:38:22: note: virtual bool Client::stop(unsigned int)
    virtual bool stop(unsigned int maxWaitMs = 0) = 0;
    ^
    TAku:17: error: cannot declare variable ‘client’ to be of abstract type ‘WiFiEspClient’
    In file included from C:\Users\Muh inwan suaidy\Documents\Arduino\libraries\WiFiEsp\src/WiFiEsp.h:28:0,
    from TAku.ino:1:
    C:\Users\Muh inwan suaidy\Documents\Arduino\libraries\WiFiEsp\src/WiFiEspClient.h:30:7: note: since type
    bang, saya sudah install library wifiesp.h dan dapat error begini, solusinya gimana ya bang?

    ‘WiFiEspClient’ has pure virtual functions
    class WiFiEspClient : public Client
    ^
    cannot declare variable ‘client’ to be of abstract type ‘WiFiEspClient’

    This report would have more information with
    “Show verbose output during compilation”
    enabled in File > Preferences.

  34. oalah iya bang.. saya kira di board esp8266

    Arduino: 1.8.2 (Windows 10), Board: “Arduino/Genuino Uno”
    TAku.ino: In function ‘void setup()’:
    TAku:28: error: ‘Serial1’ was not declared in this scope
    Serial1.begin(115200);
    ^
    exit status 1
    ‘Serial1’ was not declared in this scope

    kalo gini yang salah apanya ya mas?

  35. assalamualaikum.. bg mau tanya kalau data inputan dari hp apakah bisa tanpa pakai database..? langsung esp arduino Relay?
    jadi HP-JARINGAN INTERNET-Mengirim data dari hp -ESP menerima data dari HP-data disalurkan ke arduino lalu arduino ke relay? karna saya ingin membuat lampu otomatis menggunakan android agar dapat diakses dari jarak jauh… trimakasih sebelumnya bg..

    1. Database (baca server) diperlukan sebagai penyedia layanan pada jaringan internet
      *Kecuali HP atau ESP bisa bertindak sebagai server

      >> alternatif: bisa menggunakan server-server iot (dengan koding mengikuti cara masing2 server)

  36. Mas Mohon Bantu,

    saya sudah sudah cobakan mengunakan arduino uno dan esp8266-01
    menggunakan Xapp,

    char ssid[] = “*****”; // Isi dengan nama profil Wifi
    char pass[] = “****”; // password wifi
    char server[] = “127.0.0.1/Arduino-MySQL”; // alamat access point yang telah terinstall XAMPP local host
    //char server[] = “semesin.com”; // alamat web hosting

    dan hasil
    di serial monitoring

    Koneksi arduino dengan mySql menggunakan ESp8266 dan XAMPP
    Ketik pesan yang akan dikirim (pastikan setti⸮⸮

    dan hasil di
    http://localhost/Arduino-MySQL/

    tidak ada perubahan, walapun sudah input data
    Nama Variable :
    Nilai :

    tidak ada respon

    yang saya ubah

    Serial1.begin(115200);
    WiFi.init(&Serial1);

    menjadi

    Serial.begin(115200);
    WiFi.init(&Serial);
    karena ada error massege pada saat verivy

    exit status 1
    ‘Serial1’ was not declared in this scope

    Terimkasih Mas

  37. mas gimana kaluu kita membaca data dari mysql Server dan papar data di arduino LCD…. contohnya … jika saya masukkan password.. arduino akan paparkan saya punya data uang yang saya ada di dalam mysql

  38. Mas, kalau untuk mengecek data yang masuk ke web server tanpa harus kita reload/tekan tombol F5 di keyboard gmna solusinya ya mas ?
    karena saya setiap kali mengirim data yg di kirim ke web server harus di reload dulu.

    Di sini mengirim data barcode yg isi nya nama produk, harga sama kode nya mas kyag di kasir gitu..

    Mohon pencerahannya mas ? ?

  39. //char server[] = “192.168.123.1”; // alamat access point yang telah terinstall XAMPP local host

    gan ini itu alamat ip apa ya?
    ip laptop nya atau ip xampp nya?

    Terimakasih gan

  40. mohon bantuannya dong bang
    untuk mengirim data dari esp8266-E01 + Arduino mega ke web hosting gratis(000webhost.com) gimana ya bang . mohon bantuannya dong bang

  41. itu cara esp8266-e01 + mega2560 untuk mengirim ke hosting berbayar gimana ya mas ?? bisa ngga mas minta source code nya mas ??
    makasih mas .

  42. Assalamualaikum, selamat malam bang, kalo misal mau kirim data terbaru dari database ke arduino setiap 10 detik sekali tanpa ada button kirim gimana ya?
    terimakasih sebelumnyaa….

  43. mas mau tanya, ini kan untuk arduino uno + esp
    jika mikon nya arduino mega sama script dan langkahnya sama saja atau berbeda?

  44. mas saya mau tanya, saya udh pasang esp-12f sama arduino nano tetapi gabisa konek mas, munculnya spt ini:

    Koneksi arduino dengan mySql menggunakan ESp8266 dan XAMPP
    Ketik pesan yang akan dikirim (pastikan setting serial ke “both NL & CR”)
    https://www.project.semesin.com

    [WiFiEsp] Initializing ESP module
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] Cannot initialize ESP module
    [WiFiEsp] >>> TIMEOUT >>>
    [WiFiEsp] No tag found
    WiFi shield not present

  45. Salam
    Mas Asep Kurniawan

    Terimakasih atas tutorialnya sangat membantu. Saya sudah mencoba dan berhasil mas, namun ada disuatu waktu tiba-tiba diserial monitor tertulis:

    “[Wifiesp] No Socket Available”

    Setelah terdapat tulisan itu, fungsi 2 arahnya langsung hilang. Ada beberapa yang saya usahakan, antara lain:
    1. Mengganti baudrate ke 9600 sesuai firmware yang saya suntikan
    2. Memodifikasi library wifiesp pada bagian espdrv untuk memanjangkan waktu pencarian host server
    3. Memodifikasi library wifiesp pada bagian wifiespclient.cpp dimana terdapat bagian No Socket Available, saya menambahkan asm volatile “jmp 0” untuk mereset atmega328P ketika terjadi “No Socket Available”
    4. Menambahkan client.flush pada bagian
    if (!client.connect)
    5. Membuat delay yang lebih panjang
    6. Mengganti hardware dari esp01 ke esp12e
    7. Menanyakan di blog orang yang membuat library wifiesp.h yaitu di ya-ab.blogspot.com klo tidak salah. Namun tidak dijawab.

    Setelah semua itu dicoba, masih memunculkan no socket available. Apakah mas punya ide untuk masalah saya diatas. Sangat senang sekali jika mas dapat mengatasi masalah saya.

    Terimakasih mas,
    Regards.
    Najib

    1. masalah umum :
      socket yang digunakan sebelumnya belum ditutup secara sempurna oleh ‘client.stop()’

      kemungkinan lain:
      *terlalu banyak request sehingga semua socket penuh
      *jeda antar request terlalu singkat
      *server banyak menerima request hingga kepenuhan

  46. Mas mau tanya apakah untuk pengiriman 2 data ke web hosting tidak bisa bersamaan /ada delay..
    Contoh data 1 : suhu 10 derajat dan data 2 : KETERANGAN DINGIN
    kalo bisa mohon bimbingannya
    Terima kasih

  47. Mas mau tanya
    Apakah bisa pengiriman 2 data ke web hosting secara bersamaan/ atau memang memiliki delay
    Contoh
    Suhu 10 derajat dan keterangan dingin
    mohon pencerahannya
    Terimakasih

  48. Kak mau nanya misal kalo codingan diatas saya terapkan untuk arduino uno r3 aja bisakah kak? Jadi nanti tu arduinonya langsung berhubungan sama database kak tanpa ada esp nya. kira-kira bisa kah kak?

  49. gan boleh bertanya? apakah bisa arduino mengirim dan memanggil data dari database. saya buat table didatabase yaitu pengaturan waktu pake rtc, supaya ditampilin di lcd i2c dan menggerakan motor servo, saya mengguanakan arduino uno dan nodemcu esp8266. terimakasih agan

  50. Mas , Kalau saya pakai arduino uno trus esp8266 nya saya ganti pake esp32 gitu gimana mas? apakah library wifiesp yang digunakan diatas juga diganti? untuk konfigurasi koneksi esp32 ke access point menggankan soft AP ya mas?

    1. Jika skemanya Arduino – serial – esp32 (layaknya esp8266), maka esp32 mesti diprogram dulu untuk terhubung ke jaringan wifi serta mengirimkan setiap data serial yang diterima dari arduino.

  51. Mas kalau skemanya Arduino – serial – esp32 – wifi – web hosting gitu apakah bisa tetap dilakukan komunikasi 2 arah seperti postingan masnya?

  52. gan klo ini knp ya?

    Starting connection to server…
    [WiFiEsp] Connecting to 192.168.1.7
    [WiFiEsp] >>> TIMEOUT >>>

    Starting connection to server…
    [WiFiEsp] Connecting to 192.168.1.7
    [WiFiEsp] >>> TIMEOUT >>>

    Starting connection to server…
    [WiFiEsp] Connecting to 192.168.1.7
    [WiFiEsp] >>> TIMEOUT >>>

    perangkat yg d pake arduino UNO + esp8266-01
    arduino udh terhubung dengan AP..
    192.168.1.7 ip yg terinstall xampp..
    ane masih blm paham dengan pengiriman dari database ke arduinonya

  53. bang kalo ambil data dari database ke arduino, code arduinonya yang mana ya?

    aku cuma butuh ambil data dari database ke arduino lewat esp

  54. kang bisa ga kalo ambil datanya real time?

    void loop() {
    ambilDatabase(valSensor);
    }

    bool ambilDatabase(int valSensor)
    {
    Serial.println();
    Serial.println(“Starting connection to server…”);
    // if you get a connection, report back via serial
    if (client.connect(server, 80)) {
    Serial.println(“Connected to server”);
    // Make a HTTP request
    client.print(“GET /receive.php?=valSensor=”);
    client.print(valSensor);
    client.println(” HTTP/1.1″);
    client.print(“Host: “);
    client.println(server);
    client.println(“Connection: close”);
    client.println();

    return true;
    }
    return false;
    }

    ———————————————-
    <?php
    $servername = “localhost”;
    $username = “root?; // username for your database
    $password = “”;
    $dbname = “db_sensor?; // Name of database
    $now = new DateTime();
    $CRLF = "\n\r";

    $fieldToGet = $_GET['valSensor'];

    $conn = mysql_connect("localhost","username","password");

    if (!$conn)
    {
    die('Could not connect: ' . mysql_error());
    }
    $con_result = mysql_select_db("db_sensor", $conn);
    if(!$con_result)
    {
    die('Could not connect to specific database: ' . mysql_error());
    }

    /*
    * Database was created with a table called "DataTable" and has
    * a column called "field" and a column called "value" and a
    * column called "logdata"
    */
    $sql = "SELECT * FROM `tbl_sensor` WHERE `valSensor` = \"$fieldToGet\"";
    $result = mysql_query($sql);

    if (!$result) {
    die('Invalid query: ' . mysql_error());
    }
    echo "THE DATA HAS BEEN RECEIVED!!”;

    while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
    echo “ID: ” . $row[“ID”]. ” – Value: ” . $row[“valSensor”]. ” – TimeDate: ” . $row[“data_waktu”]. “”;
    }

    mysql_close($conn);
    ?>

  55. saya coba tutorialnya dari awal kang, tp ada masalah, langkah yg saya lakuin:
    – Semua file php udh di dalam folder htdocs/arduino_mysql,
    – Buat database dengan nama arduino_mysql (tanpa buat tabel)
    – upload arduino Code, terus ubah ssid, pass, server (IP localhost)

    nah terus dapet timeout terus,

    [WifiEsp] >>> Timeout >>>

    kenapa ya kang? apa saya harus buat tabel di databasenya?

  56. mas mau tanya klau mau menampilkan data dari arduino ke web gimana ya, misalnya saya mau buat menampilkan data RPM motor ke monitor interfacenya pake WEB atau PHP.

  57. $servername = “localhost”;
    $username = “******_Arduino”;
    $password = “Arduino”;
    $database = “******_arduino_mysql”;

    Gan, ini yang diedit yang bintang (****) aja atau semua subject stringnya (“******_Arduino”)?

  58. kang, mau tanya, saya ada tugas, kondisinya script esp8266 akan running ketika localweb (laravel) mengirimkan request dari sebuah button. apa ada tutorialnya kang?

  59. kang, kalo cuman ingin nampilin hasil sensor dari mq2 di arduino dengan esp8266 ke website tanpa save ke database syntax nya mke yang mana ya

  60. iya kang, saya sudah test satu satu, yg saya bingung gabungin nya kang

    ini sintax arduino dengan sensor mq2
    #include

    int redLed = 11;
    int blueLed = 12;
    int buzzer = 10;
    int smokeA0 = A5;
    // nilai threshold adalah ambang batas sensor smoke mendeteksi asap rokok
    int sensorThres = 200;

    void setup() {
    pinMode(redLed, OUTPUT);
    pinMode(blueLed, OUTPUT);
    pinMode(buzzer, OUTPUT);
    pinMode(smokeA0, INPUT);
    Serial.begin(9600);
    }

    void loop() {
    int analogSensor = analogRead(smokeA0);

    Serial.print(“Pin A0: “);
    Serial.println(analogSensor);
    // Cek apakah telah mencapai nilai ambang batas
    if (analogSensor > sensorThres)
    {
    digitalWrite(redLed, HIGH);
    digitalWrite(blueLed, LOW);
    tone(buzzer, 1000, 200);
    delay(50);
    }
    else
    {
    digitalWrite(redLed, LOW);
    digitalWrite(blueLed, HIGH);
    noTone(buzzer);
    }
    }

    ini sintax arduino denga esp8266, saya coba esp8266 nya sudah tampil di web
    ⸮⸮AT

    OK
    AT+CWMODE=1

    OK
    AT+CWLAP

    +CWLAP:(4,”Aiys4″,-57,”c8:0c:c8:f9:9e:8c”,4,20,0)
    +CWLAP:(3,”Aiys4″,-75,”b0:4e:26:05:d2:23″,4,0,0)
    +CWLAP:(4,”REVO EMILIU”,-89,”04:33:89:23:8c:8c”,9,8,0)

    OK
    AT+CWJAP=”Aiys4″,”Rsibyan006″

    WIFI CONNECTED
    WIFI GOT IP

    OK
    AT+CIFSR

    +CIFSR:STAIP,”192.168.100.171″
    +CIFSR:STAMAC,”5c:cf:7f:ba:59:48″

    OK
    AT+CIPMUX=1

    OK
    AT+CIPSERVER=1,80

    OK
    0,CONNECT

    +IPD,0,446:GET / HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    1,CONNECT
    0,CLOSED

    +IPD,1,446:GET / HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    0,CONNECT
    AT+CIPSEND=0,20

    OK
    > I

    busy s…

    Recv 20 bytes

    SEND OK
    AT+CIPCLOSE=0

    0,CLOSED

    OK
    1,CLOSED
    0,CONNECT
    1,CONNECT

    +IPD,0,446:GET / HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    2,CONNECT
    AT+CIPSEND=0,25

    OK
    > +CIPCLOSE=0

    busy s…

    Recv 25 bytes

    SEND OK
    AT+CIPSEND=0,30

    OK
    > 1,CLOSED
    2,CLOSED
    END=0,30

    busy s…

    Recv 30 bytes

    SEND OK
    ASAP ROKOK TERDETEKSI

    ERROR
    0,CLOSED
    0,CONNECT
    1,CONNECT

    +IPD,0,446:GET / HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    2,CONNECT
    0,CLOSED
    1,CLOSED
    2,CLOSED
    0,CONNECT
    1,CONNECT

    +IPD,0,446:GET / HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    AT+CIPSEND=0,30

    OK
    > KOK TERDETEKSI BRO

    busy s…

    Recv 30 bytes

    SEND OK
    AT+CIPCLOSE=0

    0,CLOSED

    OK
    1,CLOSED
    0,CONNECT

    +IPD,0,382:GET /favicon.ico HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: image/webp,image/apng,image/*,*/*;q=0.8
    Referer: http://192.168.100.171/
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    1,CONNECT
    AT+CIPSEND=0,30

    OK
    > CLOSE=0

    busy s…

    Recv 30 bytes

    SEND OK
    1,CLOSED
    1,CONNECT

    +IPD,1,472:GET / HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    AT+CIPSEND=1,30

    OK
    > LOSE=1

    busy s…

    Recv 30 bytes

    SEND OK
    AT+CIPSERVER=1,80

    no change

    OK
    1,CLOSED
    1,CONNECT

    +IPD,1,472:GET / HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    0,CLOSED
    AT+CIPSEND=1,30

    OK
    > ROKOK TERDETEKSI !

    busy s…

    Recv 30 bytes

    SEND OK
    AT+CIPCLOSE=1

    1,CLOSED

    OK
    0,CONNECT

    +IPD,0,425:GET /favicon.ico HTTP/1.1
    Host: 192.168.100.171
    Connection: keep-alive
    Pragma: no-cache
    Cache-Control: no-cache
    User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36
    Accept: image/webp,image/apng,image/*,*/*;q=0.8
    Referer: http://192.168.100.171/
    Accept-Encoding: gzip, deflate
    Accept-Language: id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7,ms;q=0.6

    1,CONNECT
    AT+CIPSTATUS

    STATUS:3
    +CIPSTATUS:0,”TCP”,”192.168.100.74″,49839,80,1
    +CIPSTATUS:1,”TCP”,”192.168.100.74″,49840,80,1

    OK
    1,CLOSED
    0,CLOSED

    yang saya bingung gimana cara gabungin nya kang? terimakasih

  61. ini pake database, ethernet shield, arduino, servo dan bluetooth.
    bluetooth nyambung ke hp dijadikan barcode scanner (dibuat dari app mit invetor),, terus hasil barcode yang sudah discan akan tampil di serial monitor. dan database sudah disi manual dari web.

    apakah bisa hasil scan tadi akan di cocokan dengan data yang di database tersebut ? jika hasil scan itu ada di database maka servonya akan bergerak, begitupula sebaliknya jika hasil yang discan tidak ada didatabase servo tidak akan bergerak…

    Paham gan ??

  62. mas mau nanya..kalau board arduino mega nya saya ganti pakai wemos aja gmn?
    soal nya lib WiFiEsp.h” tsb pakai koneksi serial1 ya untuk koneksi ke esp nya

    kalau saya mau ganti board nya pakai wemos D1 R1 .. apa yang perlu tak ubah di code nya?

    tks

  63. Bang mau nanya untuk mengirimkan data inputan dari sensor di tempat A kemudian komunikasi secara wireless dan output berada di tempat B apa bisa di lakukan menggunakan esp?

  64. Mas saya sedang mencoba project Running Text menggunakan led strip ws 2812 dan menggunakan mikrocontroller esp8266 dan semua sudah berjalan dengan lancar akan tetapi saya ingin mencoba update text tersebut melalui web browser dan terupdate di running text tersebut, bagaimana ya mas caranya dan apakah ada tutorialnya ?

    1. bisa jadi masalah yang komplek,
      langkah yang bisa dicoba :
      1. stabilkan dulu komunikasi antara uno dan esp01 (indikatornya tidak ada respon yang tidak diinginkan, seperti karakter2 aneh)
      2. pastikan esp dan dan access point/hotspot tersambung dengan baik
      3. pastikan esp terhubung dengan server sebelum melakukan komunikasi data

  65. Kak , saya tambah rangkaian dengan ultrasonic ( counter ), jadi kalau jarak 10 cm maka ultrasonic (counter) akan bertambah 1 kalau jarak di atas 10 cm maka break ;
    Sudah break tapi kok data terus menerus looping dengan angka yang sama kak di databases nya juga ngeprint angka yang sama pula..mohon pencerahannya

  66. gan maaf mau tanya yang bagian ini maksudnya gimana ya ?

    if (client.connect(server, 80)) {
    Serial.println(“Connected to server”);
    // Make a HTTP request
    client.print(“GET /arduino_mysql/keArduino.php?variabel=”);
    client.print(variabel);
    client.println(” HTTP/1.1″);
    client.print(“Host: “);
    client.println(server);
    client.println(“Connection: close”);
    client.println();

    tolong jelasin dong serinci2nya

    1. * buat koneksi ke ‘server’ melalui port ’80’
      * kirim request tcp “GET /arduino_mysql/keArduino.php?variabel=’variabel'” ke server
      rinci serinci rincinya baca komunikasi tcp/ip

  67. gan kalau kita masih buat dengan localhost untuk bagian ini diisinya gimana ya ?

    //char server[] = “192.168.123.1”; // alamat access point yang
    char server[] = “semesin.com”; // alamat server hosting

  68. Malam gan, sorry mengganggu, mau nanya
    Rangkaian di atas kan pakai ESP-07 ya, misalkan saya ganti menjadi ESP-01 bisa ga ya gan?
    Apakah sistemnya sama juga seperti di atas?
    Terima kasih Gan

  69. Trimakasih mas, materinya sangat menarik. kebetulan saya juga lagi mengerjakan sistem seperti ini. Konsepnya, kita menyimpan data suhu (misalnya 20 derajat) di mysql. Selanjutnya data ini harus dikirim ke arduino agar arduino mengaktifkan kipas angin sampai suhu ruangan mencapai atai mendekati suhu 20 derajat sebagaimana yang dimasukan di database. Apakah saya bisa menggunakan konsep yang mas gambarkan di atas..?? Mhn bantuan pencerahannya. Terimakasih…

  70. ka, salam kenal
    aku mau tanya, kalau koneksi ke local server saja gimana, tidak koneksi ke internet,
    jadi cuma pc server lokal wireless router arduino
    terima kasih

    1. bisa,
      atur saja ip-nya (pc terhubung ke router, dan nodemcu mode client terhubung ke router)
      misal ip router 192.168.1.1 mask 255.255.255.0, biasanya ip pc 192.168.1.xyz (juga sebagai ip web server pc)
      di nodecmu koneksikan ke host di alamat 192.168.1.xyz

  71. bang saya mau nanya
    code buat ngirim data ke server nya kok gagal terus ya, saya coba gabung pake tutorial yang ada di website ini juga dan ternyata gak berhasil
    mohon solusinya bang agar bisa menerima dan mengirim data secara bergantian
    terima kasih sebelumnya

  72. Perimisi bang
    mau bertanya untuk sambungan dari esp8266 apakah harus ditambahkan resistor yang sesuai dengan nilai pada digambar atau boleh bebas seperti menggunakan 1k saja

    1. baris 116, contohnya

            variabel = Data.substring(0,posisiData);
            nilai = Data.substring(posisiData+1);
      
            //===========Penanganan respon disini
            if((variabel=="led")&&(nilai=="hidup"))
            {
              digitalWrite(pinLED, HIGH);
            }
            else if((variabel=="led")&&(nilai=="mati"))
            {
              digitalWrite(pinLED, LOW);
            }
         
            Serial.print(variabel);
            Serial.print(" = ");
            Serial.println(nilai);
      

Leave a Reply

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