void setup()
{
Serial.begin(9600);
}
void loop()
{
nilaiPIRSensor = digitalRead(PIRSensor);
Serial.print(“nilaiPIRSensor:”);
Serial.println(nilaiPIRSensor);
}
{
Serial.begin(115200);
}
void loop()
{
// start working...
Serial.println("=================================");
Serial.println("Sample DHT11...");
{
Serial.begin(115200);
}
void loop()
{
// start working...
Serial.println("=================================");
Serial.println("Sample DHT11...");
void setup()
{
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop()
{
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins
with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}
Lanjuuuuttt....
Sekarang kita asumsiin kita punya LCD 20x4 harus robah
yang mana ya dari contoh library diatas?
Coba tukar di bagian “void setup()” pada “lcd.begin(16, 2);”
menjadi “lcd.begin(20, 4);”
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5
seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use
softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true){
delay(0); // Code to compatible with ESP8266 watch
dog.
}
}
Serial.println(F("DFPlayer Mini online."));
void loop()
{
static unsigned long timer = millis();
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(),
myDFPlayer.read());//Print the detail message from
DFPlayer to handle different errors and states.
}
}
void printDetail(uint8_t type, int value){
switch (type) {
case TimeOut:
Serial.println(F("Time Out!"));
break;
case WrongStack:
Serial.println(F("Stack Wrong!"));
break;
case DFPlayerCardInserted:
Serial.println(F("Card Inserted!"));
break;
case DFPlayerCardRemoved:
Serial.println(F("Card Removed!"));
break;
case DFPlayerCardOnline:
Serial.println(F("Card Online!"));
break;
case DFPlayerPlayFinished:
Serial.print(F("Number:"));
Serial.print(value);
Serial.println(F(" Play Finished!"));
break;
case DFPlayerError:
Serial.print(F("DFPlayerError:"));
switch (value) {
case Busy:
Serial.println(F("Card not found"));
break;
case Sleeping:
Serial.println(F("Sleeping"));
break;
case SerialWrongStack:
Serial.println(F("Get Wrong Stack"));
break;
case CheckSumNotMatch:
Serial.println(F("Check Sum Not Match"));
break;
case FileIndexOut:
Serial.println(F("File Index Out of Bound"));
break;
case FileMismatch:
Serial.println(F("Cannot Find File"));
break;
case Advertise:
Serial.println(F("In Advertise"));
break;
default:
break;
}
break;
default:
break;
}
}
Yuk mulai...
Pertama kita ambil semua inisialisasi dari setiap example
program. Bagi yang belum tau. Inisialisasi adalah pernyataan
atau deklarasi program supaya gampang dalam
pendefinisiannya.... aaaaahhhhh ribet amat. Kita g perlu teori
cuy. Kita butuh langsung praktek aja. Yuuuuukkkkk.............
#include <SimpleDHT.h>
#include <LiquidCrystal.h>
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include <SimpleDHT.h>
#include <LiquidCrystal.h>
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SimpleDHT11 dht11;
#include <SimpleDHT.h>
#include <LiquidCrystal.h>
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SimpleDHT11 dht11;
void setup()
{
Serial.begin(9600);
lcd.begin(20, 4);
// Print a message to the LCD.
lcd.print("hello, world!"); // ganti aja isinya sama yang kita
suka aja misalnya ”tamperatur kontrol”
mySoftwareSerial.begin(9600);
Serial.begin(115200); //pengaktifan serial yang ini kita
hapus ya, biar g bentrok ama yang atas. Kita butuhnya cuman
1 kok (di penyempurnaan di bawah)
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5
seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use
softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true){
delay(0); // Code to compatible with ESP8266 watch
dog.
}
}
Serial.println(F("DFPlayer Mini online."));
#include <SimpleDHT.h>
#include <LiquidCrystal.h>
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SimpleDHT11 dht11;
void setup()
{
Serial.begin(9600);
lcd.begin(20, 4);
// Print a message to the LCD.
lcd.print("hello, world!"); // ganti aja isinya sama yang kita
suka aja misalnya ”tamperatur kontrol”
lcd.print(" Temperatur kontrol "); // ganti aja isinya sama
yang kita suka aja misalnya ”tamperatur
kontrol”
lcd.setCursor(0, 1); // tambahin tulisannya di baris kedua
lcd.print(" kipas angin bro ”);
lcd.setCursor(0, 2); // tambahin tulisannya di baris ketiga
lcd.print(" bikinan ”);
lcd.setCursor(0, 3); // tambahin tulisannya di baris ketiga
lcd.print(" sendiri lhoo... ”);
mySoftwareSerial.begin(9600);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5
seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use
softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true){
delay(0); // Code to compatible with ESP8266 watch
dog.
}
}
Serial.println(F("DFPlayer Mini online."));
#include <SimpleDHT.h>
#include <LiquidCrystal.h>
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SimpleDHT11 dht11;
void setup()
{
Serial.begin(9600);
lcd.begin(20, 4);
// Print a message to the LCD.
lcd.print("hello, world!"); // ganti aja isinya sama yang kita
suka aja misalnya ”tamperatur kontrol”
lcd.print(" Temperatur kontrol "); // ganti aja isinya sama
yang kita suka aja misalnya ”tamperatur
kontrol”
lcd.setCursor(0, 1); // tambahin tulisannya di baris kedua
lcd.print(" kipas angin bro ”);
lcd.setCursor(0, 2); // tambahin tulisannya di baris ketiga
lcd.print(" bikinan ”);
lcd.setCursor(0, 3); // tambahin tulisannya di baris ketiga
lcd.print(" sendiri lhoo... ”);
mySoftwareSerial.begin(9600);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5
seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use
softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true){
delay(0); // Code to compatible with ESP8266 watch
dog.
}
}
Serial.println(F("DFPlayer Mini online."));
void loop()
{
//pertama kita atur dulu tampilan di LCDnya
lcd.clear(); //untuk membersihkan tulisan sebelumnya yang
melekat pada LCD
lcd.setCursor(0, 0);
lcd.print(“Kipas Kontrol”);
lcd.setCursor(0, 1);
lcd.print(“temperatur: ”);
lcd.print(temperature);
lcd.setCursor(0, 2);
lcd.print(“kelembaban: ”);
lcd.print(humidity);
lcd.setCursor(0, 3);
lcd.print(“kipas: ”);
lcd.print(statusKipas);
nilaiPIRSensor = digitalRead(PIRSensor);
Serial.print(“nilaiPIRSensor:”);
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(pinDHT11, &temperature,
&humidity,NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed,
err=");Serial.println(err);delay(1000);
return;
}
if(nilaiPIRSensor == 1)
{
myDFPlayer.play(94);
myDFPlayer.play(temperatur);
myDFPlayer.play(mp3Kipas);
}
}
Sekarang rekam suara per file. “satu” simpan di file 001
dengan format mp3, selanjutnya “dua” dan simpan di file
002, dan selanjutnya sampai 50. Dengan asumsi temperatur
tertinggi hanya sampai 50. Atau sekiranya bro dan bray
betah silahkan sampai 90. File 091 isi dengan suara “kipas
nyala”, file 092 isi dengan suara “kipas mati”, dan file 093
dengan suara “mesin pengatur kipas otomatis”. Satu lagi,
rekam juga MP3 dengan suara "temperatur sekarang adalah"
dan simpan di file 094.
Masukkan ke memory dan rangkai sesuai dengan program
yang kita buat. Sayang Uda tidak punya program gambar
rangkaian di laptop. Lain kali kita update ya gambar
rangkaiannya.
Pin yang kita pakai pada arduino yaitu
Pin A0 ke PIR Sensor
Pin 2 ke LCD D7
Pin 3 ke LCD D6
Pin 4 ke LCD D5
Pin 5 ke LCD D4
Pin 6 ke DHT11. Silahkan googling dulu deh mengenai cara
pemasangannya. Tutornya nyusul ya bray
Pin 9 ke DFPlayer mini TX
Pin 10 ke DFPlayer mini RX
Pin 11 ke LCD E
Pin 12 ke LCD RS
MENGGABUNGKAN BEBERAPA SKETCH
PROGRAM ARDUINO
Menulis sketch program arduino ternyata mudah, tapi
bagaimana cara menggabungkan sketch demi sketch ya? Ini
Uda contohin ya... Yg pertama sketch program untuk
menghidupkan LED.
#define LED 13
#define tombol 6
int nilaitombol = 0;
void setup()
{
pinMode (LED,OUTPUT);
pinMode (tombol,INPUT);
}
void loop()
{
nilaitombol = digitalRead(tombol);
if (nilaitombol == HIGH)
{
digitalWrite(LED, HIGH);
}
else
{
digitalWrite(LED, LOW);
}
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
nilaiPotensio = analogRead(potensiometer);
tegangan = nilaiPotensio * (5.0 / 1023.0);
Serial.println(tegangan);
}
Diatas kita punya sketch untuk pembacaan tegangan. Kita
tambahin lagi ya untuk penampilan di LCD 16 x 2. Langsung
deh kita liat sketch yang di bawah. Tapi sebelumnya kita
pasang dulu LCDnya sesuai wiring diagram ya bray
Wiring LCDnya
void setup()
{
lcd.begin(16, 2);
lcd.print("hello, world!");
}
void loop()
{
lcd.setCursor(0, 1);
lcd.print(“ “);
}
void setup()
{
pinMode (LED,OUTPUT);
pinMode (tombol,INPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("hello, world!");// lcd.print("tegangan:");
}
void setup()
{
pinMode (LED,OUTPUT);
pinMode (tombol,INPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("tegangan:");
}
void loop()
{ // Bagian satu pembacaan tegangan
nilaiPotensio = analogRead(potensiometer);
tegangan = nilaiPotensio * (5.0 / 1023.0);
Serial.println(tegangan);
// Bagian dua penulisan di LCD
lcd.setCursor(0, 1);
lcd.print(“ “);
// Bagian tiga persyaratan menyalakan LED
nilaitombol = digitalRead(tombol);
if (nilaitombol == HIGH)
{
digitalWrite(LED, HIGH);
}
else
{
digitalWrite(LED, LOW);
}
}
Nah begini nih jadinya kalo digabungin semuanya.
Selanjutnya kita perbaiki dulu beberapa sketch biar cocok
dengan tujuan yang kita inginkan dari program kita.
Dari looping di atas, bagian awal adalah pembacaan tegangan.
Bagian selanjutnya adalah penulisan tulisan kosong di baris
ke dua kolom pertama. Baris ketiga adalah persyaratan untuk
menyalakan LED.
Yuk kita perbaiki.
Bagian satu..
Pembacaan tegangan udah cocok deh kayaknya.
Bagian dua..
Kita mesti memprint nilai tegangan ke kolom ke dua. Jadi
bagian ini kita robah bray. Nih uda contohin
// Bagian dua penulisan di LCD
lcd.setCursor(0, 1);
lcd.print(tegangan);
Bagian 3..
Persyaratan menyalakan LED. LED akan nyala kalau tegangan
dibawah 2,5 volt dan mati lagi di atas tegangan
tersebut.berarti kita tidak memakai tombol untuk
menyalakan dan mematikan LED kan bray. Tinggal ilangin
semua variabel tombol aja kan
// Bagian tiga persyaratan menyalakan LED
nilaitombol = digitalRead(tombol);
if (nilaitombol == HIGH)
{
digitalWrite(LED, HIGH);
}
else
{
digitalWrite(LED, LOW);
}
void setup()
{
pinMode (LED,OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("tegangan:");
}
void loop()
{ // Bagian satu pembacaan tegangan
nilaiPotensio = analogRead(potensiometer);
tegangan = nilaiPotensio * (5.0 / 1023.0);
Serial.println(tegangan);
// Bagian dua penulisan di LCD
lcd.setCursor(0, 1);
lcd.print(tegangan);
// Bagian tiga persyaratan menyalakan LED
if (tegangan <= 2.5)
{
digitalWrite(LED, HIGH);
}
else
{
digitalWrite(LED, LOW);
}
}