IOT Basic Tutorial

Last updated: February 08 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 !

Part 4 Koneksi Arduino ke Geeknesia Menggunakan Esp8266 Sebagai Penghubung ke Internet.

Tutorial ini menjelaskan tentang cara mengirim data dari arduino ke cloud Geeknesia menggunakan modul wifi Esp8266.

Alat dan bahan yang perlu disiapkan:

  1. Arduino.
  2. Esp8266.
  3. Kabel Jumper.
  4. Kabel data (FTDI) untuk meng-upload program.

Sebelum melanjutkan kita harus tahu pinout dari modul Esp8266-01, lihat gambar di bawah:

Tahap 1

Pastikan firmware ESP8266 adalah versi bawaan ESP(belum pernah di flash), jika sudah terlanjur di flash anda bisa mengembalikan ke firmware versi awal => Firmware  melalui Esp_Flasher seperti pada tutorial Part 2 ESP Basic Information.

 

Rangkailah modul Esp8266 ke Arduino yang telah dipersiapkan seperti gambar di bawah ini.

Jika menggunakan Esp8266-01 gunakan rangkaian ini:

 

Tabel rangkaian Esp8266-01 ke Arduino Uno.((Apabila VCC 3.3v tidak bisa, VCC dapat menggunakan 5v))

Esp8266-01

Arduino UNO

VCC

VCC 3.3

GNDGND
RXTX (D9)
TXRX (D8)
Ch_PDVCC 3.3


Dan jika menggunakan Esp8266-12 gunakan rangkaian di bawah ini:

 

Tabel rangkaian Esp8266-12 ke Arduino Uno.

Esp8266-12Arduino UNO
VCCVCC 3.3
GNDGND
RXTX(D9)
TXRX(D8)
CH_PDVCC 3.3
GPIO15GND

 

Tahap 2

Buka http://geeknesia.com.

  1. Sign In / Register.
  2. Create Project,
  3. Create Gateway.Create Gateway..
  4. Create Device.

Jika sudah mendapatkan Device id,Username,Password,API Key dan Published Topic, lanjut ke tahap berikutnya.

 

Tahap 3

Buatlah program untuk simulasi pengiriman data dari arduino ke Geeknesia.

Ini adalah contoh source code menggunakan AT Command;

#include <SoftwareSerial.h>
#define DEBUG true
SoftwareSerial wifi(2,3); // RX, TX
char *apiKey ="xxxxxxxxxxxxxxxxxxxx";// masukan sesuai apiKey yang anda dapat dari geeknesia.com 


void setup() {
   Serial.begin(9600);// deklarasi boudrate komunikasi serial antara arduino dengan komputer
   wifi.begin(9600); // deklarasi boutrate komunikasi serial antara arduino dengan ESp
     // Reset modul
   sendCommand("AT+RST\r\n",2000,DEBUG);
   // Konfigurasikan sebagai Akses poin
   sendCommand("AT+CWMODE=3\r\n",1000,DEBUG);
   // Sesuaikan dengan SSID dan Password
   sendCommand("AT+CWJAP=\"SSID\",\"password\"\r\n",10000,DEBUG); 
   // Mendapatkan IP adress
   sendCommand("AT+CIFSR\r\n",1000,DEBUG);
  

    }

void loop() {
  connectingServer() ;
  // masukan program anda di sini 
  unsigned int ldr; // deklarasi tipe data ldr
 ldr =  analogRead(A0); // contoh dengan menggunakan sensor LDR  untuk mendapatkan nilai yang akan di kirimkan ke server 

Senddata ("ex",ldr);// fungsi untuk mengirimkan data yang ingin anda kirim , sesuaikan "ex" dengan attribute yang anda buat di device geeknesia.com
}
 void connectingServer() // fungsi untuk koneksi esp ke geeknesia menggunakan port HTTp
 {
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "geeknesia.com";
  cmd += "\",80";
  wifi.println(cmd);
  delay(2000);
  cmd="";
  if(wifi.find("Error"))
  {
    return;
  }
 }
void Senddata(String Variable,unsigned int data)  // fungsi untuk send data 
  {
    String cmd;
    //  String getStr = "GET /api/data?api_key=xxxxxxxxxxxxxxxxxxxxxxxx&attributes={\"tes\":\"65\"}";
  String getStr = "GET /api/data?api_key=";
  getStr += apiKey;
  getStr += "&attributes={\"";
  getStr += Variable;
  getStr += "\":\"";
  getStr +=data;
  getStr +="\"}";    
  getStr += "\r\n\r\n";  
  cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  wifi.println(cmd);
  Serial.println(getStr);
  Serial.println(cmd);
  delay(100);
  if(wifi.find(">"))
  {
    wifi.print(getStr);
    Serial.print(getStr);
  }
  else
   {
    wifi.println("AT+CIPCLOSE");
  }
  cmd="";
  delay(100); 
  }


String sendCommand(String command, const int timeout, boolean debug) 
{
    String response = "";
    wifi.print(command);
    long int time = millis();
    
    while( (time+timeout) > millis())
    {
      while(wifi.available())
      {
        char c = wifi.read();
        response+=c;
      }  
    }
    
    if(debug) {
      Serial.print(response);
    }
    return response;
}

Tahap 4

Lihat project pada Geeknesia yang telah anda buat.

 

Ini adalah kondisi ketika device terhubung dengan geeknesia.com.

Note:

  1. Pada tutorial ini modul Esp8266 tidak perlu di flash karena merupakan default function, sebagai wifi serial biasa. 
  2. Jika Modul Esp8266-01 tidak terkoneksi/berfungsi dengan baik , ambilah supply tegangan 3.3vdc dari luar rangkaian (voltage regulator terpisah), karena modul Esp8266-01 kurang stabil dalam masalah tegangan, untuk pilihan lain user bisa menggunakan modul Esp8266-12.
  3. Sesuaikan baudrate antara Esp8266 dengan Arduino.