Tutorial ini menjelaskan tentang cara mengirim data dari arduino ke cloud Geeknesia menggunakan modul wifi Esp8266.
Alat dan bahan yang perlu disiapkan:
- Arduino.
- Esp8266.
- Kabel Jumper.
- 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
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.

Note:
- Pada tutorial ini modul Esp8266 tidak perlu di flash karena merupakan default function, sebagai wifi serial biasa.
- 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.
- Sesuaikan baudrate antara Esp8266 dengan Arduino.