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:
- Merangkai Arduino + ESP8266
- Membuat sketch Arduino untuk mengirim dan menerima data dari database
- Konfigurasi koneksi ESP8266 ke access point wifi (AP)
- Install XAMPP server dan mengaktifkannya
- Untuk web server hosting, membuat database, user account dan priveleged-nya
- 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:
- Menerima masukan string/text dari serial monitor dan mengirimkannya ke webserver untuk disimpan ke database MySQL.
- 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:
- Menerima data dari Arduino menggunakan metode ‘GET’ dengan parameter ‘variabel’, ‘nilai’, dan ‘status’.
- Menyimpan data dari entri data di webserver, dan akan mengirimkannya ke Arduino saat diminta.
- 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
Bang buat program php dariArduino.php nya mana yah bang
Terima kasih, file ‘dariArduino.php’ sudah di tambahkan.
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 ?
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
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,
bisa dengan beberapa metode diantaranya:
* dengan dua input (variable) atau
* satu input dengan parsing data di sisi client (arduino)
Adakah tutorialnya kang?
Spesifik seperti itu belum ada,
contoh di halaman ini bisa dikembangkan untuk mengambil dua nilai variabel
contohnya variabel ‘suhuBatasBawah’ dan variabel ‘suhuBatasAtas’
mas itu ko methodenya pake get ya bukan post?
ya GET
Bisa ngga kirim atau baca data dari sql melalui serial?
Bisa, dengan bantuan software khusus seperti MySQLIO
mas, kalo ada dua sensor yang diubah mana aja?
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
Ada akun youtubenya nggak gan?
belum, cuma akun biasa.
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
modul esp8266 belum merespon
kemungkinan, beda baudrate atau juga pengkabelan
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
protokolnya sama jika menggunakan http (antara arduino atau esp8266)
kontak ada di menu perancang
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.
install dulu library WiFiEsp for arduino
bisa tolong disertakan link download untuk library wifi.h nya gan ? terima kasih
link download library WiFiEsp
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
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.
Berarti kalo saya kirim data arduino ke mysql(hosting) memakai php, jadi tidak perlu fitur remote database ?
terima kasih sebelumnya
Nga perlu, cukup menggunakan protokol http (POST / GET)
malam kang mo tanya, disini menggunakan sensor apa yaa ?? dan apakah “waktuMintaData” hanya meminta data jika ada perintah saja ??
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’
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
Bisa,
yang perlu diganti board beserta library-nya termasuk nama fungsi
prinsip kerja kurang lebih sama saja.
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
pada baris 109 – 120 bisa ditambahkan kode lcd.print()
kang mau tanya, kalo koneksi ke servernya udh OK tapi data yang dimasukkin dari serial monitor tidak masuk ke database itu kenapa?
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
Program di artikel ini untuk arduino + esp
gak cocok untuk wemos / esp platform
mas, mau nanya. harus pakai hosting ya?
kalau pakai xampp gk bisa?
bisa, sesuaikan ip / address-nya
Terimakasih mas ?
Sangat membantu.
jika saya pakai mysql sebagai servernya (offline) tanpa melakukan hosting online apa tetap bisa terhubung?
bisa,
web server bisa dijalankan di komputer/laptop secara offline (hanya terhubung ke jaringan local) dan dapat diakses melalui alamat ip-nya biasanya port 80
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
Pake arduino uno yah, untuk Uno bisa menggunakan softwareSerial
Malam gan, saya pake arduino+esp cuma timeout terus, udah pake software serial juga tapi sama aja
Kalo rangkaian dan power supplynya sudah benar, kemungkinan besar baudratenya tidak tepat, coba beberapa kemungkinan lain (yang paling umum baudratenya 9600 dan 115200)
Kang tutor ini digunakan pakai uno + esp8266 ga bisa ya, atau apa yg harus diubah?
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.
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?
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)
Pagi mas, numpang tanya, untuk esp8266 nya menggunakan seri yg berapa?
percobaan ini memakai esp8266 12-E, namun bisa menggunakan type lain seperti esp-01, hanya perlu menyesuaikan pin dan baudratenya.
mas jika saya ingin mengirim dari nodemcu ke database dan hostingan saya telah memiliki fitur remote database apakah codingnya akan berbeda ?
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
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.
arduino mengirim data id hasil scan finger print ke server lokal? bisa
apa bisa arduino menjalankan file php ? dimungkinkan dengan segala keterbatasan arduino
Terimakasih mas ?
Sangat membantu.
Kang mau tanya itu pakai shared hosting atau vps?
cuma shared hosting
Mantap bang.. Lanjut terus berkarya cerdaskan bangsa.. Salut gua sama fastrespon komennya.. ?
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
paling tidak proses pengiriman data ke server (web browser membutuhkan waktu / delay)
gan mau nanya kalau mau mengirimkan data ke web server apa harus melakukan parsing data ?
dalam proyek ini tidak di parsing karena setiap data memiliki nama parameter terpisah
tapi jika format data yang dikirim berupa csv dkk-nya, bisa jadi di-parsing
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
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?
data sensor IR bisa dikirim ke web (analog atau digital)
hambatan 10kOhm dan 1kOhm diperlukan sebagai pullup dan pembagi tegangan.
kang, jika saya pakai nodemcu apa sama saja codingnya?
dan apakah bisa komunikasi serial dengan dua arduino, arduino uno dan mega?
koding ini khusus board arduino, tidak bisa dengan board nodemcu
komunikasi serial dengan dua arduino, bisa
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.
bedakan ‘variabel’ dan ‘nilai’ nya
contoh :
kirimKeDatabase("IR1",nilai1);
kirimKeDatabase("IR2",nilai2);
di sisi server juga disimpan dengan nilai yang berbeda
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. ?
coba dulu dengan referensi/kreatifitas yang ada
kalo ada masalah boleh ditanyakan disini
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?
beda protokol, beda teknik pemrograman
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 ?
respondariserver adalah status yang bernilai true jika ada balasan/respon dari server dan false jika sebaliknya (mis: tidak ada koneksi, server tidak aktif)
mas, saya menggunakan esp 8266 01, apakah kodingannya sama dengan yang diatas? terima kasih
sama
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?
//===========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
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?
* Variabel yang diminta belum ada di database
> samakan nama variabel yang di input dari browser dengan nama variabel request di arduino
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
tapi disini saya menggunakan nodemcu mas
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
maaf, belum ada
mas, kalau kirim gambar kamera ke web menggunakan esp 8266 bisa ? Terima kasih.
bisa, dengan menggunakan ‘Content-Type: image/jpeg’
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
* Buat database
* setting alamat web server dengan benar
* uji dengan memanggil url dari web browser
* jika web server menggunakan ssl, sesuaikan dengan esp
selamat malam, mas kalo pakai arduino nano sketch software serial nya gimana mas?
*Tambahkan library
*deklarasikan software serial sesuai pin rx-tx yang dituju
*arahkan esp ke software serial tersebut
cat: pada baudrate tinggi (mis 115200) software serial kurang stabil
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;
}
coba
String cmd2 = "GET /index2.php?data7=";
cmd2 +=x;
cmd2 +=" ";
cmd2 +="HTTP/1.1\r\n";
tambahkan juga
Host: *namahost
Connection: close
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;
}
kode itu untuk konek ke host
setelah bisa konek baru mengirim reguest GET
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.
kendala umum:
*server di hosting menggunakan SSL
Mas kenapa ketika berhasil sekali mengirmkan data. terus ketika data berikut nya “No Socket available” data nya menjadi tidak terkirim mas.
kemungkinan
* koneksi sebelumnya belum di close (ketika request baru dikirim), bisa jadi karena waktu jeda terlalu pendek
mas, setelah saya upload program di arduino ada notif error gini mas:
error: ‘WiFiEspClient’ does not name a type
WiFiEspClient client;
Install dulu library WiFiEsp.
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
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
model esp yang saya gunakan yang esp8266 01 warna item mas.
sudah saya flash juga
bang mau tanya.
kalau kita pakai wemos d1 beda nya di mananya ya?
selain includenya???
saya belum pernah coba langsung, yang pasti sama cara requestnya
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.
Kode di halaman ini untuk arduino uno dengan tambahan modul esp8266 sebagai alat komunikasi wifi
tidak cocok dengan board esp8266
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?
maaf bang, ternyata perintah serial1 tidak cocok untuk arduino uno 😀
Ya, untuk uno bisa menggunakan software serial
dengan catatan kurang stabil pada baudrate seperti 115200
agar lebih stabil set di baudrate 9600
gan, maaf kalau pake wemos bisa ga ya?
Mas
Apakah bisa menggunakan nodemcu?
koding-nya khusus untuk arduino+esp8266
gan bisa komunikasi vai WA?
bisa, nomor ada di kontak
bang mintak instagram nya dong atau no wa
ada di kontak pada halaman ini
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..
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)
Hi, saya ingin bertanya.
adakah method ini sama & boleh diaplikasikan untuk ESP32?
mohon penjelasannya
metodenya bisa sama,cuma esp32/esp8266 menggunakan library yang berbeda
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
Kalo pake uno gunakan softwareSerial
selain itu ganti ssid dan password yang sesuai
apakah ini bisa untuk nodemcu dan relay?
kalau bisa apa dan bagian mana yang harus diganti?
tidak bisa, mesti ganti library
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
Metode umum:
* Kirim request
misal: http://192.168.123.1/ambilDataUang?id=adm&password=1234
* Balasan/respon dari webserver sebagai data uang
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 ? ?
tambahkan meta
meta http-equiv='refresh' content='10'
atau gunakan metode ajax
itu di tambahkan meta, di koding arduino/php nya mas ?
Done succes mas, tkyu very much ?
di tambah dimananya mas samuel?
php nya kah?
//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
ip dari xampp-nya
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
Lakukan step by step, kalo ada kendala lakukan analisa masalah
itu bisa ngga mas langusng ngirim dari esp8266 langsung ke table databse yang ada di 000webhost.com ???
kalo web server dengan hosting berbayar bisa
untuk web server gratisan belum pernah coba
itu cara esp8266-e01 + mega2560 untuk mengirim ke hosting berbayar gimana ya mas ?? bisa ngga mas minta source code nya mas ??
makasih mas .
sama saja dengan kode di halaman ini, jika ada kendala lampirkan pesan errornya
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….
mas mau tanya, ini kan untuk arduino uno + esp
jika mikon nya arduino mega sama script dan langkahnya sama saja atau berbeda?
sketch ini menggunakan arduino mega
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
kesalahan ini terjado masih pada proses awal yaitu ‘menemukan modul esp’ oleh arduino atau ‘arduino tidak menemukan perangkat/modul esp’
cek wiring
set baudrate
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
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
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
dalam contoh ini data dikirim satu per satu (sederhana)
tentu bisa mengirim lebih dari itu, sesuaikan saja format-nya (di arduino dan php)
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
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?
bisa menggunakan protokol TCP/COM melalui komunikasi serial (dengan beberapa penyesuaian)
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
bisa dengan menggunakan protokol MySQL connector
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?
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.
Mas kalau skemanya Arduino – serial – esp32 – wifi – web hosting gitu apakah bisa tetap dilakukan komunikasi 2 arah seperti postingan masnya?
web hosting (local) bisa
cat:penggunaan arduino disini tidak efektif
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
pastikan ip servernya
cek akses dengan web browser
*coba juga 192.168.1.1
klo dari browser ke database bisa gan,
ip servernya itu IP APnya gan?
ip server
bisa jadi beda dengan ip AP
tolong buatkan tutorial videonya gan. untuk para newbie seperti saya. masalah saya sama seperti gbone gan.
terima kasih masukannya
bang kalo ambil data dari database ke arduino, code arduinonya yang mana ya?
aku cuma butuh ambil data dari database ke arduino lewat esp
mengambil data dari database menggunakan fungsi ‘ambilDatabase(String variabel)’
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);
?>
komunikasi via wifi juga punya delay tiap request
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?
masalah seputar komunikasi wifi, belum ke database
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.
koding di halaman ini bisa mengerjakan tugas itu,
sesuaikan saja dengan kebutuhan
$servername = “localhost”;
$username = “******_Arduino”;
$password = “Arduino”;
$database = “******_arduino_mysql”;
Gan, ini yang diedit yang bintang (****) aja atau semua subject stringnya (“******_Arduino”)?
kalau diperlukan bisa semuanya.
gan kalo ngirimnya pake ethernet shield bisa ga yah? jadi bukan pake esp
bisa, sesuaikan koding arduinonya untuk ethernet shield
kang, mau tanya, saya ada tugas, kondisinya script esp8266 akan running ketika localweb (laravel) mengirimkan request dari sebuah button. apa ada tutorialnya kang?
belum ada artikel tentang itu di sini,
membuatnya bisa dengan memulai dari example-esp8266 webserver dan ditambahkan aksi yang diperlukan pada bagian handle request-nya
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
bagusnya arduino+esp8266 itu dijadikan webservernya
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
nilai analogSensor dimasukkan dalam request-nya
contoh :
GET /?sensorAsap=[analogSensor] HTTP/1.1
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 ??
android ==> bluetooth ==> arduino (servo) <==eth==> mysql
bisa diaplikasikan
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
perlu diganti kodingnya
tapi konsep/inti komunikasinya masih bisa digunakan
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?
bisa,
sensor – arduino – esp (client) ~~ wifi ~~ esp (server) – arduino – output
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 ?
kira-kira begini…
jadikan esp8266 sebagai (web) server
buat halaman yang berisi form masukan text
buat handle untuk text yang masuk
gan itu yang pakek phpmyadmin gimana?
dalam project ini phpmyadmin hanya untuk membuat database
buka dari ‘tombol mysql admin’ pada dialog XAMPP control panel
gan kalau menggunakan NodeMCU gmn, apakah sama?
beda, namun prinsip komunikasi nya sama
Sorry mas, download lib httpclient yg esp8266 nya dimana ya?thanks
ada dibagian bawah artikel
mas, Kalau setelah AT+CIPSEND=xx tidak ada respon “>”, kemungkinan masalah apa yah?
saya pake uno + esp01
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
kang minta tolong perjelas rangkaian arduino ke esp8266nya
Kak knp di serial monitor pny ku keluarnya connection failed terus ya?
biasanya masalah baudrate, yang umum diapakai 9600 dan 115200 (hardware serial) software serial sebaiknya 9600 saja
dan esp8266nya mesti dengan baudrate yang sama
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
tambahkan kondisi :
jika jarak > 10cm, maka jangan jalankan prosedur kirim data
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
* 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
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
char server[] = “192.168.xxx.xxx”;//xxx.xxx sesuai alamat ip webserver
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
sistem dan programnya sama
kak, kalau data dari sensor dht11 arduino langsung masuk ke database, coding phpnya yang mana aja
statusKomunikasiWifi = kirimKeDatabase(“suhu”,suhuDHT);
statusKomunikasiWifi = kirimKeDatabase(“kelembaban”,kelembabanDHT);
kode diatas bisa disisip dalam loop sesuai kebutuhan
Kak mau tanya . Pada script di atas yang mendeklarasikan pin RX TX arduino di bagian mana ka..? Saya pake arduino Uno
untuk mega punya 4 Serial (uno 1 serial)
untuk uno bisa menggunakan softwareSerial
contohnya:
#include
SoftwareSerial Serial1(2,3);// 2 = RX dan 3 = TX
Klo php-nya diupload di hosting 000webhost bisa ka..?
belum coba, harusnya bisa
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…
bisa saja, sesuaikan nama-nama variabelnya
Mas mau tanya, kalau Local Area Network saja bisa tidak, artinya database nya di lokal server dan Wifi nya juga di lokal.
teirma kasih
bisa
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
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
Mantul tutorialnya, pengen nyoba sketchnya.
Mohon izin ya mas ?
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
ada kemungkinan di servernya
coba cek konfigurasi, protokol, dst dari servernya
bang kalo mengirim datanya otomatis gimana ya ?
jadi alurnya, ngirim data terus nerima data secara bergantian
terimakasih bang
dalam konsep request-response sudah seperti itu
hanya perlu mmengirimkan data-data yang di maksud baik disisi client (request), maupun disisi server (response)
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
sambungan harus pakai resistor, sebagai pembagi tegangan dan pengaman
karena arduino beroperasi pada tegangan 5v, sedangkan esp8266 beroperasi pada tegangan 3.3v
Bang ini sambungan jumpernya harus pakai resistor
sambungan harus pakai resistor, sebagai pembagi tegangan dan pengaman
ditambahkan dimana jika baca hidup, menghidupkan led pin 10, jika bca mati led pin 10 mati?
baris 116, contohnya