Anda di halaman 1dari 13

SENSOR LDR

void setup() {
Serial.begin(19200);//mengaktifkan fungsi serial
}
void loop() {
//membaca nilai LDR pada pin analog 0
int sensorValue = analogRead(A0);
//mencetak nilai yang terbaca pada serial monitor
Serial.println(sensorValue);
delay(1); //delay untuk memperlambat pembacaan
}

https://duwiarsana.com/membaca-sensor-ldr-dengan-arduino/

SENSOR ARUS ACS712


Contoh memprogram arduino untuk dapat menjalankan sensor arus ACS712 untuk 5A
dengan memasukkan rumus kalibrasinya persamaan
void setup() {
Serial.begin(9600);
}
void loop() {
//Sensor Arus max 5A
float average = 0;
for(int i = 0; i < 1000; i++) {
average = average + (0.0264 * analogRead(A0) -13.51);
delay(1000);
}
Serial.print(average);
Serial.println("mA");
}

http://electricityofdream.blogspot.co.id/2016/09/tutorial-mengukur-arus-dengan-modul.html

Cara mengukur tegangan & arus DC menggunakan sensor INA219

Modul sensor ini merupakan modul yang didukung dengan kemampuan ukur yang mampu
mengukur sumber beban yang sampai 26 Vdc dan arus 3,2 Ampere.

#include <Wire.h>
#include <Adafruit_INA219.h>
// Anda perlu mendownload library ini diatas dan copy paste sesuai perintah

Adafruit_INA219 sensor219; // Deklarasi penggunaan sensor INA219

void setup(void) {
Serial.begin(9600);
//prosedur mulai pembacaan data
sensor219.begin();
}

void loop(void) {
float tegangan = 00;
float arus = 00; // diukur menggunakan MiliAmpere
float daya = 00;

tegangan = sensor219.getBusVoltage_V(); //command untuk pembacaan tegangan


arus = sensor219.getCurrent_mA(); //command untuk pembacaan arus
daya = tegangan * (arus/1000); //rumus untuk mendapatkan nilai watt

Serial.print("Tegangan : ");
Serial.print(tegangan);
Serial.println(" Volt");
Serial.print("Arus : ");
Serial.print(arus);
Serial.println(" mAmp");
Serial.print("Daya : ");
Serial.print(daya);
Serial.println(" Watt");

Serial.println("");
delay(2000); //waktu tunda pembacaan selama 2 detik
}

https://www.nyebarilmu.com/cara-mengukur-tegangan-arus-dc-menggunakan-sensor-ina219/

INTERFACE I2C

Contoh device yang menggunakan interface i2c (SDA, SCL) antara lain :

1. Modul PCF8574
2. Modul RTC DS3231
3. Sensor MPU6050
4. Sensor MPU6500
5. Sensor Kompas CMPS10
6. Modul LCD OLED
7. Sensor Gyroscope ADXL345
8. Modul FM Radio RDA5087M
9. Modul FM Radio TEA5767
10. Sensor Barometric BMP180
11. Sensor Barometric BMP280
12. Modul INA219
13. Koneksi antar arduino
14. Koneksi antara arduino dengan Raspberry pi

Pada modul maupun sensor diatas menggunakan interface SCL (A4) dan SDA (A5) atau
sering disebut dengan i2c.
https://www.nyebarilmu.com/cara-mencari-tahu-alamat-interface-i2c-module-arduino/
module PC8574 yang akan digunakan untuk mengakses LCD 16×2.

/*... www.nyebarilmu.com ...*/

#include <Wire.h>

void setup()
{
//prosedur pembacaan i2c
Wire.begin();

Serial.begin(9600); //komunikasi serial menggunakan kecepatan 9600 bps


while (!Serial); // Arduino Uno: wait for serial monitor
Serial.println("\nI2C Scanner");
}

void loop() //fungsi yang berjalan terus menerus


{
int nDevices;
byte error, address; //tipe data untuk address dan error yaitu byte
//ditampilkan diserial monitor "Scanning..."
Serial.println("Scanning...");

nDevices = 00;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner menggunakan pembalik nilai
// Write.endTransmisstion untuk melihat jika perangkat pada alamat dimana
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 00) //jika sudah tidak ada keerroran
{
Serial.print("I2C device found at address 0x");
//menuliskan di serial monitor "i2c ditemukan"
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");

nDevices++;
}
else if (error==4) //jika error == 4
//menuliskan di serial monitor di tidak diketahui alamat i2c
{
Serial.print("Unknow error at address 0x"); //menuliskan jika eror tidak diketahui
if (address<16)
Serial.print("0");
Serial.println(address,HEX); //format penulisan address dalam bentuk heksa
}
}
if (nDevices == 00) //jika tidak ada perangkat yang terhubung
Serial.println("No I2C devices found\n");
//ditampilkan peringatan tidak ada i2c yang ditemukan
else
Serial.println("done\n");

delay(5000); // diberikan waktu tunda 5 detik untuk scan berikutnya


}

module RTC DS3231


Wiring RTC DS3231 ke Arduino

 GND >> Pin GND


 VCC >> Pin 5V
 SDA >> Pin SDA (A4)
 SCL >> Pin SCL (A5)
 SQW >> tidak dihubungkan
 32K >> tidak dihubungkan

Berikut fungsi yang paling sering digunakan di Library DS3231 pada Arduino

 setTime (hour,minute,second);
fungsi : Setting/adjust waktu pada RTC
contoh : rtc.setTime (10, 30, 00); //jam 10 menit 30 detik 00
 setDate (date,month,year);
fungsi : Setting/adjust tanggal pada RTC
contoh : rtc.setDate (1, 8, 2016); //tanggal 1 Agustus 2016
 setDow (uint8_t dow);
fungsi : Setting/adjust urutan Hari dalam Minggu (0-6 untuk minggu-sabtu), setDow
akan berpengaruh pada setDate
contoh : rtc.setDow (1); //setting hari sebagai Senin
 getTimeStr ();
fungsi : Mengambil data Waktu dari RTC,hasil berupa String
contoh : rtc.getTimeStr(); >> result : 09:30:33 //jam 9, menit ke 30, detik ke 33
 getDateStr ();
fungsi : Mengambil data Tanggal dari RTC,hasil berupa String
contoh : rtc.getDateStr(); >>result : 01.05.2016 //tanggal 1 Mei 2016
 getDowStr (uint8_t);
fungsi : Mengambil data nama Hari dari RTC,hasil berupa String (English Name)
contoh : rtc.getDowStr(); >>Result : Monday //day Long
contoh : rtc.getDowStr(1); >>Result : Mon //day Short
contoh : rtc.getDowStr(2); >>Result : Monday //day Long
 getMonthStr (uint8_t);
fungsi : Mengambil data nama Bulan dari RTC,hasil berupa String (English Name)
contoh : rtc.getMonthStr(); >>Result : January //day Long
contoh : rtc.getMonthStr(1); >>Result : Jan //day Short
contoh : rtc.getMonthStr(2); >>Result : January //day Long
 getTemp ();
fungsi : Mengambil data suhu dari RTC, hasil berupa long int
contoh : rtc.getTemp();
result : 32.15 //Suhu 33.15° Celcius

Kode Program untuk monitoring pembacaan waktu di serial monitor

//www.nyebarilmu.com

#include <DS3231.h>

// inisialisasi penggunaan i2c


DS3231 rtc(SDA, SCL);

void setup()
{
// Setup Serial connection
Serial.begin(115200);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}

// Initialize the rtc object


rtc.begin();

// The following lines can be uncommented to set the date and time
//rtc.setDOW(THURSDAY); // Set Day-of-Week to SUNDAY
//rtc.setTime(18, 00, 00); // Set the time to 18:00:00 (24hr format)
//rtc.setDate(25, 5, 2017); // Set the date to May 25rd, 2017
}

void loop()
{
// read Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");

// read date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");

// Read time
Serial.println(rtc.getTimeStr());

// Wait one second before repeating :)


delay (1000);
}

Kode Program untuk monitoring pembacaan temperatur di serial monitor

#include <DS3231.h>

// Init the DS3231 using the hardware interface


DS3231 rtc(SDA, SCL);

void setup()
{
// Setup Serial connection
Serial.begin(115200);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}

// Initialize the rtc object


rtc.begin();
}

void loop()
{
// Read current temperature
Serial.print("Temperature: ");
Serial.print(rtc.getTemp());
Serial.println(" C");
delay (1000);
}

https://www.nyebarilmu.com/tutorial-arduino-mengakses-module-rtc-ds3231/

Monitoring waktu dan temperature RTC DS3231 menggunakan LCD Display

//www.nyebarilmu.com

#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
#include <DS3231.h>
DS3231 rtc(SDA, SCL);

LiquidCrystal_PCF8574 lcd(0x3F);

void setup()
{
Serial.begin(115200);
Serial.println("Trial LCD + DS3231");

rtc.begin();

lcd.begin(16, 2); // initialize the lcd


lcd.setBacklight(255);
lcd.setCursor(00,00);
lcd.print("nyebarilmu.com");
lcd.setCursor(00,1);
lcd.print(" LCD + DS3231 ");
delay(5000);
lcd.clear();
}

void loop()
{
Serial.print(rtc.getDOWStr(1));
Serial.print(" ");

Serial.print(rtc.getDateStr());
Serial.print(" -- ");

Serial.println(rtc.getTimeStr());
Serial.print(" -- ");

Serial.println(rtc.getTemp());

lcd.setCursor(00,00);
lcd.print(rtc.getDOWStr(1));
lcd.setCursor(3,00);
lcd.print(",");

lcd.setCursor(4,00);
lcd.print(rtc.getDateStr());

lcd.setCursor(00,1);
lcd.print(rtc.getTimeStr());

lcd.setCursor(10,1);
lcd.print("t:");

lcd.setCursor(12,1);
lcd.print(rtc.getTemp());
delay (1000);
}

https://www.nyebarilmu.com/tutorial-arduino-mengakses-module-rtc-ds3231/

Data Logger
#include <SPI.h>
#include <SD.h>

const int chipSelect = 10;

void setup() {
Serial.begin(9600);
Serial.print("Initializing SD card...");
// inisialisasi card
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}
Serial.println("card initialized.");
}

void loop() {
String dataString="okelah";
// membuka file, hanya satu file yang dibuka pada penggunaan data logger

File dataFile = SD.open("datalog.txt", FILE_WRITE);

// menulis data:
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
// print ke serial port:
Serial.println(dataString);
}
else {
Serial.println("error opening datalog.txt");
}
}

http://www.arduino.web.id/2015/12/menyimpan-data-dengan-arduino-data.html
https://grabcad.com/library/solar-tracking-dual-axis-1

http://www.vedcmalang.com/pppptkboemlg/index.php/menuutama/listrik-electro/1038-herry-
sudjendro

BUKALAPAK SOLAR CELL


https://www.bukalapak.com/p/rumah-tangga/elektronik-1111/lampu-alat-penerangan/1gee81-
jual-solar-panel-panel-surya-solar-cell-50-wp?campaign_name=&from=list-
product&search%5Bkeywords%5D=solar%20cell%20panel%20surya%2050wp
Solar panel 50 wp
Spesifikasi
max power ( pmax ) 50W
Max power Voltage ( vmp) 17,5V
Max current ( Imp ) 2.86A
Open Circuit Voltage ( Voc )22V
Short Circuit Current ( Isc )3.03A
Nominal Operating Cell Temp( NOCT) 45+-80DrjtC
Max sistem Voltage 700V<br/
Dimension 530x 605x 30
12Volt / 50Wp/ class A / Tipe Poly.
Sebelum pengiriman pihak kami akan melakukan QC( Quality control ) untuk memastikan semua
berfungsi dengan baik dan baru melakukan paking 1 paking dengan buble langkah kedua baru
kardus dan ke tiga baru buble lagi . dan selama ini aman aman saja , tetapi agan klu masih takut
terjadi sesuatu maka agan bisa melakukan pemesanan dengan paking kayu. dan kami akan
membantu seminimal mungkin supaya ongkir lebih ringan.

REVERENSI PENGHITUNGAN AKI


https://janaloka.com/menghitung-kapasitas-baterai-untuk-panel-surya/

https://www.kompasiana.com/ferdirosman/solar-cell-itu-charger-
aki_56644d592e9773f90e8bd5d9
Daftar pustaka dasar teori arduino

http://ecadio.com/mengenal-dan-belajar-arduino-uno-r3
https://www.nyebarilmu.com/cara-mengukur-tegangan-arus-dc-menggunakan-sensor-ina219/

https://elektroku.com/monitoring-sensor-suhu-lm35-menggunakan-mikrokontroller-arduino/
http://www.arduino.web.id/2015/12/menyimpan-data-dengan-arduino-data.html

Anda mungkin juga menyukai