By | 02/03/2018

Hello Sobat Anak Kendanli,

pada kesempatan sebelumnya saya sudah pernah menulis tentang tutorial ESP8266, Cara Arduino Mega 2560 mengirim data ke Thingspeak dan kali ini saya akan menulis bagaimana ESP8266, Cara Mengirim Data Arduino Uno ke Thingspeaksebenarnya, caranya juga sama hanya saja ada sedikit perbedaan mengakses program serial pada Arduino Mega2560 dan Arduino Uno karena pada Arduino Mega 2560 terdapat empat buah pin Serial yang sudah tersedia dan siap di akses sedangkan pada Arduino Uno kita membutuhkan bantuan library SoftwareSerial.h untuk menambah pin Serial. dan juga, karena ketika mengakses SoftwareSerial kita tidak boleh menggunakan Baudrate 115200 sehingga untuk settingan baudratenya kita menggunakan 9600 untuk itu pertama kali kita harus merubah baudrate ESP8266 menjadi 9600, jika sobat belum bisa merubahnya silahkan baca terlebih dahulu tentang Cara Konfigurasi ESP8266 Arduino Uno jika sudah bisa maka sobat hanya tinggal menambahkan fungsi AT+UART=9600,8,1,0,3

ESP8266, Cara Mengirim Data Arduino Uno ke Thingspeak
silahkan hubungkan Arduino Uno dengan ESP8266 sebagai berikut :
3.3V Arduino —– VCC ESP8266
3.3V Arduino —– EN ESP8266
10 Arduino —– TX ESP8266
11 Arduino —– RX ESP8266
GND Arduino —– GND ESP8266

jika semuanya sudah selesai kita akan langsung mencoba membuat projectnya, disini saya menggunakan Potentiometer sebagai input data Analog, dan sobat bisa menggantinya dengan sensor apapun, tentunya sobat harus mengerti cara mengakses sensor tersebut.

berikut adalah program yang saya buat pada percobaan kali ini.

#include <SoftwareSerial.h> // memasukan library sofwareserial
SoftwareSerial wifi(10,11); // RX, TX

#define WiFiSSID “KOST_RAMA” 
#define WiFiPassword “bayardulu500” 
#define DestinationIP “184.106.153.149” // ip web thingspeak.com
#define TS_Key “738FMFSI0PLR3FM3” // api key dari thingspeak.com buat chanel untuk mendapatkanya

int sensorPin = A0;
int nilai_sensor;
boolean connected=false;

void setup()
{
wifi.begin(9600);
wifi.setTimeout(5000);
Serial.begin(9600); 
Serial.println(“ESP8266 Client Demo”);
delay(1000);
//  periksa apakah modul ESP8266 aktif
wifi.println(“AT+RST”);
delay(1000);
if(wifi.find(“WIFI GOT IP”))
{
Serial.println(“Modul siap”);
}
else
{
Serial.println(“Tidak ada respon dari modul”);
while(1);
}
delay(1000);
//setelah modul siap, kita coba koneksi sebanyak 5 kali

for(int i=0;i<5;i++)
{
connect_to_WiFi();
if (connected)
{
break;
}
}
if (!connected){
while(1);
}
delay(5000);

// set the single connection mode
wifi.println(“AT+CIPMUX=0”);
delay(1000);
}

void loop()
{
String cmd = “AT+CIPSTART=”TCP”,””;
cmd += DestinationIP ;
cmd += “”,80″;
wifi.println(cmd);
Serial.println(cmd);
if(wifi.find(“Error”))

Serial.println(“Koneksi error.”);
return;
}

nilai_sensor = analogRead(sensorPin);  // Anda bisa menggantinya dengan nilai analog.
// dalam contoh ini, kita menggunakan nilai random 1…10
cmd = “GET /update?key=”;
cmd += TS_Key;
cmd +=”&field1=”; 
cmd += nilai_sensor;
cmd += “rn”;        // jangan lupa, setiap perintah selalu diakhiri dengan CR+LF
wifi.print(“AT+CIPSEND=”);
wifi.println(cmd.length());
if(wifi.find(“>”))
{
Serial.print(“>”);
}
else
{
wifi.println(“AT+CIPCLOSE”);
Serial.println(“koneksi timeout”);
delay(1000);
return;
}
wifi.print(cmd);
delay(2000);

while (wifi.available())
{
char c = wifi.read();
Serial.write(c);
if(c==’r’) Serial.print(‘n’);
}
Serial.println(“——end”);
delay(10000);
}

void connect_to_WiFi()
{
wifi.println(“AT+CWMODE=1”);
String cmd=”AT+CWJAP=””;
cmd+=WiFiSSID;
cmd+=””,””;
cmd+=WiFiPassword;
cmd+=”””;
wifi.println(cmd);
Serial.println(cmd);
if(wifi.find(“OK”))
{
Serial.println(“Sukses, terkoneksi ke WiFi.”);
connected= true;
}
else
{
Serial.println(“Tidak dapat terkoneksi ke WiFi. “);
connected= false;
}
}

untuk tutorial lengkapnya saya sudah menulis di bagian Cara Arduino Mega Mengirim data ke Thingspeak dengan ESP8266
mungkin cukup sekian artikel kali ini, jika ada kesalahan, kritikan ataupun saran silahkan beri komentarnya, dan jika ada yang ditanyakan silahkan juga dikolom komentar !

keyword :

ESP8266
Arduino ESP8266
How To Send Data Arduino To Thingspeak
cara ESP8266 kirim Thingspeak
ESP8266 Arduino ke Thingspeak
Anak Kendali
Thingspeak Esp8266
Arduino Thingspeak
Arduino Uno Esp8266
Tutorial Esp8266
Monitoring Sinyal Thingspeak ESP8266
Monitoring data Thingspeak ESP8266
Monitoring data Thingspeak ESP8266 Arduino

15 Replies to “ESP8266, Mengirim data Arduino Uno ke Thingspeak”

  1. Haidil Edi

    modul tidak merespon gan, baudrate esp uda di ganti jadi 9600. hotspot sya sudah konek di esp.

    Reply
  2. yuda pradana

    #include // memasukan library sofwareserial
    SoftwareSerial wifi(10,11); // RX, TX
    #define WiFiSSID "Extreme Wifi"
    #define WiFiPassword "dafafauzan99"
    #define DestinationIP "184.106.153.149" // ip web thingspeak.com
    #define TS_Key "U6WXT94L53L37BNP" // api key dari thingspeak.com buat chanel untuk mendapatkanya
    #include "dht.h"
    #define dht_apin A0 // Analog Pin sensor is connected to
    dht DHT;
    boolean connected=false;
    void setup()
    {
    wifi.begin(9600);
    wifi.setTimeout(5000);
    Serial.begin(9600);
    Serial.println("ESP8266 Client Demo");
    delay(1000);
    // periksa apakah modul ESP8266 aktif
    wifi.println("AT+RST");
    delay(1000);
    if(wifi.find("WIFI GOT IP"))
    {
    Serial.println("Modul siap");
    }
    else
    {
    Serial.println("Tidak ada respon dari modul");
    while(1);
    }
    delay(1000);
    //setelah modul siap, kita coba koneksi sebanyak 5 kali
    for(int i=0;i<5;i++)
    {
    connect_to_WiFi();
    if (connected)
    {
    break;
    }
    }
    if (!connected){
    while(1);
    }
    delay(5000);
    // set the single connection mode
    wifi.println("AT+CIPMUX=0");
    delay(1000);
    }
    void loop()
    {
    String cmd = "AT+CIPSTART="TCP","";
    cmd += DestinationIP ;
    cmd += "",80";
    wifi.println(cmd);
    Serial.println(cmd);
    if(wifi.find("Error"))
    {
    Serial.println("Koneksi error.");
    return;
    }

    cmd = "GET /update?key=";
    cmd += TS_Key;
    cmd +="&field1=";
    cmd += DHT.temperature;
    cmd += "rn"; // jangan lupa, setiap perintah selalu diakhiri dengan CR+LF
    wifi.print("AT+CIPSEND=");
    wifi.println(cmd.length());
    if(wifi.find(">"))
    {
    Serial.print(">");
    }
    else
    {
    wifi.println("AT+CIPCLOSE");
    Serial.println("koneksi timeout");
    delay(1000);
    return;
    }
    wifi.print(cmd);
    delay(2000);
    while (wifi.available())
    {
    char c = wifi.read();
    Serial.write(c);
    if(c=='r') Serial.print('n');
    }
    Serial.println("——end");
    delay(10000);
    DHT.read11(dht_apin);

    Serial.print("Current humidity = ");
    Serial.print(DHT.humidity);
    Serial.print("% ");
    Serial.print("temperature = ");
    Serial.print(DHT.temperature);
    Serial.println("C ");

    delay(5000);
    }
    void connect_to_WiFi()
    {
    wifi.println("AT+CWMODE=1");
    String cmd="AT+CWJAP="";
    cmd+=WiFiSSID;
    cmd+="","";
    cmd+=WiFiPassword;
    cmd+=""";
    wifi.println(cmd);
    Serial.println(cmd);
    if(wifi.find("OK"))
    {
    Serial.println("Sukses, terkoneksi ke WiFi.");
    connected= true;
    }
    else
    {
    Serial.println("Tidak dapat terkoneksi ke WiFi. ");
    connected= false;
    }
    }

    sudah saya coba gan,tetap tidak ada respon dari modul,sebelumnya juga udh coba tutorial( https://www.anakkendali.com/2018/02/cara-konfigurasi-esp8266-arduino-uno.html ) berhasil udh wifi connected,cuman ganti pin gan tx,rxnya kan ke 10,11

    Reply
  3. Anak Kendali

    dikonfigurasi kan masih pake 115200. nah di rubah dulu gan,, atau coba program konfigurasi pake pin 10 11

    #include
    SoftwareSerial serial(10,11);

    void setup(){
    Serial.begin(9600);
    serial.begin(9600);
    }

    void loop() {
    if (serial.available())
    Serial.write(serial.read());
    if (Serial.available())
    serial.write(Serial.read());
    }

    kalo program diatas bisa cek AT command, harusnya program kirim datanya berhasil,, kalo ga bisa di at command pake program di atas,, coba pake pin TX RX ke baut rate 115200 lagi,, trus rubah ke 9600

    Reply

Leave a Reply

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