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.
Ini adalah kondisi ketika device terhubung dengan geeknesia.com.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.