1. Menyiapkan Device
- Disini saya menggunakan :
a. Arduino Mega
b. SIM808
c. Sensor SHT20
d. PZEM
e. Sensor tegangan DC
f. Sensor arus DC
Hubungkan semua modul yang kakak punya, tidak harus sama seperti saya (sesuai kebutuhan saja), setelah semua terhubung dengan baik bisa dilanjutkan ke langkah 2.
2. Menyiapkan Program
Berikut ini adalah program yang saya gunakan dalam project
//Sensor Suhu Sementara
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float h;
float t;
//Inisialiasi Sensor Arus DC
#include "ACS712.h"
ACS712 sensor(ACS712_30A, A1);
float I;
float titiknol;
//Inisialiasi Sensor Tegangan DC
float V;
float Vdc;
//Inisialisasi Sensor SHT20
#include <Wire.h>
#include "DFRobot_SHT20.h"
DFRobot_SHT20 sht20;
float temp;
float humd;
//Inisialiasi Sensor PZEM
#include <SoftwareSerial.h>
#include <PZEM004T.h>
PZEM004T pzem(11,10);
IPAddress ip(192,168,1,1);
float v;
float i;
float p;
float e;
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("SHT20 Example!");
sensor.calibrate(); // Untuk Sensor Arus DC
sht20.initSHT20(); //Untuk Sensor Suhu
delay(1000);
sht20.checkSHT20();
//Sensor PZEM
Serial.println("Connecting to PZEM...");
pzem.setAddress(ip);
//Init the driver pins for GSM function
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
//Output GSM Timing
digitalWrite(6, HIGH);
delay(1500);
digitalWrite(6, LOW);
}
void loop() {
digitalWrite(3, LOW); //enable GSM TX、RX
digitalWrite(4, HIGH); //disable GPS TX、RX
send_GPRS();
delay(240000);
}
void send_GPRS()
{
humd = sht20.readHumidity(); // Read Humidity
temp = sht20.readTemperature(); // Read Temperature
Serial.print("Temperature:");
Serial.print(temp, 1);
Serial.print("C");
Serial.print(" Humidity:");
Serial.print(humd, 1);
Serial.print("%");
Serial.println();
h = dht.readHumidity();
t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.println(t);
//Sensor PZEM
v = pzem.voltage(ip);
if (v < 0.0) v = 0.0;
Serial.print(v);Serial.print("V; ");
i = pzem.current(ip);
if(i >= 0.0){ Serial.print(i);Serial.print("A; "); }
p = pzem.power(ip);
if(p >= 0.0){ Serial.print(p);Serial.print("W; "); }
e = pzem.energy(ip);
if(e >= 0.0){ Serial.print(e);Serial.print("Wh; "); }
Serial.println();
// Get current from sensor DC
I = sensor.getCurrentDC();
titiknol = (I/100)+0.07;
Serial.println(String("I = ") + titiknol + " A");
// Get Voltage Sensor Reading
V = analogRead(A0);
Vdc=((V*0.00175)*5)+5.9;
Serial.print(Vdc);
Serial.println("Vdc");
delay(1000);
Serial.println("AT"); delay(1500);
Serial.println("AT+CGMM"); delay(1500);
Serial.println("AT+CREG?"); delay(1500);
Serial.println("AT+SAPBR=2,1"); delay(1500);
Serial.println("AT+SAPBR=1,1"); delay(4500);
Serial.println("AT+HTTPINIT"); delay(1500);
String data_gprs = "AT+HTTPPARA=\"URL\",\"api.thingspeak.com/update?api_key=6WRTWLLWNDBZTR93&";
data_gprs = data_gprs + "field1=" + String(temp) + "&" ;
data_gprs = data_gprs + "field2=" + String(humd) + "&";
data_gprs = data_gprs + "field3=" + String(i) + "&";
data_gprs = data_gprs + "field4=" + String(v) + "&";
data_gprs = data_gprs + "field5=" + String(p) + "&";
data_gprs = data_gprs + "field6=" + String(e) + "&";
data_gprs = data_gprs + "field7=" + String(titiknol) + "&";
data_gprs = data_gprs + "field8=" + String(Vdc) + "\"";
Serial.println(data_gprs); delay(2000);
String data_CID = "AT+HTTPPARA=\"CID\",1";
Serial.println(data_CID); delay(1500);
Serial.println("AT+HTTPACTION=0"); delay(1500);
Serial.println("AT+HTTPREAD"); delay(6500);
Serial.println("AT+HTTPTERM"); delay(1500);
}
3. Menyiapkan Web Landing
Disini saya menggunakan web landing dari Thingspeak, dimana kakak semua bisa langsung mencobanya secara free. langkah-langkahnya adalah sebagai berikut ini :
a. Sign in ke Thingspeak menggunakan akun mathworks
b. Setelah selesai klik Channels > My Channels
c. Pada halaman tersebut klik New Channel
d. Centang seluruh field yang akan kalian gunakan, dan rename agar mudah dianalisa
e. Setelah semuanya selesai jangan lupa untuk klik save channel di bawah halaman web, maka kalian akan melihat 6 tab baru yakni : Private View, Public View, Channel Settings, Sharing, API Keys, dan Data Import/Export.
f. Selanjutnya adalah copy API key yang terdapat pada tab API Keys dan masukkan kedalam program kalian melalui Arduino IDE
g. Copy kode diatas pada langkah ke 2 dan ganti pada bagian ini sesuai dengan keinginan kalian
Semoga tutorial diatas dapat menjawab semua masalah kakak selama ini, terimakasih
3 Comments
how can i send the data read from the sensors to a mobile phone instead of website?
ReplyDeleteYou can make your own app in the app invenventor, the tutorial is ready for you, just type in the search box "app inventor", follow the instructions and i hope that will solve your problem, thanks
DeleteIPAddress ip(192,168,1,1);
ReplyDeletedapat dari mana gan?