bagaimana cara stop looping ketika suatu kondisi terpenuhi


project ini adalah monitoring tekanan (pressure). cara pengabilannya ketika pin D1 LOW (pin D1 input mode pullup) maka akan mengirim kata “start” dan value pressure ke mqtt menandakan mesin melakukan pressure. cara pengambilannya tersebut tidak langusung di ambil ketika pin D1 low, tetapi di delay selama 15 detik kemudian diambil.. dan setelah mesin selesai melakukan pressure maka akan mengirim kata “stop” ke mqtt. permasalahannya adalah kata “stop” kadang tidak terkirim karena ikut terdelay 15detik sedangkan si mesin sudah melakukan siklus pressure lagi dengan waktu kurang dari 15detik.. maka dari itu “stop” tidak terkirim, bagaimana cara agar “stop” tidak ikut terdelay dan ketika selesai pressure maka langusung kirim “stop” ke mqtt.. berikut link codingnya https://pastebin.com/S1mdWF9j¬†mohon bimbingannya kak, saya masih pemula

 


Like it? Share with your friends!

0
AZ Studio

Bronze

One Comment

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

  1. Mungkin bisa menggunakan for loop, jadi delay dan detektor akan bekerja bersamaan
    if(digitalRead(D1) == LOW){
    Serial.println(“startflag”);
    startflag();
    Serial.println(“delay”);
    for(int x=0;x<1500;x++){
    delay(10);
    if(digitalRead(D1)==HIGH){
    Serial.println("stopflag");
    stopflag();
    }
    }

    String pres = pressure();
    if (pres != ""){
    publish_mqtt("vp", pres);
    }
    Serial.println("kirim mqtt");
    lastSend = millis();

Choose A Format
Poll
Voting to make decisions or determine opinions
Story
Formatted Text with Embeds and Visuals
List
The Classic Internet Listicles
Countdown
The Classic Internet Countdowns
Open List
Submit your own item and vote up for the best submission
Ranked List
Upvote or downvote to decide the best list item
Meme
Upload your own images to make custom memes
Video
Youtube, Vimeo or Vine Embeds
Audio
Soundcloud or Mixcloud Embeds
Image
Photo or GIF
Gif
GIF format