IOT Basic Tutorial

Last updated: February 06 th, 2017

Geeknesia Microcontroller & IOT Starter Kit

Geeknesia Kit

Sebuah Starter Kit Lengkap dari Geeknesia untuk mempelajari IOT dan Micro Controller dengan mudah melalui praktek secara langsung.
Starter Kit ini menyediakan development board ESP 8266 tipe WeMos D1 yang compatible dengan board arduino sehingga mudah dipahami, muda diperlajari, dan mudah dimengerti. Dalam kit ini tersedia komponen elektronik lengkap untuk berbagai keperluan tutorial dan project real.

Read More or Buy Now !

ESP8266 MQTT - Smart Door Bell Menggunakan Arduino IDE

Part 1. Alat dan Bahan yang diperlukan.

 

ESP8266-12

 

FTDI

 

Kabel

 

Perlengkapan Solder

 

Resistor 220Ω

 

LED

 

Push Button

 

Bread Board

 

Part 2. Registrasi Device di Geeknesia

Daftarkan device anda mengikuti cara pada tutorial berikut :

Part 3. Persiapan Hardware Programming

  • Lakukan download software pada link di bawah ini (ada 5 file)
  • Download Link
  1. Arduino-1.6.5-r2-windows.exe
  2. pubsubclient-master.zip
  3. ESP8266 Menggunakan Arduino IDE.pdf
  4. BUTTON_PUBLISH.ino
  5. Wiring.jpg
  • Letakkan kelima files ini di folder C:/GE, jika folder belum ada, lakukanlah create folder GE terlebih dahulu.
  • Lakukan Instalasi Software Arduino IDE Versi 1.6.5
  • Bukalah file Arduino-1.6.5-r2-windows.exe
  • Jika sudah terinstall buka program Arduino IDE
  • Lalu klik => File => Preference

 

Gambar 1 Klik Preference

 

  • Kemudian tambahkan link dibawah ini pada kolom Additional Board Manager URLs:
    http://arduino.esp8266.com/staging/package_esp8266com_index.json

step-11.png

Gambar 2 Input Package ESP8266

 

  • Lalu buka Tools => Board => Board Manager
    Kemudian pilihlah ESP8266 by ESP8266 Community, lalu klik install.

Gambar 3 Install ESP tool

 

  • Setelah selesai melakukan proses Install ESP tool dan sebelum meneruskan ke tahap programming, kita membutuhkan library pendukung, yakni pubsubclient-master.zip yang sudah kita download terlebih dahulu.
    Buka Sketch => Include Library => Add ZIP Library

Gambar 4 Add Library

 

  • Kemudian pilih library berbentuk format Zip yang sudah anda download di C:/GE

 

step-12.png

Gambar 5 Select File MQTT Library format Zip.

 

 

  • Wiring Hardware (ESP8266 to FTDI)
    Buatlah rangkaian seperti gambar dibawah ini untuk melakukan upload program. Settingan jumper di FTDI harus di 5V.

    Gambar 6 Wiring ESP8266 ke FTDI Mode Upload

 

Part 4. Hardware Programming

  • Source code di bawah adalah code yang dibuat untuk mematikan dan menyalakan lampu (LED) yang terhubung dengan Digital Output 02 menggunakan sebuah press button yang juga terhubung dengan Digital Input 12. Status lampu tersebut akan dikirimkan ke Cloud Platform Geeknesia : Geeknesia.com
  • Untuk melakukan upload Jangan lupa!! Lakukan Tools -> Board, lalu pilihlah NodeMCU 0.9(ESP-12 Module) untuk jenis modul ESP yang dipakai pada percobaan kali ini.

Gambar 7 Setting Konfigurasi Board

  • Upload source code di bawah ini ke ESP8266 yang telah diwiring. Atau bukalah file Button_Publish.ino yang telah didownload sebelumnya terletak di folde C:GE
// Inisialisasi dan Deklarasi 

#include 
#include   const char *ssid = "SSID"; //SSID Wifi const char *pass = "KEY"; //Pass Wifi int buttonState = 0; String flag;    // Device details (Ganti detail device di bawah dengan detail device yang anda punya) char *deviceId = "device-8d7dc14bf6cf010d1d06a98f6712xxxx";  char *deviceUsername = "cc9b84861eff1bed4a599a4e94a7xxxx"; char *devicePassword = "e72dc6860e6a6de16ceaac0fbc92xxxx"; String deviceCredential = String(deviceUsername) + ":" + String(devicePassword);    // IP address Geeknesia PubSubClient client(wclient, (String) "geeknesia.com", 1883); WiFiClient wclient;    // Pada code bagian ini adalah untuk men-setup code yang akan dieksekusi adapun set  // baud rate dan menetukan pin untuk dijadikan input ataupun output void setup () {     Serial.begin(115200);   pinMode(2, OUTPUT);      pinMode(12, INPUT_PULLUP); }    // Fungsi mengirim data terdapat pada bagian ini (Publish) void senddata(char* topic,String credential, char *var1, String nilai1 ){   String pubString = "{\"code\":\"";   pubString += credential;   pubString +="\",";   pubString +="\"attributes\":{\"";   pubString +=String(var1)+"\":\""+nilai1+"\"";   pubString +="}}";   char message_buff[pubString.length()+1];   pubString.toCharArray(message_buff, pubString.length()+1);   client.publish("iot/data",pubString);    }    // Pada bagian ini dibuat agar code terus berjalan(running/looping) void loop() {     // Jika Wifi disconnect maka akan ter-print (….) pada serial print Arduino IDE    if (WiFi.status() != WL_CONNECTED) {     Serial.print("Connecting to ");     Serial.print(ssid);     Serial.println("...");     WiFi.begin(ssid, pass); // Dan jika wifi disconnect maka code akan looping di bagian cek wifi ini,  // dan sebaliknya jika connect maka code akan melanjutkan     if (WiFi.waitForConnectResult() != WL_CONNECTED)     return;     Serial.println("WiFi connected");   }      if (WiFi.status() == WL_CONNECTED) {     if (!client.connected()) {       if (client.connect(deviceId, "iot/will",0,0,deviceId)) {       }     }     if (client.connected())       client.loop();   }    // Program Button   buttonState = digitalRead(12);   if (buttonState == 1) {     digitalWrite(2, LOW);     flag="OFF";   }   else {     // turn LED off:     digitalWrite(2,HIGH);     flag="ON";   }   senddata(deviceId,deviceCredential,"Lamp", flag);   delay(5000);   }
  • Isilah SSID dan Key sesuai dengan Wifi Network anda :

    const char *ssid =  "SSID";  //SSID Wifi 
    const char *pass =  "KEY";  //Pass Wifi

     
    Lalu isilah deviceId, deviceUsername, devicePassword sesuai dengan kredential device yang anda dapatkan ketika melakukan Add Device di Geeknesia :

    char *deviceId = "device-8d7dc14bf6cf010d1d06a98f6712xxxx";  
    
    char *deviceUsername = "cc9b84861eff1bed4a599a4e94a7xxxx";
    
    char *devicePassword = "e72dc6860e6a6de16ceaac0fbc92xxxx";

     

  • Setelah itu, lakukan UPLOAD Program ke module ESP ini. Apabila sukses, maka akan Done Upload.

  • Setelah prose Upload tersebut berhasil, cabutlah module FTDI dari module ESP. lalu rangkaikanlah sesuai diagram di bawah ini. Catatan Penting !! Setelah Upload program berhasil, lepaslah jumper hitam yang terletak di samping (di PCB tertulis PROG, yakni GPIO 0 ke Ground).

 

Gambar 8 Wiring ESP8266 ke Led dan Button


Tips : Jika pada saat pengetesan ESP-12 tidak menyala dengan normal (not connected) wiring power terlebih dahulu tanpa beban (led & button), jika ESP sudah ON sambungkan ke beban (led & button).

 

 

Part 5. Function Test

Setelah step di atas sudah dilakukan coba buka www.geeknesia.com kemudian Login dan buka project yang telah dibuat.

Gambar 8 Device Posisi "OFF".
 

Gambar 9 Device Posisi "ON"

 

Terlihat di gambar indikator "TUTORIAL" berwarna hijau menyatakan bahwa device telah connect ke Geeknesia dan status "Lamp : ON" dan "Lamp: OFF" menandakan bahwa status device di hardware ON atau OFF, untuk lebih meyakinkan cobalah klik button yang tersambung dengan ESP-12 jika status hardware dan Geeknesia sama maka percobaan berhasil.