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
Terima banyak, sangat membantu….
*Terima kasih
Good job. Berhasil saya coba.
kalau menggunaka 2 buah sensor jarak gimana ya?
kalau menggunaka 2 buah sensor jarak gimana ya?
https://www.anakkendali.com/2018/05/arduino-program-multiple-sensor-ultrasonic.html
itu gan,, selebihnya sama gan,, tinggal buat lagi chanel thingspeak nya dan duplikat program kriim nya itu
Bang, itu pakai Arduino IDE versi berapa? aku pakai versi 1.8.10 kok nggak bisa diupload ya kodenya?
Terimakasih info nya
Kalau untuk mengirim data sensor gerak (pir) ke thingspeak ada kah gan?