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 Thingspeak, sebenarnya, 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
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
makasih gan programnya bagus 🙂
Ip web thinkspeak didapat darimana gan?
dari guugle gan 😀
kalau modul tidak merespon kenapa gan??
bisa jadi karena belum bener pengkabelanya,
maaf .. saya juga dapat masalah yang sama ..
solusinya apa yah gan ?
modul tidak merespon gan, baudrate esp uda di ganti jadi 9600. hotspot sya sudah konek di esp.
kalau sudah bisa di AT command dengan Baud Rate 9600 harusnya suda ada respon dari modul gan
yah sama tdk ada respon dri modul
itu berarti tidak bisa AT COMMAND gan, coba pastikan bisa di AT COMMAND ESP8266 nya.
https://www.anakkendali.com/2018/05/esp8266-cara-mengirim-data-sensor-suhu.html
coba lihat di sini ada animasi dan videonya
oke gan saya coba dlu
#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
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
AT+UART_DEF=9600,8,1,0,3 pake ini gan perintahnya supaya pindah dri 115200 pke 9600?