Arduino + ESP 8266 + Thingspeak

Sebelum memulai praktek dan percobaan, pastikan kamu sudah mendaftar thingspeak. Caranya dibawah ini ya guys!

TUTORIAL REGISTRASI THINGSPEAK

  1. Lakukan registrasi terlebih dahulu dengan membuka thingspeak.com.
  2. Kemudian click SIGN UP.
  3. Ikuti petunjuk pendaftaran, anda akan dituntun untuk membuat akun MATLAB baru.
  4. Jika terdeteksi personal email, klik kolom bagian bawah agar tetap bisa mendaftar.
  5. Buka email anda, lakukan verifikasi akun MATLAB.
  6. Kemudian isi nama ID sebagai alternatif login dan juga set password anda.
  7. Selesai.

LANGKAH SELANJUTNYA, LOGIN THINGSPEAK ANDA

  • Akan muncul tampilan awal seperti ini. Click New Channel.
  • Isikan data sesuai keinginan anda, contohnya seperti berikut.
  • Kemudian centang bagian Show Status, lalu Click Save Channel.
  • Channel anda siap digunakan.
  • Klik pada bagian API Keys, akan muncul kode khusus, API Key digunakan untuk membaca dan menulis data dari Channel anda.

ADA 3 MODE YANG BISA DIGUNAKAN PADA ESP8266

  • STA/Station (ESP8266 sebagai client yang konek ke jaringan AP)
  • AP/Access Point (ESP8266 Sebagai accesspoint atau seperti hotspot smartphone)
  • BOTH STA DAN AP

Mode yang kita gunakan adalah mode 1 STA, karena kita akan mengkoneksikannya dengan Wifi Hotspot. Proses yang harus dilakukan untuk melakukan pengecekan modul ESP8266 adalah dengan melakukan wiring ESP8266 ke Arduino. Berikut adalah tabel wiringnya,

PIN ARDUINO PIN ESP8266
3.3V VCC
GND GND
TX TX
RX RX
3.3V CH_PD
None GPIO 0
None GPIO 2

Setelah terkoneksi dengan benar, maka buka Arduino IDE>Tools>Serial Monitor. Set baudrate pada 115200, dan set menjadi BOTH NL+CR.

Langkah 1 : coba ketikkan AT, kemudian enter jika berhasil maka akan keluar tulisan AT OK ( jika tidak keluar jawaban OK, periksa kembali wiring anda, jika wiring sudah benar, berarti ESP anda rusak)

Langkah 2 : coba ketikkan AT+GMR untuk mengetahui firmware yang terpasang pada ESP8266 anda. (seharusnya muncul versi firmwarenya)

Langkah 3 : coba set ESP8266 menjadi mode STA dengan mengetik AT+CWMODE=1. (harusnya keluar jawaban OK)

Langkah 4 : coba koneksikan ESP8266 dengan wifi di sekitar anda dengan mengetik AT+CWJAP=”nama wifi”,”password wifi”. Jika ESP8266 normal maka akan ada jawaban WIFI CONNECTED, WIFI GOT IP, OK.

Langkah 5 : untuk mengetahui jaringan yang tersedia di sekitar anda,ketik AT+CWLAP, maka akan muncul jaringan yang terdeteksi oleh ESP8266 anda.

Langkah 6: cara mengetahui IP Address ESP kita adalah dengan mengetikkan AT+CIFSR, maka akan muncul ip address kita.

Jika sampai langkah ke 6 sudah berhasil maka sekarang kita bisa menggunakannya dengan arduino. Agar tidak crash saat kita menggunakan pin TX RX. Maka kita akan menggunakan software serial. Setelah proses di atas Arduino perlu DI INGAT bahwa setelah ini TX ESP8266 masuk ke RX Software Serial Arduino, sedangkan PIN RX ESP8266 masuk ke TX Software Serial Arduino. Misal RX Arduino sekarang di pin digital 2. Maka pin TX ESP8266 dipasang disitu.  

PIN Arduino   PIN ESP8266
TX (pin sesuai software serial) RX
RX (pin sesuai software serial) TX

Ringkasan Program : )* Sesuaikan program sensor seperti yang anda inginkan.

#include <SoftwareSerial.h>

#include <stdlib.h>

#define RX 2

#define TX 3

String AP = “NAMAWIFI”;       // CHANGE ME

String PASS = “PASSWORDWIFI”; // CHANGE ME

String API = “API KEY WRITE”;   // CHANGE ME

String HOST = “api.thingspeak.com”;

String PORT = “80”;

String field = “field1”;

int countTrueCommand;

int countTimeCommand;

boolean found = false;

int valSensor = 1;

SoftwareSerial esp8266(RX,TX);

void setup() {

  Serial.begin(115200);

  esp8266.begin(115200);

  sendCommand(“AT”,5,”OK”);

  sendCommand(“AT+CWMODE=1″,5,”OK”);

  sendCommand(“AT+CWJAP=\””+ AP +”\”,\””+ PASS +”\””,20,”OK”);

}

void loop() {

 valSensor = getSensorData(); //ganti getSensorData() sesuai dengan sensormu, variabel valSensor yang dikirim ke Thingspeak

 String getData = “GET /update?api_key=”+ API +”&”+ field +”=”+String(valSensor);

 sendCommand(“AT+CIPMUX=1″,5,”OK”);

 sendCommand(“AT+CIPSTART=0,\”TCP\”,\””+ HOST +”\”,”+ PORT,15,”OK”);

 sendCommand(“AT+CIPSEND=0,” +String(getData.length()+4),4,”>”);

 esp8266.println(getData);delay(1500);countTrueCommand++;

 sendCommand(“AT+CIPCLOSE=0″,5,”OK”);

}

int getSensorData(){

  return random(1000); // Replace with

}

void sendCommand(String command, int maxTime, char readReplay[]) {

  Serial.print(countTrueCommand);

  Serial.print(“. at command => “);

  Serial.print(command);

  Serial.print(” “);

  while(countTimeCommand < (maxTime*1))

  {

    esp8266.println(command);//at+cipsend

    if(esp8266.find(readReplay))//ok

    {

      found = true;

      break;

    }

    countTimeCommand++;

  }

  if(found == true)

  {

    Serial.println(“BERHASIL”);

    countTrueCommand++;

    countTimeCommand = 0;

  }

  if(found == false)

  {

    Serial.println(“GAGAL”);

    countTrueCommand = 0;

    countTimeCommand = 0;

  }

  found = false;

 }

News and Feed

Leave a Reply

Your email address will not be published. Required fields are marked *