Beranda > Arduino, IoT, web > Mengirim Data dari ESP8266 Module (ESP-01) ke ThingSpeak Menggunakan Arduino- Angka Random

Mengirim Data dari ESP8266 Module (ESP-01) ke ThingSpeak Menggunakan Arduino- Angka Random

14 Juli 2017

Sekarang saya akan mencoba mengirimkan data berupa angka random ke ThingSpeak menggunakan ESP8266.

Untuk cara menggunakan ThingSpeak dapat dilihat pada tutorial sebelumnya.

Alat yang dibutuhkan :

1. Arduino Uno
2. ESP8266 Module (ESP-01)

3. Breadboard
4. Resistor 1k, sorry gbrnya salah…

Berikut kode sketchnya :

/* Created by Ilias Lamprou
 * Updated Oct 30 2016
 * Modified by Yo@rD
 */

#include <SoftwareSerial.h>
SoftwareSerial espSerial =  SoftwareSerial(8,9);  

String apiKey = "API_KEY_KAMU"; 

String ssid="WIFI_KAMU";
String password ="PASSWORD_WIFI_KAMU"; 

boolean DEBUG=true;

//===== showResponce =====

void showResponse(int waitTime){
    long t=millis();
    char c;
    while (t+waitTime>millis()){
      if (espSerial.available()){
        c=espSerial.read();
        if (DEBUG) Serial.print(c);
      }
    }

}

//===== menulis random number ======

boolean thingSpeakWrite(){

   long randNumber;
   randNumber = random(500); // membuat angka acak
   char buf[16];
   ltoa(randNumber,buf,10);

  String cmd = "AT+CIPSTART=\"TCP\",\"";     // TCP connection
  cmd += "184.106.153.149";                   // IP untuk thingspeak.com
  cmd += "\",80";
  espSerial.println(cmd);
  if (DEBUG) Serial.println(cmd);
  if(espSerial.find("Error")){
    if (DEBUG) Serial.println("AT+CIPSTART error");
    return false;
  }

  String getStr = "GET /update?api_key=";   // prepare GET string
  getStr += apiKey;

  getStr +="&field1=";
  getStr += buf;

  getStr += "\r\n\r\n";

  // send data length
  cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  espSerial.println(cmd);
  if (DEBUG)  Serial.println(cmd);

  delay(1000);
  if(espSerial.find(">")){
    espSerial.print(getStr);
    if (DEBUG)  Serial.print(getStr);
  }
  else{
    espSerial.println("AT+CIPCLOSE");
    // alert user
    if (DEBUG)   Serial.println("AT+CIPCLOSE");
    return false;
  }
  return true;
}

void setup() {
  DEBUG=true;           // enable debug serial
  Serial.begin(9600);
  espSerial.begin(115200);  // enable software serial
                          // Your esp8266 module's speed is probably at 115200.
                          // For this reason the first time set the speed to 115200 or to your esp8266 configured speed
                          // and upload. Then change to 9600 and upload again

  espSerial.println("AT+RST");         // Enable this line to reset the module;
  showResponse(1000);

  //espSerial.println("AT+UART_CUR=9600,8,1,0,0");    // Enable this line to set esp8266 serial speed to 9600 bps
  //showResponse(1000);

  espSerial.println("AT+CWMODE=1");   // Mode client
  showResponse(1000);

  espSerial.println("AT+CWJAP=\""+ssid+"\",\""+password+"\"");  // koneksi ke jaringan LAN
  showResponse(5000);

   if (DEBUG)  Serial.println("Setup completed");
}

void loop() {

           thingSpeakWrite(); // Menulis angka random ke thingspeak

  delay(20000);  

}

Hasil yang terlihat pada ThingSpeak:

Ada data yang panjang dengan nilai yang sama dalam waktu yang panjang dikarenakan modul wifi sedang idle selama memcoba browsing coding di internet.

Proses yang terlihat di serial monitor:

Selamat belajar…

Selamat pusing…

%d blogger menyukai ini: