Internet Of Things atau yang dikenal dengan IoT semakin berkembang luas saat ini. Teknologi IoT adalah konsep perangkat yang mampu mentransfer data tanpa perlu terhubung dengan manusia, melainkan internet sebagai medianya. Sederhananya manusia tidak perlu mengontrol benda/perangkat IoT tersebut secara langsung. Melainkan manusia bisa mengontrol benda tersebut dari jarak jauh.
Pada artikel ini akan dijelaskan cara pembuatan Speedboat berbasis IoT (Internet of Thing). Bagamana caranya? Terus scrool kebawah, cermati setiap pembahasan yang ditulis.
Blok Diagram Sistem
Blok diagram sistem merupakan pendefinisian terhadap sistem yang akan dirancang. Blok diagram ini dibuat agar dapat mempermudahkan penganalisaan sistem yang akan dibuat.
Diagram Blok ESP8266 |
Berdasarkan blok diagram sistem diatas, Komunikasi antara Android dan Speedboat (dalam hal ini dibuat untuk pengontrolan dua buah motor DC) menggunakan modul Wifi ESP8266. Untuk serial komunikasinya, lihat gambar berikut:
Sistem Komunikasi |
Media penghubung pada gambar di atas menggunakan teknologi nirkabel atau Wifi (Wireless Fidelity) atau Hotspot dengan memanfaatkan modul Wifi-ESP8266 sebagai media komunikasi antara Speedboat dan Controller System (Aplikasi Android).
Hadware
Dalam perancangan alat ini, sistem menggunakan modul wifi ESP8266 NODEMCU sebagai pusat pengendalian keseluruhan kegiatan alat, dimana sistem yang dibuat terdapat beberapa bagian alat yang harus disiapkan yaitu :
- 1x ESP8266 NODEMCU
- 1x Relay 5 volt DC 4 Chanel
- 1x Motor DC Type Brushless
- 1x Motor DC 5 volt DC
- 1x Baterai Lippo 9 Volt DC
- 3x Transistor 7805
- 5x Resistor 220 ohm
- 5x LED
- Breadboard/PCB bolong
Software yang digunakan dalam perancangan alat ini adalah sebagai berikut:
- Fritzing, digunakan untuk merancang skematik
- App Inventor, digunakan untuk merancang aplikasi
- Arduino IDE, digunakan untuk membuat dan upload program
Fisik mekanis boat yang akan dirancang dapat dilihat pada gambar berikut:
Flowchart
flowchart dari perancangan yang akan dibuat ditunjukkan pada dibawah ini:
Flowchart Pemrograman Arduino Spy Boat |
Cara kerja flowchart diatas yaitu diawali dengan mulai (start), kemudian inisialisasi alat dan program untuk memastikan apakah program dan peralatan yang digunakan telah terhubung dengan benar. Inisialisasi yaitu nilai awal yang diberikan untuk kondisi input maupun outputnya, seperti pemberian nilai awalnya. Jika sudah terlaksana, maka alat akan memeriksa apakah modul Wifi ESP8266 sudah aktif atau belum, jika sudah maka akn mengirimkan data ke Arduino. Proses perbandingan inputan jika proses inputan sudah dibaca oleh motor driver maka akan bergerak sesuai inputan. Flowchart diatas digunakan untuk pemrograman kontrol kapal dalam kondisi aktif dengan perintahn Android.
Selanjutnya merancang pemrograman android seperti pada gambar dibawah ini:
Flowchart Pemrograman Android |
Intruksi flow diatas digunakan untuk intruksi perintah mengaktifkan alat dan perlengkapan rangkaian Spedboat berbasis IoT. Kemudian memeriksa kondisi catu daya sudah terpasang atau belum. Bila sudah, maka rangkaian alat aktif, dan bila belum maka alat belum aktif. Inisialisasi yaitu nilai awal yang diberikan untuk kondisi input maupun outputnya, seperti pemberian nilai awalnya.
Selanjutnya merancang Flowchart untuk pemrograman secara menyeluruh:
Flowchart Keseluruhan |
Start untuk mengaktifkan alat kemudian sistem akan mempersiapkan perlengkapan untuk rangkaian Spy Boat. Kemudian sistem akan membaca input perintah dari android sesuai dengan kondisi kapal. Program diatas digunakan untuk menetukan kemana arah kapal akan bergerak. Sebelum mendapatkan output sistem akan diproses terlebih dahulu oleh motor driver. Kemudian motor driver akan memerintahkan motor DC perputaran yang berguna sebagai output.
Schematic
Pada saat awal dihidupkan, keseluruhan port pada ESP8266 ini berlogika 1. Untuk itu, dibutuhkan inisialisasi port pada awal pemrograman sesuai dengan yang diinginkan. Perhatikan gambar berikut:
Skematik Rangkaian |
Rangkaian diatas adalah rangkaian ESP8266 untuk mengontrol hidup/mati LED. Sementara input power yang digunakan adalah Baterai 9 volt DC yang dikonversi menjadi 5 volt melalui 3 transistor yang dirangkai seri. Untuk lebih jelas, lihat rangkain berikut:
Rangkaian Layout |
Note: Baterai yang digunakan adalah 9 volt
Download : Rangkaian-Skematik.fzz
Tata letak komponen rangkaian komponen elektronika dipasang di protoboard agar Modul Wifi ESP8266 dapat berkomunikasi dengan Speedboat.
Perancangan Aplikasi
Buka web APP INVENTOR. Saat pertama kali mengakses MIT App Inventor, pengguna akan diminta untuk login dengan akun Google. Masukkan username dan password akun Google, kemudian akan diarahkan ke halaman permission request yang berisi permintaan izin untuk mengakses beberapa informasi akun Google. Dengan klik Allow, terms of service yang muncul setelahnya dan aplikasi MIT App Inventor akan terbuka.
Membuat Project Baru |
Kini halaman utama aplikasi MIT App Inventor telah terbuka. Dari sini bisa mulai membuat aplikasi baru dengan meng-klik tombol Start New Project atau melalui menu Projects-Start New Project. Selanjutnya beri nama project.
Memberi Nama Project |
Sebelum mulai membuat aplikasi Android, pastikan untuk melakukan beberapa konfigurasi dasar, khususnya pada bagian layar smartphone, lakukan konfigurasi layar layar smartphone agar tidak dapat atau dapat discroll. User juga bisa mengubah beberapa konfigurasi lain pada layar utama smartphone melalui jendela properties yang ada pada sisi sebelah kanan
Konfigurasi Awal App Inventor |
Untuk menambahkan komponen bisa mengakses jendela Palette pada sub menu Drawing and Animation. Drag and drop fungsi komponen ke layar smartphone sehingga pada jendela Components muncul satu lagi komponen baru.
Jendela Components App Inventor |
Isi dari setiap property dari aplikasi diatas adalah sebagai berikut:
kemudian menyimpan file berekstensi .apk ke dalam komputer. Setelah itu, kirimkan file .apk ke android dan kemudian menginstalnya.
Download :
Spy_boat_controller.aia
Spy_boat_controller.apk
Implementasi Program
Terdapat 5 (lima) menu utama yang terdapat pada bagian atas IDE yaitu file, edit, sketch, tools dan help. Untuk mengatur board yang digunakan, Klik pada menu “Tools”, pada bagian “Board”, pilih sesuai dengan board arduino yang digunakan
Board pada arduino IDE yang dipilih adalah Adafruit Feather HUZZAH ESP8266. Jika tidak ada, lakukan update board melalui preferences.
Kemudian Upload Program dibawah ini:
Download: Kontrol_Speedboat.ino
#include <ESP8266WiFi.h>
const char* ssid = "DELTA_Connection1";
const char* password = "12345678";
int ledPin1 = 15; // GPIO15 // D8
int ledPin2 = 13; // GPIO13 // D7
int ledPin3 = 12; // GPIO12 // D6
int ledPin4 = 14; // GPIO14 // D5
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
pinMode(ledPin1, OUTPUT); digitalWrite(ledPin1, LOW);
pinMode(ledPin2, OUTPUT); digitalWrite(ledPin2, LOW);
pinMode(ledPin3, OUTPUT); digitalWrite(ledPin3, LOW);
pinMode(ledPin4, OUTPUT); digitalWrite(ledPin4, LOW);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();
// Match the request
//LED1
int value1 = LOW;
if (request.indexOf("/LED1=ON") != -1) {
digitalWrite(ledPin1, HIGH);
value1 = HIGH;
}
if (request.indexOf("/LED1=OFF") != -1) {
digitalWrite(ledPin1, LOW);
value1 = LOW;
}
//LED 2
int value2 = LOW;
if (request.indexOf("/LED2=ON") != -1) {
digitalWrite(ledPin2, HIGH);
value2 = HIGH;
}
if (request.indexOf("/LED2=ON") != -1) {
digitalWrite(ledPin3, LOW);
value2 = LOW;
}
//LED 3
int value3 = LOW;
if (request.indexOf("/LED3=ON") != -1) {
digitalWrite(ledPin3, HIGH);
value3 = HIGH;
}
if (request.indexOf("/LED3=ON") != -1) {
digitalWrite(ledPin2, LOW);
value3 = LOW;
}
//LED 4
int value4 = LOW;
if (request.indexOf("/LED4=ON") != -1) {
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
value4 = LOW;
}
// Set ledPin according to the request
//digitalWrite(ledPin, value);
// Return the response
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("</head>");
client.println("<center>SELAMAT DATANG DI SPEEDBOAT KONTROLLER");
client.println("<center><h3>HESTECH INDONSIA</h3><center>");
client.println("<center>Dibuat oleh: www.hestech.id");
client.println("<center>2017");
client.println("<center><fieldset>");
client.println("<center><font color = redq>");
client.print("<center>SPEEDBOAT BASIC IOT");
client.println("</font>");
client.println("</fieldset>");
client.println("<br><br>");
//LED 1
client.print("<center>KAPAL IS NOW: ");
if(value1 == HIGH) {
client.print("MMJU");
} else {
client.print("BERHENTI");
}
client.println("<center><a href=\"/LED1=ON\"\"><button>MAJU </button></a></center>");
client.println("<center><a href=\"/LED1=OFF\"\"><button>BERHENTI </button></a><br /></center>");
client.println("<center></html></center>");
client.println("<center><br><br></center>");
//LED 2
client.print("<center>KONDISI KAPAL SEKARANG BELOK: ");
if(value2 == HIGH) {
client.print("Kanan");
} else {
client.print("Off");
}
client.println("<center><a href=\"/LED2=ON\"\"><button>BELOK KANAN </button></a></center>");
client.println("<center></html></center>");
client.println("<center><br><br></center>");
//LED 3
client.print("<center>KONDISI KAPAL SEKARANG BELOK: ");
if(value3 == HIGH) {
client.print("Kiri");
} else {
client.print("Off");
}
client.println("<center><a href=\"/LED3=ON\"\"><button>BELOK KIRI </button></a></center>");
client.println("<center></html></center>");
client.println("<center><br><br></center>");
//LED 4
client.print("<center>KONDISI KAPAL SEKARANG: ");
if(value4 == HIGH) {
client.print("Lurus");
}
client.println("<center><a href=\"/LED4=ON\"\"><button>Turn On </button></a></center>");
client.println("<center></html></center>");
client.println("<center><br><br></center>");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
}
HASIL
Tampak depan |
Untuk menambah accesoris, bisa menambahkan kamera syma yang dapat dikontrol dengan android. Selain itu juga bisa menambahkan motor servo sebagai pengontrol kamera untuk dapat melihat area sekitar kapal.
Aplikasi SYMA FPV |
Tampilan utama pada aplikasi SYMA FPV. Aplikasi bisa didownload di app strore.
Tampak Belakang |
Power Supply |
Motor dc Brushless |
Motor DC 5 volt |
Selain motor dc brushless untuk memutar baling-baling, motor DC 5 volt juga difungsikan sebagai penyearah Rudder yang berada dibagian belakang lambung kapal.
Baling-baling dan Rudder |
Relay aktif akan ditandai dengan indikator LED pada modul relay, seperti terlihat pada gambar berikut:
Relay |
Speedboat menggunakan baterai jenis Li-Pomery Baterai dengan kapasitas penyimpanan sebesar 1100 mAH 7,4 VDC. Baterai ini sekaligus digunakan untuk men-supply hampir seluruh perangkat aktif yang dipakai.
Control Speed Motor DC |
Bisa juga menambah komponen pengatur kecepatan motor DC dengan menggunakan Control Speed Motor seperti gambar diatas.
Switch pemutus power input |
Semua mekanis dari prototipe SpeedBoat dirancang sedemikian rupa agar pada saat kapal dijalankan di atas permukaan air tidak terjadi permasalahan seperti kebocoran serius yang dapat menyebabkan lambung kapal terisi air sehingga kapal akan tenggelam.
Pengoperasian Aplikasi
1. Buka aplikasi SPY BOAT Controller, kemudian tuliskan alamat IP sesuai dengan alamat ip ESP8266 pada bagian Set IP Address. Berikut adalah program untuk melihat IP Address modul ESP8266.
#include
const char* ssid = "DELTA_Connection1"; //Nama jaringan wifi/hotspot
const char* password = "12345678"; //Password wifi/hotspot
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;}
// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}
// Read the first line of the request
String request
client.readStringUntil('\r');
Serial.println(request);
client.flush();
}
2. Setelah aplikasi dibuka, Maka akan tampil seperti gambar berikut
Alamat ip pada Aplikasi |
Selamat mencoba.
Jika ada yang tidak paham, silahkan bertanya dikolom komentar.
tag:
- program untuk melihat IP Address modul ESP8266
- membuat aplikasi menggunakan app inventor
comment 0 komentar
more_vert