Bekerja secara Multitasking di Arduino

Multitasking pada umumnya hanya dapat dilakukan oleh microprocessor dengan kecepatan tinggi. Dengan kecepatan eksekusi perintah maupun data yang tinggi sebuah prosesor dapat melakukan banyak pekerjaan (task) seakan-akan dalam satu waktu saja. Inilah sebenarnya pengertian dari ‘multitasking’, melakukan banyak pekerjaan dalam satu waktu. Kalau kita lihat lebih dalam di arsitektur microprocessor, ‘pekerjaan’ atau ‘task’ tadi sebenarnya adalah kumpulan perintah opcode atau pseudo-code yang dijalankan secara berurutan. Namun karena prosesor memiliki clock yang sangat tinggi (order Mega/GigaHertz) dan ruang buffer memori yang cukup lebar, maka pekerjaan tadi seakan-akan dapat dilakukan secara bersamaan.

bekerja secara multitasking di Arduino

Kalau kita perhatikan dalam paragraf di atas, multitasking membutuhkan spesifikasi hardware yang tinggi karena dibutuhkan untuk melakukan  banyak pekerjaan secara simultan. Dan hardware saja tidak cukup, karena untuk melakukan multitasking dibutuhkan software yang mampu ‘mengarahkan’ microprocessor untuk melakukan multitasking. Sepengetahuan saya, yang mampu melakukan multitasking berada pada tingkat OS (Operating System) seperti pada Windows, Linux atau Android. Contoh multitasking yang sering kita lakukan adalah mengetik laporan dengan Microsoft Word sambil mendengarkan musik melalui Windows Media Player sambil scanning antivirus. Tiga pekerjaan ini dapat kita lakukan secara bersamaan dalam satu waktu di OS Windows laptop kita.

Multitasking dalam Arduino

Ok, saya pikir cukup untuk mengilustrasikan apa itu multitasking dalam microprocessor. Nah, sekarang bisakah multitasking itu kita lakukan dalam sebuah Arduino? Mari kita cek possibility-nya. Yang pertama, kita cek spek hardware-nya. Kita tahu bahwa Arduino berbasis mikrokontroller ATMega series 8-bit dengan kecepatan maksimal 16 Mhz (kecuali Arduino berbasis mikrokontroller ARM 32-bit dapat overclock sampai 84 MHz). RAM-nya juga sangat terbatas, hanya berkisar antara 2 Kb (Arduino Uno) – 8Kb (Arduino Mega). Obstacle ke dua adalah dari sisi software Arduino belum memiliki sistem operasi (OS). Nah bagaimana caranya agar kita dapat melakukan multitasking di Arduino?

Dalam skala terbatas kita dapat bekerja secara multitasking di Arduino. Dengan ‘multitasking’ kita dapat melakukan dua pekerjaan (atau lebih) seakan-akan dalam waktu bersamaan. Saya beri contoh sederhana bagaimana melakukan multitasking di Arduino. Pada case study kali ini kita akan mencoba menghidupkan dua LED dalam satu waktu dengan LED pertama akan OFF setelah 5 detik ON. Semua perintah on/off LED berasal dari port serial (kita akan gunakan jendela Serial Monitor untuk memasukkan perintah).

Untuk mempelajari perbedaan menggunakan multitasking atau tidak di Arduino, kita akan menggunakan dua sketch yang berbeda untuk menangani case study di atas. Yang pertama, sketch tanpa multitasking. Kita coba menggunakan sketch ‘normal’ terlebih dahulu.

char val='0';
void setup() {
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
digitalWrite(2,LOW); //LED 1
digitalWrite(3,LOW); //LED 2 
Serial.begin(9600);
}

void loop() {
if( Serial.available() ) {
val = Serial.read();
Serial.println(val); 
}
if( val == '1' ) {
digitalWrite(2,HIGH);
delay (5000);
}
else if( val == '2' ) {
digitalWrite(3,HIGH); 
}
}

Perhatikan sketch di atas. Tampaknya sudah benar, bukan? Di-compile juga tanpa error. Tapi coba kita upload ke Arduino. Ketika kita memasukkan perintah ‘1’melalui jendela Serial Monitor, LED 1 akan nyala selama 5 detik. Namun apa yang terjadi kita akan menyalakan LED kedua dalam rentang waktu jeda ON-OFF LED pertama. Arduino seperti nge-hang, tidak merespon perintah, padahal sketch kita compile tadi sudah benar, lho? Okay, untuk sementara kita simpan dulu jawabannya. Kita beralih ke sketch kedua yang menggunakan ‘multitasking’ sederhana. Perhatikan sketch berikut. Sketch kedua ini akan membutuhkan sebuah library eksternal bernama ‘SimpleTimer.h’, yang dapat Anda unduh di sini. Cara menambahkan library Arduino dapat Anda baca di sini.

#include <SimpleTimer.h>

SimpleTimer timer;

char val='0';
void setup() {
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
digitalWrite(2,LOW); //LED 1
digitalWrite(3,LOW); // LED 2
Serial.begin(9600);
}

void loop() {
timer.run(); 
if( Serial.available() ) {
val = Serial.read();
Serial.println(val); 
}
if( val == '1' ) {
digitalWrite(2,HIGH);
timer.setTimeout(5000, pin2high); 
}

else if( val == '2' ) {
digitalWrite(3,HIGH); 
}

}

void pin2high(){
digitalWrite(2,HIGH);
val='0';
}

Silahkan upload sketch di atas ke Arduino Anda. Amati apa yang terjadi. Masukkan perintah ‘1’ melalui jendela Serial Monitor. LED pertama nyala, bukan? Tanpa menunggu 5 detik, langsung saja masukkan perintah ‘2’ ke Arduino. Kali ini LED kedua akan langsung nyala tanpa menunggu LED pertama off setelah 5 detik on. Di sinilah letak perbedaan antara sketch pertama dan kedua. Sketch pertama LED kedua akan menunggu dulu selama delay LED pertama selesai, sedangkan pada sketch kedua, semua pekerjaan (menyalakan kedua LED) dapat dilakukan secara bersamaan tanpa menunggu pekerjaan pertama selesai terlebih dahulu. Inilah yang dinamakan ‘multitasking’ sederhana di Arduino.

Kesimpulan

Terakhir saya sampaikan bahwa ‘multitasking’ di Arduino bukanlah pengertian multitasking sesungguhnya, karena berbagai keterbatasan hardware dan software di Arduino. Namun setidak-tidaknya dengan segala keterbatasannya, kita masih dapat bekerja secara multitasking di Arduino. Inti dari multitasking sederhana di Arduino adalah menggunakan semacam ‘smart delay’ (dalam contoh di atas menggunakan ‘SimpleTimer’) yang dapat di-‘interrupt’ oleh eksekusi perintah lain sehingga seakan-akan semua pekerjaan dapat dilakukan dalam satu waktu. Demikian yang dapat saya sampaikan, ruang diskusi saya buka lebar melalui comment di bawah. Selamat menciptakan ‘multitasking-multitasking’ lainnya … 🙂

Update: untuk ‘multasking’ di Arduino menggunakan library RTOS bisa dibaca di artikel multitask Arduino RTOS

5 2 votes
Article Rating

Leave a Reply

141 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
hasan okta

mas kalau mau bikin klakson telolet pakai arduino pro mini 328p-au -8 mhz/ 328p -mu 16 mhz apa bisa mas … yang hasil suaranya mirip lagu ABANG TUKANG BAKSO misalnya…. dalam 3 klakson secara ber gantian do re me…… makasih….mas…. mohon pencerahannya…….

hasan okta

MALAM MAS dan trimakasih atas pencerahannya…… kalau software nya pakai sketch apa ya mass …. ….. dan untuk IC arduino pro mini 328 p- mu IC SMD yg kecil pakai crystal 16000 MHz mas Ajie apa punya baranya… / makasih masss

hasan okta

pagi masss apa perbedaannya analog dengan di gital ya mass …… contohnya seprti simbol simbol di kaki /pin ic arduino pro mini 328 p-mu dan ini contoh pin pin rangkain jadi telolet mas… TXD. RXD. RST. GND. PIN /KAKI IC DARI 23456789 DI PARAREL RESISTOR 1K KE GND SEDANGKAN PIN/KAKI IC 10 11 12 UNTUK MEMAINKAN RELAY NYA DAN MENGHASILKAN NADA KLAKSON TELOLET/ ABANG TUKANG BAKSO DAN LAIN SEBAINYA. DAN PIN A3 KE BASIS TR 2N 2222 YG DI HUBUNGKAN KE RELAY. PADA PIN (RAW) TEGANGAN INPUT 7 V0LT DAN MENGHASILKAN TE GANGAN OUTPUT 5 VOLT PADA KAKI /PIN VCC… Read more »

hasan okta

berapa harganya buku arduino plus ongkir ke kota kediri jawatimur ???? mass…..

pada ic arduino pro mini 328 p- mu tersebut di atas ….. yg sudah di upload / di isi sketch ??? apa bisa di lihat ataui bisa di copy…????. atau bagai mana caranya membuka data skecth nya mas …..terima kasich….. PRIBADI SUKA OTAK ATIK DI BIDANG TEKNOLOGI ELEKTRONIKA….

hasan okta

saya pesan sama mas ajie aja buku MUDAH BELAJAR MIKROKONTROLLER DENGAN ARDUINO PLUS KASET CD SOFTWARE I D E YA MASS… INI ALAMAT KAMI MAS
DUSUN . MARGOURIP RT-02 RW-01 DESA MARGOURIP. KEC: NGANCAR . KAB: KEDIRI. JAWA TIMUR ( AGUNG ELEKTRONIK)
KONTAK PERSON ;085704010272 /085231861333 ( HASAN OKTA) BOLEH MINTA NO REKENING NYA MAS ENTAR SAYA TRANSFER UANGNYA PLUS ONGKIR NYA
TRIMAKASIH….

hasan okta

mas ajie maaf ya mass ……..masih ada kesibukan bercocok tanam di sawah ke marin tidaak sempat trasfer ke BCA BESOK PAGI BARU BISA MASS MAKLUM JAUH DARI KOTA HEHE…… oh iya mas klo USB TTL/UART (PLUS KABEL USB TIPE C ) yang ada DTR & CTS / FTDI 232 ?…… MAS AJIE ADA STOCK BARANG GAK MAS….. DAN BERAPA harganya……????. terimakasih…..

hasan okta

USB TTL/UART/ FTDI 232 PLUS KABEL TIPE C SUDAH ADA BARANGNYA YA MASS ??? TOLONG DI KASIH KABAR ……VIA SMS TRIMAKASIH

hasan okta

Assalamualaikum Mas ajie…………………..
const int buttonPin =8;
const int ledPin=2;
int buttonState =0;
void setup() {
pinMode(ledPin,OUTPUT);
pinMode(buttonPin,INPUT);
}
void loop() {
buttonState= digitalRead(buttonPin);
if(buttonState==HIGH) {
digitalWrite(ledPin,HIGH);
}else{
digitalWrite(ledPin,LOW);
}
}
KETERANGAN ( SKETCH INI LAMPU LED MENYALA TERUS DI no pin (2) arduino pro mini 5v. ) tapi setelah saya pull-down (push on yg berhungan di no pin 8 lampu led padam/off kalau di lepas tombol push on nya’ on’ lagi……
Nahh……yg saya pertanyakan di sketch ini bagai mana setingannya kalau kebalikannya…..?????( di tombol lampu led on/ hidup)
trims

dian

Masih tentang Multitasking, saya dulu mengaplikasikannya pada AVR menggunakan Timer. Pada interval tertentu, misal 0,5s diselipkan PORTD.1=!PORTD.1.
Fungsi tersebut sering saya gunakan untuk indikator running alat, memakai LED sehingga tampak berkedip-kedip jika mikro sedang normal tidak hang. Pada serial juga diselipkan ping led tx, rx. Banyaknya data kadang terlihat pada kecepatan led berkedip.

Lagi cari fungsi itu di arduino & kebetulan dibahas disini.

Wahyu A

Mau tanya, apa kelebihan multitasking menggunakan file header ‘SimpleTimer.h’ dibandingkan dengan fungsi “millis()”

Fjr

Mas izin tanya. Saya komunikasi gprs sim800l pakai promini 3v. Tp hanya bertahan sktr 3 atau 5jam. Selebihnya harus d reset trs. Knp y mas, mhn bantuannya. Trmksh

anika putri

assalamualaikum mas
izin bertanya, kalau saya ingin membuat sebuah alarm untuk kendaraan dengan menghubungkan sensor kecepatan roda dengan timer, kemudian dihubungkan lagi dengan speaker supaya terdapat peringatan suara. Sketch pemrogramannya bagaimana ya? terima kasih

arif n

assalamualaikum kang,,
kang tolong dong buatin contoh multitasking untuk 2 servo, misal servo a berjalan dr 0 smpai 180, dan servo b berjalan dr 0 smpai 90 dlm waktu bersamaan gitu kang, jadi intinya servo a dan b berjlan bareng namun setelah sampai 90 servo b berhenti dan a terus sampai 180 gitu kang,,,, atas pencerahanya terima kasih ya kang….
atau contoh contoh multytasking servo dengan lain kasus juga boleh kang, sy akan aplikasikan untuk membuat ARM robot kang.

yono

assalamualaikum mas saya mencoba membuat komunikasi serial asynchronuous dengan arduino mega 2560. pada saat pengaturan menggunakan 2 stop bit tidak terjadi apa” malah error. kode program untuk pengaturan paritas dan stop bit bagaimana ya mas? saya menggunakan sofware arduino IDE. minta pencerahannya mas terimakasih

Saeful

Newbie nich.. Minta dibantu kang.. sy mau jalankan 2 fungsi sekaligus pada satu sketch yaitu LDR dan bluetooth dgn multitasking bgmana ya..?

Saeful

Kalo pake sketch biasa sy pernah cb tp sprtinya fungsi dr bluetooth-nya ga maksimal dan sepertinya beberapa fungsinya hang ketika fungsi LDR dijalankan bersamaan, apakah dengan mendeklarasikan : #include
Apakah bisa menjadi solusinya agar kedua fungsi masing-masing tidak terganggu?… Thx.

Irfan

Assalamualaikum mas, ardunio bisa digunakan 2 keypad atau tidak, misalkan bisa tolong di beritahu mas type arduinonya apa sebelumya terimakasih mas

dudi

maaf mas melenceng dari topik, rencana saya mau pake sensor pir, arduino dan modul relay buat kendali daya listrik otomatis pada komputer, jadi daya listrik akan terhubung dengan komputer hanya jika ada gerakan saja, penggunaan komputer kurang lebih 2 jam, nah pertanyaanya apakah bisa sensor pir terus aktif selama 2 jam hanya dengan mendeteksi gerakan sekali saja?

dudi

udah mas saya pake delay, saya pke 3 sensor pir, tapi kenapa yah pir ke 2 baru nyala ketika delay pada pir ke 1 habis, saya ingin ketiga pir tersebut dapat aktif tanpa harus nunggu delay habis, minta rekomendasi buat sketch nya mas kalo pake 3 buah sensor pir , maksih sebelumnya

irfan

mas mau tanya ,,
sy lgi buat alat monitoring kekeruhan air dan ph air secara bersamaan bekerja ditampilkan di layar lcd tft gitu ditambah lagi ada sensor suhu juga include, setiap kali di jalankan selalu berubah ubah nilai pembacaannya/ tidak stabil. apa karena pengaruh multitaskingnya atau gimana mas ? mohon pencerahan hhe

andre

Assalamualaikum mas, mau tanya rencana saya mau bikin tachometer (RPM) dan Speedometer secara digital menggunakan sensor IR dan tampilan menggunakan lcd TFT 2,4 Inch, apakah bisa dengan input 2 sensor IR (RPM & Speed) dijadikan satu pada arduino uno, untuk sketch cara bikinnya gimana mas, atas jawaban dan petunjuknya disampaikan banyak terimakasih

ardi

Selamat pagi mas. saya mau tanya seputar sample timer. saya sudah coba program sample timer yg ada di sini pada arduino mega. setelah saya compile, sketch error dan keluar tulisan seperti ini “Error compling for board Arduino/Genunino Mega or Mega 2560. kira2 kenapa ya mas ? terima kasih.

ardi

ini mas :
” #include
compilation terminated
exit status 1
Error compling for board Arduino/Genuino Mega or Mega 2560.”

versi arduino yg saya pakai itu 1.85.. Saya rasa pas saya include library simple timernya.. warna dari #include nya tidak berwarna oren.. warnanya jadi hitam semua.. Itu kenapa ya mas ?? mungkin itu problem yg saya alami. Terima kasih

ardi

oke mas..
saya mau tanya lagi,, kira2 kalo saya ingin menampilkan data dari sensor ultrasonik secara bersamaan gmana ya mas ?? terima kasih.

ardi

Kalo saya pake library NewPing kira2 gmana ya mas untuk nampilin data jarak secara bersamaan ??

Hawari

Bang cara program miliis gimana? masih ga ngerti.
di project saya, millis dipake buat kondisi sensor infra red untuk membaca objek selama 3 detik. programnya gimana ya bang? mohon bantunnya dengan segera, Terimakasih sebelumnya bang.

ardi

owh, gitu ya mas.. saya mau tanya lagi kalo sensor ultrasonic suka terdeteksi sendiri kenapa ya mas ? penyebabnya kira2 apa ya mas ?

ardi

Maksud saya,, di ultrasonik saya kan akan aktif jika ada benda di jarak >2 dan <5 mas.. Tpii ultrasonik saya masih bisa terdeteksi sendiri diri luar jangkauan itu mas..

ardi

Engga ada mas..

ardi

Kalo powersupply nya berpengaruh engga mas ?

Misalkan saya tambahkan kapasitor 100nf di vcc dan groudnya sensor gmana mas ?

ardi

okee mas,, terima kasih atas sarannya.. Saya mau tanya lagi seputar stopwatch.. saya ingin membuat dua stopwatch.. dimana untuk mengaktifkan lewat sensor ultrasonik.. kode yg saya pakai seperti ini :

if(kode==2){
ms++;
if(ms==10){
ms1=0;
s1++;
if(s1==100)(s1=0;}
}
}

jadi untuk mengaktifkan stopwatchnya lewat sensor ultrasonik.. Jadi saat sensor 1 terdeteksi (u/mengaktifkan sttopwatch pertama) dan sensor 2 terdeteksi (u/ mengaktifkan stopwatch kedua) bersama sama.. kenapa fungsi timer nya tidak berjalan ya mas saat kedua sensor terdeteksi bersamaan? penyebabnya apa ya mas ? terima kasih.

ardi

Kalo pakai simple timer itu kan buat waktu tunda ya mas.. Kalo di project saya ini untuk membuat dua stopwatch mas..

ardi

Kalo boleh tau,, contoh sketch stopwatch nya seperti apa ya mas ? Masih belum paham saya mas.

Ardi

Untuk script stopwatch nya dmananya ya mas ??

WieN

assalam. wr wb
ini blog yg sangat membantu.. apa lagi setiap coment dijawab, kebetulan saya lagi blajar arduino.. mohon bimbingan mas ajie..
wassalam..

agus

assalam’alaikum mas, sy punya program sperti di bawah ini: void loop(){ bright=analogRead(pot); bright=map(bright, 0,1023,0,10); bo= digitalRead(Sensor); if (bo==1){ delay(bright); digitalWrite(scr1, HIGH); delay(1); digitalWrite(scr1, LOW); digitalWrite(scr2, HIGH); delay(1); digitalWrite(scr2, LOW); } } yg mau sy tanyakan dari program d atas adalah mengenai nilai “bright” nya. jd nilai “bright” program d atas di dapat dari nilai potensio yaitu yg sudah d asumsikan 0-10, trus saya mau ubah nilai 0-10 dr potensio itu dgn secara otomatis dari 0-10 jg, tp perubahan dr nilai 0-10 itu diberikan delay selama 1 detik, apakah program sepeti ini pake multitasking jg mas, trus gmn y programnya? mohon… Read more »

Jeffry Indriawan

Mas numpang nanya kalau untuk perintah sms menggunakan fungsi millis kira-kira bagaimana ya mas. terim kasih

Mayang artika tami

Mas mau nanya , gimana ya coding menghentikan fungsi void loop sementara trus difungsikan kembali ketika 5 menit, cth: fungsi void lupo berhenti jika pinA0 ada inputan , mohon dibls mas ya

budi

Mas, saya mau tanya.. saya ingin memprogram sensor ultrasonik untuk menyalakan lampu setelah itu lampu akan mati setelah 5 detik. Tapi saya ingin menyalakan lampu saat ultrasonik terdeteksi pertama kali. Jadi saya mendeteksi benda dengan jarak 5cm,, dimana panjang benda nya 7 cm.. maka selama benda masih terdeteksi sepanjang panjang tersebut,, pasti lampu led akan terus menyala kan ya mas.. nah,, saya mau memprogram saat ultrasonik terdeteksi pertama kali,, habis itu menyalakan lampu setelah itu 5 detik akan mati lampu tersebut tanpa harus menunggu sensor ultrasonik mendeteksi benda sepanjang 7 cm.. kira2 bisa engga ya mas kalo di program seperti… Read more »

budi

kira2 gmana ya mas caranya ??

bincar

malam masss, saya kan mau merancang pendeteksi kekeruhan menggunakan sensor LDR dan Juga motor servo untuk sistem pengumpanan otomatis.. saat digabungkan programmnya itu berhasil, tapi sensor hanya akan membaca (aktif di led) itu sesuai dengan setting delay servo. yang jadi pertanyaannya gimana cara biar bisa menjalankan fungsinya masing2( untuk sensor LDR) tanpa ketergantungan dengan delay servo? jika menggunakan millis atau simpletimer itu gimana mas? makasihhhh… albinokaroles@gmail.com

bincar

masalahnya saya gak paham gabunginnya mas jika menggunakan millis atau simpletimer.. mohon bantuannya mas untuk TA… ini email saya albinokaroles@gmail.com

bincar

program saya gini mas, saya blum tau harus masukkan program yang lain itu dimana dan millis itu dimana..
mohon bantuannya digabung

#include
Servo myservo;
int pos=0;
int val=180;
void setup()
{
myservo.attach(10);
}
void loop()
{
for (pos=0;pos=1;pos -=1)
{
myservo.write(val);
delay(100);
}
}

terima kasih mass

rn

coba pake freertos aja mas

BRYAN THAYLEN SITORUS

malam mass saya mau nanyak gimana ya cara membaca perbedaan sudut phi pada daya listrik , menggunakan fungsi millis apakah bisa ? jadi intinya seperti pendeteksi cos phi atau faktor daya

BRYAN THAYLEN SITORUS

ya mas kan saya mau mengetahui sudut pergeseran fasa nya saya menggunakan sensor acs712 dan zmpt101b mas , kira kira mas tau gak mas gimana cara pemogramannya
analisa saya dapatnya itu jadi hitung selang waktu high arus dan tegangan terus ketika saat arus dan tegangan mencapai titik 0 catat waktu tersebut. ini untuk LISTRIK AC 220V/50Hz

BRYAN THAYLEN SITORUS

mohon bantuannya ya mas untuk TA nih mas..

bincar

masalahnya saya gak paham gabunginnya mas jika menggunakan millis atau simpletimer.. mohon bantuannya mas untuk TA… ini email saya albinokaroles@gmail.com

yogie

gan cara ngirim nilai variable ukur ke lewat sms gimana ya gan ky misalkan kan ukur suhu pake sensir panas , nah nilai hasil ukur nya mau dikirim pake sms ??

Andri

Assalammua’laikum kang.
Izin bertanya.
Kenapa LCD 16×2 tulisannya suka error ga karuan ketika speaker 12v 1.5A On. Ketika OFF LCD normal dan ketika Running hanya dengan relay tanpa beban Speaker LCD normal tulisannya tidak error.

Terimakasih kang

Priyo

Selamat malam mas saya lagi belajar arduino.saya sedang mencoba mengaktifkan relay dengan bluetooth.saya mau menambahkan indikator led atau buzzer,jadi setiap ada perintah dari bluetooth led menyala atau buzzer berbunyi itu bagaimana ya.terimakasih

Priyo

Maaf mas mau tanya lagi.saya coba menggunakan simple timer seperti diatas.saya coba simulasi di proteus. Memang bekerja.tp setelah bekerja ada pesan error cpu over load.dan arduino jadi non aktive.saya menggunakan arduino pro mini.bagaimana ya mas biar bisa bekerja dengan lancar.terimakasih.

Priyo

Baik mas terimakasih banyak sudah membantu saya.

eka

gimana kalo buat program multitasking arduino menggunakan 2 ic demux untuk 15 servo

Galang

Pakai simple timer bisa buat program led blink kah?

Galang

Ada contoh programnya mas?

Andi Yuniawan

mas aji pada program yg saya buat dht11 secara real time akan membaca suhu dan kelembaban ruangan, kemudian setiap 2 menit sekali arduino akan mengirimkan datanya ke database. Masalahnya adalah dalam waktu 2 menit itu ketika ada perubahan suhu arduino tidak mendeteksi karena ketahan oleh delay(). Solusinya bagaimana mas? terima kasih..

Andi Yuniawan

Terima kasih mas. Izin tanya lagi mas. hehe Arduino bisa tdk baca data dari database? Jadi tujuannya adalah ketika ada perubahan pengukuran dari dht11 makan arduino akan ngirim data tsb ke database, tetapi jika datanya sama tidak akan mengirim. Otomatis kan arduino harus baca data terakhir di tabel untuk dibandingkan dengan hasil pengukuran sekarang. Bagaimana caranya ya mas? Terima kasih..

Andi Yuniawan

database ada di server mas, pakai phpmyadmin. Jadi arduino sbgai webclient.

Andi Yuniawan

tambah script echo di sisi API server spt apa contohnya mas? Nah option kedua itu sptnya lebih gampang akan tetapi apakah si arduino n ethernet shield tdk akan rusak mas kalau kirim data terus? (berarti kan filter ada di php nya kan mas)

Andi Yuniawan

Alhamdulillah dah solved mas yang otomatis send data kalau ada perubahan pengukuran. Nah ini muncul problem lagi di webnya. Jadi kan ketika berubah lcd dan serial monitor otomatis berubah tetapi kalau di web harus di klik refresh dlu. Saya pakai header (“refresh: 0; url:=’index.php'”) tapi kok belom bisa ya. Ada solusi lain mas? terima kasih..

Andi Yuniawan

iya mas saya sudah pakai meta alhasil webnya refresh2 trus tapi memang setiap ada perubahan langsung update. Kalau pakai jquery efeknya gmna mas? Pengennya saya mah kalau pas ngirim ke database aja dia refresh jadi trigernya dari pengiriman, kan kalau biasanya on click atau submit button gtu mas.

Andi Yuniawan

OK mas saya pelajari dlu ya. hehe.. satu lagi mas, saya kan menerapkan fuzzy logic jadi logikanya adalah jika suhu dan kelembaban sesuai dengan rules yang dibuat dia akan membunyikan bel.
void loop() {
if suhu… dan kelembaban.. {
munculkan notifikasi
bunyikan bel
kirim email
} else if….
nah pertanyaanya adalah bell akan bunyi terus selama dia ada di posisi rules tersebut karena masuk looping, nah bisa gag bell itu di silent dlu, jadi kita set bunyi selama 2 menit tapi bisa di silent.

141
0
Would love your thoughts, please comment.x
()
x