Anda di halaman 1dari 7

/*

---------------------------------------------------------------------------WIFI COONTROLLER + SETTING


------------------------------------------------------------------------------------------Created By
--------------Irfan Indra Kurnniawan
-------------------www.FansElectronics.com
------------------------------ V 1.0 -----------------------------------------------------------------------------------------------*/
/* Menyisipkan file Library LCD, Serial, EEPROM */
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include <EEPROM.h>
#define DEBUG true // Mendifinisikan DEBUG = true
/* Mendifinisikan Pin yang digunakan */
#define bSET A3
#define bUP A4
#define bDOWN A5
#define RX 2
#define TX 3
#define Relay1 10
#define Relay2 11
#define Relay3 12
#define Relay4 13
LiquidCrystal lcd(4, 5, 6, 7, 8, 9);
SoftwareSerial wifi(RX,TX);
/* Mendifinisikan Variable */
String ssid;
String password;
String IP;
String PORT;
int digit;
int x;
int debounce = 150;
kan (miliseconds)
char lcdBuff[16];
char myString[16];
char myChar[] =
{ 'a', 'b', 'c', 'd', 'e', 'f',
,
'q', 'r', 's', 't', 'u', 'v',
, 'G',
'H', 'I', 'J', 'K', 'L', 'M',
, 'X',
'Y', 'Z', '0', '1', '2', '3',
, ')',
'<', '>', ',', '.', ' '};
/* LCD Karakter Data */
byte MenuIcon[8] = {
B11011,
B11111,

// RX Pin 2, TX Pin 3
//
//
//
//
//
//
//

Nama SSID / Access Point


Password SSID / Access Point
IP yang digunakan
PORT yang digunakan
Posisi digit LCD
Karakter Count
Debounce / Jeda waktu tombol dite

// LCD karakter
// Maksimal karakter yang digunakan
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p'
'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F'
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W'
'4', '5', '6', '7', '8', '9', '-', '+', ':', '('
// Data Karakter
// Karakter ICON Pada Menu

B01110,
B11111,
B01110,
B11111,
B01110,
B11111,
};
byte Block[8] = {
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
B11111,
};
byte Space[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
};
/* Fungsi SETUP ( Dibaca sekali ) */
void setup() {
/* Konfigurasi fungsi */
Serial.begin(115200);
115200
wifi.begin(115200);
15200
lcd.begin(16,2);
D 16x2

// Karakter BLOK Pada Menu

// Karakter Space Pada MENU

// Komunikasi serial dengan Baudrate


// komunikasi Wifi dengan Baudrate 1
// Konfigurasi LCD yang digunakan LC

/* Setting MODE Pin */


pinMode(bSET, INPUT_PULLUP);
pinMode(bUP, INPUT_PULLUP);
pinMode(bDOWN, INPUT_PULLUP);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(Relay3, OUTPUT);
pinMode(Relay4, OUTPUT);

//
//
//
//
//
//
//

/* LCD Karakter */
lcd.createChar(0, Space);
lcd.createChar(1, MenuIcon);
lcd.createChar(2, Block);
}

// Byte LCD Karakter SPACE


// Byte LCD Karakter MENUICON
// Byte LCD Karakter BLOK

/* Fungsi Input Text*/


void InputChar(){
if(digitalRead(bUP)== LOW){
arakter
delay(debounce);
myChar[x++];
if(x > 71){

Mode
Mode
Mode
Mode
Mode
Mode
Mode

Pin SET PULL UP


Pin UP PULL UP
Pin DOWN PULL UP
Relay1 OUTPUT
Relay2 OUTPUT
Relay3 OUTPUT
Relay4 OUTPUT

// Fungsi Tombol UP untuk mengganti K

x=0;
}
}
if(digitalRead(bDOWN)== LOW){
i Karakter
delay(debounce);
myChar[x--];
if(x < 0){
x=71;
}
}

// Fungsi Tombol DOWN untuk menggant

if(digitalRead(bSET)== LOW){
enggeser Cursor Karakter
delay(300);
char dataString = myChar[x];
myString[digit] = dataString;
lcd.setCursor(digit,1);
lcd.print(myString[digit]);
digit++;
}

// Fungsi Tombol SET untuk OK atau m

lcd.setCursor(0,0);
sprintf(lcdBuff, "[%c] <INPUT TEXT", myChar[x]); // Tampilan LCD pada menu I
NPUT TEXT
lcd.print(lcdBuff);
}
/* Fungsi Membaca EEPROM */
void ReadEeprom(){
EEPROM.read(1);
EEPROM.read(2);
EEPROM.read(3);
EEPROM.read(4);
}
/* Fungsi Menu Setting */
void MenuSetting(){
/*

Menu Setting SSID */


setSSID:
lcd.clear();
lcd.setCursor(5,0);
lcd.write(byte(1));
lcd.write(byte(3));
lcd.write(byte(0));
lcd.write(byte(0));
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(0,1);
lcd.print("[ Set SSID
delay(100);

]");

if(digitalRead(bSET) == 0){
delay(debounce);
lcd.clear();
inputSSID:

InputChar();
if(digitalRead(bUP) == 0 and digitalRead(bDOWN) == 0){
delay(debounce);
ssid = String(myString);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(myString);
lcd.setCursor(0,1);
lcd.print(" SSID Changed ");
delay(3000);
digit=0;
goto setSSID;
}
else{
goto inputPASSWORD;
}
}
if(digitalRead(bUP) == 0){
delay(debounce);
goto setPORT;
}
if(digitalRead(bDOWN) == 0){
delay(debounce);
goto setPASSWORD;
}
else{
goto setSSID;
}
/* Menu Setting PASSWORD */
setPASSWORD:
lcd.clear();
lcd.setCursor(5,0);
lcd.write(byte(1));
lcd.write(byte(0));
lcd.write(byte(3));
lcd.write(byte(0));
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(0,1);
lcd.print("[ Set Password ]");
delay(100);
if(digitalRead(bSET) == 0){
delay(debounce);
lcd.clear();
inputPASSWORD:
InputChar();
if(digitalRead(bUP) == 0 and digitalRead(bDOWN) == 0){
delay(debounce);
password = String(myString);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(myString);
lcd.setCursor(0,1);
lcd.print("Password Changed");
delay(3000);
digit=0;
goto setPASSWORD;

}
else{
goto inputPASSWORD;
}
}
if(digitalRead(bUP) == 0){
delay(debounce);
goto setSSID;
}
if(digitalRead(bDOWN) == 0){
delay(debounce);
goto setIP;
}
else{
goto setPASSWORD;
}
/*

Menu Setting IP */
setIP:
lcd.clear();

lcd.setCursor(5,0);
CD (X , Y)
lcd.write(byte(1));
lcd.write(byte(0));
lcd.write(byte(0));
lcd.write(byte(3));
lcd.write(byte(0));
lcd.write(byte(1));
lcd.setCursor(0,1);
lcd.print("[
Set IP
delay(100);

// Menghapus LCD
// Mengatur Posisi Cursor L

]");

if(digitalRead(bSET) == 0){
delay(debounce);
lcd.clear();
inputIP:
InputChar();
if(digitalRead(bUP) == 0 and digitalRead(bDOWN) == 0){
delay(debounce);
IP = String(myString);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(myString);
lcd.setCursor(0,1);
lcd.print(" IP Changed ");
delay(3000);
digit=0;
goto setIP;
}
else{
goto inputIP;
}
}
if(digitalRead(bUP) == 0){
delay(debounce);
goto setPASSWORD;
}

if(digitalRead(bDOWN) == 0){
delay(debounce);
goto setPORT;
}
else{
goto setIP;
}
/*

Menu Setting PORT */


setPORT:
lcd.clear();

lcd.setCursor(5,0);
CD (X , Y)
lcd.write(byte(1));
lcd.write(byte(0));
lcd.write(byte(0));
lcd.write(byte(0));
lcd.write(byte(3));
lcd.write(byte(1));
lcd.setCursor(0,1);
lcd.print("[ Set PORT
delay(100);

// Menghapus LCD
// Mengatur Posisi Cursor L

]");

if(digitalRead(bSET) == 0){
delay(debounce);
lcd.clear();
inputPORT:
InputChar();
if(digitalRead(bUP) == 0 and digitalRead(bDOWN) == 0){
delay(debounce);
PORT = String(myString);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(myString);
lcd.setCursor(0,1);
lcd.print(" PORT Changed ");
delay(3000);
digit=0;
goto setPORT;
}
else{
goto inputPORT;
}
}
if(digitalRead(bUP) == 0){
delay(debounce);
goto setIP;
}
if(digitalRead(bDOWN) == 0){
delay(debounce);
goto setSSID;
}
else{
goto setPORT;
}
}

/* Fungsi LOOP ( Dibaca berulang ) */


void loop() {
/* Tampilan Utama*/
lcd.setCursor(0,0);
lcd.print("FansWifiControll");
lcd.setCursor(0,1);
lcd.print("[ Settings ]");
if(digitalRead(bSET) == 0){
NG
delay(debounce);
MenuSetting();
}
if(wifi.available()){
if(wifi.find("+IPD")){
delay(1000);
int connectionID = wifi.read()-48;
wifi.find("data=");
}
}
}

// Fungsi Tombol MENU SETTI

Anda mungkin juga menyukai

  • Format Proposal Skripsi
    Format Proposal Skripsi
    Dokumen4 halaman
    Format Proposal Skripsi
    Irfan Indra Kurniawan
    Belum ada peringkat
  • Sun Tzu PDF
    Sun Tzu PDF
    Dokumen27 halaman
    Sun Tzu PDF
    Ayom Galih Pambudi
    Belum ada peringkat
  • Kri
    Kri
    Dokumen31 halaman
    Kri
    Irfan Indra Kurniawan
    Belum ada peringkat
  • Sublime Text 3 Full Version
    Sublime Text 3 Full Version
    Dokumen3 halaman
    Sublime Text 3 Full Version
    Irfan Indra Kurniawan
    Belum ada peringkat
  • Pem. Janjut
    Pem. Janjut
    Dokumen5 halaman
    Pem. Janjut
    Irfan Indra Kurniawan
    Belum ada peringkat
  • Lamaran
    Lamaran
    Dokumen1 halaman
    Lamaran
    Irfan Indra Kurniawan
    Belum ada peringkat
  • 02 Listrik Statis 2
    02 Listrik Statis 2
    Dokumen23 halaman
    02 Listrik Statis 2
    Hendra Ringo
    Belum ada peringkat
  • Cover 2
    Cover 2
    Dokumen54 halaman
    Cover 2
    Icad Gladys Kagansa
    Belum ada peringkat
  • Cover 2
    Cover 2
    Dokumen54 halaman
    Cover 2
    Icad Gladys Kagansa
    Belum ada peringkat
  • Cover 2
    Cover 2
    Dokumen54 halaman
    Cover 2
    Icad Gladys Kagansa
    Belum ada peringkat