By | 09/04/2020

Hello Sahabat Anak Kendali,

pada kesempatan kali ini saya akan mengisi Artikel tentang tutorial ESP8266, Cara Mengirim Data Sensor Jarak ke Thingspeak, menggunakan Arduino Uno,

 sebelumnya juga saya sudah menuliskan Artikel yang berkaitan tentang Cara ESP8266, mengirim data sensor Suhu LM35 ke thingspeak, silahkan cari artikelnya di web www.anakkendali.com, utuk mempermudahkan pencarian, sudah tersedia menu daftar isi di atas.

keyword :
ESP8266, Cara Mengirim Data Sensor Jarak ke Thingspeak, menggunakan Arduino Uno,

ESP8266-01 Arduino Thingspeak
ESP8266-01 Arduino Thingspeak IOT
ESP8266-01 Arduino Thingspeak Cara Mengirim Ke Thingspeak
ESP8266-01 Arduino Thingspeak Mengirim data ke Thingspeak
ESP8266-01 Arduino Thingspeak Megirim Data Sensor, Internet Of Things

langsung saja ke tutorial ESP8266, Cara Mengirim Data Sensor Jarak ke Thingspeak, menggunakan 

seperti biasanya kita rakit dulu rangkaiannya, adapun komponen yang dibutuhkan sebagai berikut :

Arduino Uno
ESP8266 01
Sensor Jarak Ultrasonik SRF-04
LCD 16×2
Modul I2c lcd16x2

setelah itu silahkan rangkai Arduino Uno ke ESP8266 seperti berikut

TX ESP8266 —- 10 Arduino
RX ESP8266 —- 11 Arduino
VCC ESP8266 — 3,3V Arduino
En/Ch_pd RSP8266 — 3,3V Arduino
GND ESP8266 —- GND Arduino
untuk sensor jaraknya silahkan buat rangakaianya seperti berikut :

Triger Srf-04 —- 6 Arduino
Echo Srf-04  —- 7 Arduino
Vcc Srf-04  —-  5V Arduino
GND Srf-04 —- GND Arduino

dan untuk I2C LCD nya silahkan rangkai seperti berikut :
VCC Module I2c Lcd — 5V Arduino
GND Module I2c Lcd — GND Arduino
SDA Module I2c Lcd — A4 Arduino
SCL  Module I2c Lcd — A5 Arduino

sebelumnya pastikan kamu tidak kebingungan kalo pin 5V arduino nya kurang, dan hal ini biasanya ditanyakan oleh orang yang baru belajar Arduino tapi langsung mencoba project yang tingkat menengah ke atas.

jika sudah selesai sekarang silahkan buat programnya seperti berikut :

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

#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 "50Q3GXC5IM2SNTJP" // api key dari thingspeak.com buat chanel untuk mendapatkanya

#define triger 6
#define echo 7

boolean connected=false;

unsigned int durasi, jarak;

char c;
String cmd;

// berikut adalah fungsi program sensor jarak

void sensor_jarak(){

digitalWrite(triger, LOW);
  delayMicroseconds(2);
  digitalWrite(triger, HIGH);
  delayMicroseconds(10);
  digitalWrite(triger, LOW);
  delayMicroseconds(2);

durasi = pulseIn(echo, HIGH);
jarak = durasi/58.2;

delay(300);
}

void setup()
{
lcd.begin();

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);

pinMode(triger, OUTPUT);
pinMode(echo, INPUT);
}

unsigned long lastTime=0;

void loop()
{
  sensor_jarak(); // memanggil fungsi program sensor jarak
  if (millis() - lastTime >=500){
lcd.clear();

lcd.setCursor(0,0);
lcd.print ("jarak: ");
lcd.print(jarak);
lcd.setCursor(0,1);
lcd.print("OTW thingspeak");
  lastTime = millis();
  }
  kirim_thingspeak();
}

void kirim_thingspeak()
{

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 += jarak;
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())
{
 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;
}
}

disini kamu bisa lihat video hasilnya, semoga berhasil

8 Replies to “ESP8266, Cara Mengirim Data Sensor Jarak ke Thingspeak”

  1. Bill

    Bang, itu pakai Arduino IDE versi berapa? aku pakai versi 1.8.10 kok nggak bisa diupload ya kodenya?

    Reply
  2. Agri

    Terimakasih info nya
    Kalau untuk mengirim data sensor gerak (pir) ke thingspeak ada kah gan?

    Reply

Leave a Reply

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