Hello Sahabat Anak Kendali.
Pada kesempatan kali ini saya akan menulis artikel tentang ESP8266, Nodemcu Kirim Data ke Database Hosting Gratis. banyak orang yang berkata bahwasanya kita akan menghadapi era Industri 4.0. NodeMCU Database Online
tidak sedikit seminar yang digelar dengan isi tema Industri 4.0. kata orang Industri 4.0 itu harus IOT, Internet Of Things. semuanya terintgrasi dengan Internet.
oleh sebab itu saya sendiri juga sedang belajar bagaimana menghubungkan mikrokontroler dengan Internet, baik dengan Ethernet, Wifi ataupun modul GSM. dan sebagian tutorial nya sudah saya tulis di blog anakkendali.com.
adapun kali ini saya mencoba untuk membuat hosting database yang sudah saya buat sehingga bisa di akses melalui internet, karena sebelumnya saya hanya membuat database yang hanya bisa di akses jaringan LAN saja,, dan akhirnya saya tergerak untuk belajar sedikit mengenai WebHosting.
langsung saja berikut adalah Tutorial ESP8266, Nodemcu Kirim Data ke Database Hosting Gratis.
pertama kalian harus mengikuti dulu Tutorial ESP8266, Nodemcu Cara Membaca Tabel Database Localhost supaya lebih mudah untuk mengikuti tutorial kali ini. sehingga kita sekarang hanya akan membuat Hosting nya saja. dan sedikit mengedit Program PHP tersebut.
Konfigurasi Hosting
saya menggunakan hosting Gratis dari 000Webhost.com jadi seperti ini membuat web nya.
1. buka dulu web nya, dan buat akun dengan Email kamu, Sign Up for Free.
2. jika sudah silahkan pilih saja yang gratis, dan buat nama subdomain kamu. disini saya buat alamat web nya silahkan bisa di cek juga hasilnya
3. Download semua File disini Download
4. extrack semua file nya, lalu kemudian semua file .php upload ke 000webhost caranya lihat di gambar berikut :
kemudian kita akan meng Upload file Database nya. pertama buka dulu halam untuk membuat database di 000webhost nya. lihat gambar berikut ini :
buat lah database, user dan password nya, kemudian pilih kelola. kamu akan di arahkan ke halam phpmyadmin, kemudian silahkan ke menu IMPORT untuk mengupload file .sql yang ada di dalam file yang tadi kamu download. lihat gambar berikut :
kemudian silahkan buka lagi halaman kumpulan file php dan buka file koneksi.php rubah nama database, user dan password nya sesuai dengan database yang kamu buat tadi. lihat contoh di gambar berikut :
setelah itu silahkan coba buka website hosting gratis sebagai demo nya silahkan klik
https://anakkendali.000webhostapp.com
kamu bisa daftar kemudian login untuk melihat database nya. dan tentu saja hal seperti ini belum sempurna karena semua orang bisa mengakses database kita. untuk itu project ini masih akan saya kembangkan. dan jangan sampe ketinggalan update, terus ikuti www.anakkendali.com.
Code Arduino
/*
* visit www.anakkendali.com
* 2018
*
*/
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
WiFiClient client;
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 4
#define RST_PIN 5
MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
String request_string;
const char* host = "https://anakkendali.000webhostapp.com"; //
HTTPClient http;
void setup() {
// put your setup code here, to run once:
WiFi.disconnect();
WiFi.begin("KOST_RAMA","bayardulu500");
while ((!(WiFi.status() == WL_CONNECTED))){
delay(300);
}
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
Serial.println("I am waiting for card...");
}
String strID,val, data;
void loop() {
// put your main code here, to run repeatedly:
while (client.available()>0){
delay(10);
char c = client.read();
data+=c;
}
if (data.length()>0){
Serial.println(data);
data="";
}
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial())
return;
// Serial.print(F("PICC type: "));
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
// Serial.println(rfid.PICC_GetTypeName(piccType));
// Check is the PICC of Classic MIFARE type
if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println(F("Your tag is not of type MIFARE Classic."));
return;
}
//id kartu dan yang akan dikirim ke database
strID = "";
for (byte i = 0; i < 4; i++) {
strID +=
(rfid.uid.uidByte[i] < 0x10 ? "0" : "") +
String(rfid.uid.uidByte[i], HEX) +
(i != 3 ? ":" : "");
}
strID.toUpperCase();
Serial.print("Tap card key: ");
Serial.println(strID);
val = "500"; // nilai kartu yang akan dikirim
// tambah_database();
baca_database();
delay(1000);
}
void tambah_database()
{
if (!client.connect(host,80)) {
Serial.println("Gagal Konek");
return;
}
request_string = "/rfidadd.php?idcard=";
request_string += strID;
request_string += "&val=";
request_string += val;
Serial.print("requesting URL: ");
Serial.println(request_string);
client.print(String("GET ") + request_string + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: closernrn");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
}
void baca_database()
{
if (!client.connect(host,80)) {
Serial.println("Gagal Konek");
return;
}
request_string = "/rfidread.php?idcard=";
request_string += strID;
Serial.print("requesting URL: ");
Serial.print(request_string);
client.print(String("GET ") + request_string + " HTTP/1.1rn" + "Host: " + host + "rn" + "Connection: closernrn");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
}
kurang lebih nya saya minta maaf, terimakasih sudah berkunjung jangan lupa untuk berdonasi dengan cara Share artikel ini dan bila perlu tinggalkan komentarmu di bawah.
Keyword
- esp8266 database hosting
- webhosting database esp8266
- wemos d1 mini database hosting
- cara kirim data esp8266 hosting web
- hosting web
- baca database hosting
- Nodemcu Database Online
bro , node mcu itu programnya sama kek arduino uno kah >?
bisa sama, bisa beda 🙂
tapi yang jelas nodemcu bisa di program dengan bahasa yang sama dengan arduino 🙂
Maaf admin saya mau tanya.. ini data yg di database otomatis ke-update ketika arduino runing atau manual melalui import itu min?
kalo di project ini, setiap Card RFID di tag,, maka data masuk ke database otomatis. karena sudah pake hosting jadi wifinya harus terhubung ke internet
klo untuk masukkan nilai sensor metode nya sama juga ya?
sama gan
mas saya coba program diatas, tapi kog gk bisa submit data ke database ya
di coba masukan data melalui URL pada browser dulu,, kalo bisa,, coba di cek alamat host nya.
Mas itu void database nya emang gak di pake mas ?
dipake mas,, ada yang buat baca, ada yang buat kirim, bisa dipake bebarengan atau salah satu aja 🙂
saya udah coba mas menggunakan ESP8266-01 dan hosting ke 000webhost tapi disni saya make framework CI, udah sesuai sama kodingan di bagian GET tapi tetap gak keriim mas, ke database hosting nya kira2 salah dimana ya mas ? apa harus ada fungsi baca database sama tambah database mas ?
kalo langsung di test tambahkan data ke database menggunakan browser sudah bisa?
dari browser dari phpmyadmin nya mas ? kalau dari situ bisa mas
bukan dari phpmyadminya, tapi dari url bar yang ada di chrom,
biasanya untuk update data atau post data atau baca data kaya gini kan formatnya
domain.com/file.php?data=21&data1=23
nah url diatas coba di load pada chrom atau mozila bisa atau nggak?,
untuk melaui url bisa mas di database data yang masukin malalui url masuk mas,
boleh di copy kan code nya kesini,, arduino nya
#define nama_wifi “Wifi”
#define pass_wifi “1gakada123”
#define ip_host “https://smart-locker.000webhostapp.com”
#include
#include
#include
#include
#define RST_PIN 8
#define SS_PIN 9
LiquidCrystal_I2C lcd(0x27, 16, 2);
MFRC522 rfid(SS_PIN, RST_PIN);
//PIN INFRARED
#define isObstaclePin1 2
#define EMPTY true
#define FILLED false
//STATUS SENSOR IR TO DATABASE
int isObstacle1 = HIGH; //HIGH MEANS NO OBSTACLE (TIDAK ADA BARANG)
byte readCard[4];
String NEW_DATA_READ = “”;
String strID;
char setID[50];
int successRead;
boolean connected = false;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
Serial1.begin(115200);
pinMode(isObstaclePin1, INPUT);
SPI.begin();
rfid.PCD_Init();
Serial1.setTimeout(5000);
Serial.println(“CHECK ESP8266”);
delay (1000);
Serial1.println(“AT+RST”);
delay(1000);
if(Serial1.find(“WIFI GOT IP”))
{
Serial.println(“ESP8266 SIAP”);
}
else {
Serial.println(” Tidak Ada Response dari ESP8266 “);
while(1);
}
delay(1000);
for (int i=0; i”)){
Serial.print(“>”);
} else {
Serial1.println(“AT+CIPCLOSE”);
Serial.println(“Koneksi Timeout”);
delay(1000);
return;
}
Serial1.print(cmd2);
delay(2000);
while(Serial1.available())
{
char c =Serial1.read();
Serial.write(c);
if (c==’\r’) Serial.print(‘\n’);
}
Serial.println(“—–end”);
delay(10000);
}
void connect_to_wifi()
{
Serial1.println(“AT+CWMODE=1”);
String cmd = “AT+CWJAP=\””;
cmd+=nama_wifi;
cmd+=”\”,\””;
cmd+=pass_wifi;
cmd+=”\””;
Serial1.println(cmd);
Serial.println(cmd);
if (Serial1.find(“OK”)){
Serial.println(“Berhasil Terkoneksi ke internet”);
connected=true;
} else {
Serial.println(“Gagal Terkoneksi”);
connected=false;
}
}
void sendcommand()
{
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;
}
}
int getID()
{
if ( !rfid.PICC_IsNewCardPresent())
{
return 0;
}
if ( !rfid.PICC_ReadCardSerial())
{
return 0;
}
for ( int i = 0; i < 4 ; i++)
{
readCard[i] = rfid.uid.uidByte[i] ;
Serial.print(readCard[i], HEX);
NEW_DATA_READ += String(readCard[i], HEX);
}
NEW_DATA_READ.trim();
Serial.println("");
rfid.PICC_HaltA();
return 1;
}
void tap()
{
Serial.println("TAP RFID ANDA");
do{
delay(2000);
successRead = getID();
}while(!successRead);
sprintf(setID, "%02X:%02X:%02X:%02X", readCard[0], readCard[1], readCard[2], readCard[3]);
senddataid(setID);
}
//di sini saya ambil mencoba mengirimkan rfid mas, tetapi untuk kasus yang sebenar nya ada 2 RFID sama sensor IR mas
itu include yang kosong in mas
#include
#include
#include
#include
#include SPI.h
#include MFRC522.h
#include Wire.h
#include LiquidCrystal_I2C.h
maaf mas dia kok hilang ya
maaf gan, saya tidak menemukan void loop() dan fungsi untuk kirim ke databasenya.
#define nama_wifi “Wifi”
#define pass_wifi “1gakada123”
#define ip_host “https://smart-locker.000webhostapp.com”
#include
#include
#include
#include
#define RST_PIN 8
#define SS_PIN 9
LiquidCrystal_I2C lcd(0x27, 16, 2);
MFRC522 rfid(SS_PIN, RST_PIN);
//PIN INFRARED
#define isObstaclePin1 2
#define EMPTY true
#define FILLED false
//STATUS SENSOR IR TO DATABASE
int isObstacle1 = HIGH; //HIGH MEANS NO OBSTACLE (TIDAK ADA BARANG)
byte readCard[4];
String NEW_DATA_READ = “”;
String strID;
char setID[50];
int successRead;
boolean connected = false;
void setup() {
Serial.begin(9600);
Serial1.begin(9600);
Serial1.begin(115200);
pinMode(isObstaclePin1, INPUT);
SPI.begin();
rfid.PCD_Init();
Serial1.setTimeout(5000);
Serial.println(“CHECK ESP8266”);
delay (1000);
Serial1.println(“AT+RST”);
delay(1000);
if(Serial1.find(“WIFI GOT IP”))
{
Serial.println(“ESP8266 SIAP”);
}
else {
Serial.println(” Tidak Ada Response dari ESP8266 “);
while(1);
}
delay(1000);
for (int i=0; i”)){
Serial.print(“>”);
} else {
Serial1.println(“AT+CIPCLOSE”);
Serial.println(“Koneksi Timeout”);
delay(1000);
return;
}
Serial1.print(cmd2);
delay(2000);
while(Serial1.available())
{
char c =Serial1.read();
Serial.write(c);
if (c==’\r’) Serial.print(‘\n’);
}
Serial.println(“—–end”);
delay(10000);
}
void connect_to_wifi()
{
Serial1.println(“AT+CWMODE=1”);
String cmd = “AT+CWJAP=\””;
cmd+=nama_wifi;
cmd+=”\”,\””;
cmd+=pass_wifi;
cmd+=”\””;
Serial1.println(cmd);
Serial.println(cmd);
if (Serial1.find(“OK”)){
Serial.println(“Berhasil Terkoneksi ke internet”);
connected=true;
} else {
Serial.println(“Gagal Terkoneksi”);
connected=false;
}
}
void sendcommand()
{
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;
}
}
int getID()
{
if ( !rfid.PICC_IsNewCardPresent())
{
return 0;
}
if ( !rfid.PICC_ReadCardSerial())
{
return 0;
}
for ( int i = 0; i < 4 ; i++)
{
readCard[i] = rfid.uid.uidByte[i] ;
Serial.print(readCard[i], HEX);
NEW_DATA_READ += String(readCard[i], HEX);
}
NEW_DATA_READ.trim();
Serial.println("");
rfid.PICC_HaltA();
return 1;
}
void tap()
{
Serial.println("TAP RFID ANDA");
do{
delay(2000);
successRead = getID();
}while(!successRead);
sprintf(setID, "%02X:%02X:%02X:%02X", readCard[0], readCard[1], readCard[2], readCard[3]);
senddataid(setID);
}
// mengirimkan ke database fungsi void senddataid(String x)
sekali lagi gan,, mohon maaf, tidak menemukan void senddataid(String x) di program nya,,
maaf mas dari fitur coment di web mas jadi hilang mas saya sudah buat di paste bin
ini mas url nya https://pastebin.com/902tqgrN
coba di hapus bagian
cmd2 +=”HTTP/1.1\r\n”;
tetap mas tidak terkirim ke datbase nya mas…
kalo database local bisa ga masukin datanya?
nanti saya buat artikel baru dengan esp-01 kirim database hosting
melauli url mas ? kalau ke local udah bisa mas ke database nya.
Baik mas di tunggu mas tutorial nya .
makasih mas.
kalau ke local udah bisa mas ke database nya.
Baik mas di tunggu mas tutorial nya .
makasih mas.
mas mau tanya posisi login yang “halaman login” kenapa tidak bisa login ya ? menggunakan username dan password yg mana ya mas?
wah,, lupa juga saya :v
mas mau tanya, cara download filenya bagaimana? saya coba tidak bisa terus
di cobo terus,, sampe bisa lewatin iklan,, cari tau di youtube atau google gimana download melewati safelinku
pas complie error terus seperti ini :
sketch_aug04b:36:5: error: stray ‘\342’ in program
if (millis() – timeout > 5000) {
^
sketch_aug04b:36:5: error: stray ‘\200’ in program
sketch_aug04b:36:5: error: stray ‘\223’ in program
C:\Users\Gantang\AppData\Local\Temp\arduino_modified_sketch_945316\sketch_aug04b.ino: In function ‘void loop()’:
sketch_aug04b:36:22: error: expected ‘)’ before ‘timeout’
if (millis() – timeout > 5000) {
^
Using library ESP8266WiFi at version 1.0 in folder: C:\Users\Gantang\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.1\libraries\ESP8266WiFi
Using library ESP8266HTTPClient at version 1.2 in folder: C:\Users\Gantang\Documents\ArduinoData\packages\esp8266\hardware\esp8266\2.5.1\libraries\ESP8266HTTPClient
exit status 1
stray ‘\342’ in program
ada beberapa karakter yang kerubah sama webnya,, jangan di copas, tulis ulang
Mas kalo library nya ijo gak oren gmn ya?
saya coba, gagal konek.
itu masalahnya dimana yah?
maaf mas kayaknya linknya sudah tidak bisa di akses,, boleh diperbaiki
berbayar
Bang mana link download
Sekarang masih bisa konek ke 000webhost? Saya coba waktu di client.connect() gagal terus, kenapa ya?