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.

Esp8266-01

Arduino UNO

VCC

VCC 3.3

GND GND
RX TX (D9)
TX RX (D8)
Ch_PD VCC 3.3

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


Tabel rangkaian Esp8266-12 ke Arduino Uno.

Esp8266-12 Arduino UNO
VCC VCC 3.3
GND GND
RX TX(D9)
TX RX(D8)
CH_PD VCC 3.3
GPIO15 GND


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 <AltSoftSerial.h>
#include <stdlib.h>

String apiKey = "835210516a36e5e3b45916ede3dxxxxx";
AltSoftSerial ser;
#define SSID "Wifi" //SSID
#define PASS "Pass" //Password
void setup()
{                   
  ser.begin(9600);                // RX -> D8 ; TX -> 9 (Tetap) arduino uno
  delay(3000);
  if(ser.find("OK")){
    Serial.println("GET HERE");
   }  
  ser.println("AT+RST");
  delay(2000);
  ser.println("AT+CWMODE=1");
  delay(2000);
  String cmd="AT+CWJAP=\"";
  cmd+=SSID;
  cmd+="\",\"";
  cmd+=PASS;
  cmd+="\"";
  ser.println(cmd);
  delay(5000);
  cmd="";
}

void loop()
{               
  int val = 0;
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "geeknesia.com";
  cmd += "\",80";
  ser.println(cmd);
  delay(2000);
  cmd="";
  if(ser.find("Error"))
  {
    return;
  }
  String getStr = "GET /api/data?api_key=835210516a36e5e3b45916ede3dxxxxx&attributes={\"humidity\":\"65\"}";    
  getStr += "\r\n\r\n";  
  cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  ser.println(cmd);
  delay(2000);
  if(ser.find(">"))
  {
    ser.print(getStr);
  }
  else
  {
    ser.println("AT+CIPCLOSE");
  }
  cmd="";
  delay(1000);  
} 

       

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.