Translate

Tensimeter Digital Output Suara dan Input Voice Recognition Hi-Link HLK-V20

Tensimeter Digital Output Suara dan Input Voice Recognition  Hi-Link HLK-V20



        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat tensimeter digital dengan menggunakan output suara dan input menggunakan Voice Recognition. untuk sensor menggunakan tipe mpx. untuk lebih jelasnya berikut adalah skema dan kodingnya.


1. Skema





2. Program Arduino IDE

#include <Arduino.h>
#include <math.h>
#include <Wire.h> 
#include <SPI.h>
#include <DFPlayer_Mini_Mp3.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);

SoftwareSerial mySerial(2, 3); // RX, TX

//? on light
//G off light
//9 cooling mode
//r turn on cooling
//s turn off cooling

float spo;
float bpm;
int counter;
int motor = 5;
int solenoid = 4;
int dataadc;
int tombol = 1;
int tombolx;
int hitung;
float vol;
float mmhg;
float mmhgx;
float sistole;
float diastole;
int sistolex;
int diastolex;
int mark = 0;
char ch = "";
char inData;
int tempsis, tempdia;


void setup() {
  Serial.begin(115200);
  mySerial.begin (9600);
  mp3_set_serial (mySerial);  //set softwareSerial for DFPlayer-mini mp3 module
  delay(1);  //wait 1ms for mp3 module to set volume
  mp3_set_volume (30);  //volume 0-30
  
  lcd.clear();
  lcd.begin();
  lcd.noCursor();
 
  pinMode(motor,OUTPUT);
  pinMode(solenoid,OUTPUT);
  pinMode(tombol,INPUT_PULLUP);
  digitalWrite(motor,LOW);
  digitalWrite(solenoid,LOW);

}

void loop() {

    while (Serial.available() > 0)
    {
        char received = Serial.read();
        inData += received; 

        // Process message when new line character is recieved
        if (received == '\n')
        {
        
            Serial.println(inData);

            if(inData == 'r'){ 
              lcd.clear();
              digitalWrite(motor,HIGH);
              digitalWrite(solenoid,HIGH);
              mulai();
              suara();
            }   
            
            inData = ""; // Clear the received buffer
        }
    }

  
 lcd.setCursor(0,1);
 lcd.print("S= ");
 lcd.print(sistolex);
 lcd.print(" D= ");
 lcd.print(diastolex);
 lcd.print("    ");
   
delay(200);
}

void mulai(){
  
 dataadc = analogRead(A0);
 mmhg = (dataadc - 46.222) / 3.2;

if((mmhg >= mmhgx + 1)&&(mmhg > 100)&&(mark == 0)){
//digitalWrite(motor,LOW); 
Serial.println("SISTOLE"); 
sistole = mmhg;
mark = 2; 
digitalWrite(motor,LOW);
}

if((mmhg >= mmhgx + 1)&&(mmhg > 50)&&(mmhg < 90)&&(mark == 2)){
//digitalWrite(motor,LOW); 
Serial.println("DIASTOLE"); 
diastole = mmhg;
mark = 3;
}

 lcd.setCursor(0,1);
 lcd.print("S= ");
 lcd.print(mmhg);
 lcd.print("     ");

if(mmhg >= 120)
{
 digitalWrite(motor,LOW);   
}

mmhgx = mmhg;

Serial.println(mmhg);

if((mark == 3)&&(mmhg < 50)){
lcd.clear();
delay(1000);
mark = 0;
sistolex = sistole;
diastolex = diastole;
digitalWrite(solenoid,LOW);
return;
}

if((mark == 2)&&(mmhg < 50)){
lcd.clear();
delay(1000);
mark = 0;
sistolex = sistole;
diastolex = random(60,90);
digitalWrite(solenoid,LOW);
return;
}

delay(1);   
mulai();  
}


void suara(){

  tempsis = sistolex;
  int ratusansis = tempsis / 100;
  tempsis = tempsis % 100;
  int puluhansis = tempsis / 10;
  int satuansis = tempsis % 10;

  tempdia = diastolex;
  int ratusandia = tempdia / 100;
  tempdia = tempdia % 100;
  int puluhandia = tempdia / 10;
  int satuandia = tempdia % 10;

 lcd.setCursor(0,0);
 lcd.print(ratusansis); 
 lcd.print("-"); 
 lcd.print(puluhansis); 
 lcd.print("-");   
 lcd.print(satuansis); 
 lcd.print("  ");
 lcd.print(puluhandia); 
 lcd.print("-"); 
 lcd.print(satuandia); 

//zistole
 mp3_play(1);
 delay(3000);

//seratus
 if(ratusansis > 0){
  mp3_play(13);
  delay(3000);
  }

if((sistolex >= 10)&&(sistolex <= 119)){
if(sistolex == 110){
  mp3_play(14);
  delay(3000);
  }

if(sistolex == 111){
  mp3_play(15);
  delay(3000);
  }

if(sistolex == 112){
  mp3_play(4);
  delay(3000);
  mp3_play(16);
  delay(3000);
  }

if(sistolex == 113){
  mp3_play(5);
  delay(3000);
  mp3_play(16);
  delay(3000);
  }

if(sistolex == 114){
  mp3_play(6);
  delay(3000);
  mp3_play(16);
  delay(3000);
  }

if(sistolex == 115){
  mp3_play(7);
  delay(3000);
  mp3_play(16);
  delay(3000);
  } 

if(sistolex == 116){
  mp3_play(8);
  delay(3000);
  mp3_play(16);
  delay(3000);
  }   

if(sistolex == 117){
  mp3_play(9);
  delay(3000);
  mp3_play(16);
  delay(3000);
  }  

if(sistolex == 118){
  mp3_play(10);
  delay(3000);
  mp3_play(16);
  delay(3000);
  }          

if(sistolex == 119){
  mp3_play(11);
  delay(3000);
  mp3_play(16);
  delay(3000);
  }
}
    
if((sistolex < 110)||(sistolex > 119)){
switch(puluhansis){
   case 1:
   mp3_play(3);
   delay(3000);
   break;
   case 2:
   mp3_play(4);
   delay(3000);
   break;
   case 3:
   mp3_play(5);
   delay(3000);
   break;
   case 4:
   mp3_play(6);
   delay(3000);
   break;
   case 5:
   mp3_play(7);
   delay(3000);
   break;
   case 6:
   mp3_play(8);
   delay(3000);
   break;
   case 7:
   mp3_play(9);
   delay(3000);
   break;
   case 8:
   mp3_play(10);
   delay(3000);
   break;
   case 9:
   mp3_play(11);
   delay(3000);
   break;  
 }

if(sistolex >= 120){
//puluh
 mp3_play(12);
 delay(3000);
}

 switch(satuansis){
   case 1:
   mp3_play(3);
   delay(3000);
   break;
   case 2:
   mp3_play(4);
   delay(3000);
   break;
   case 3:
   mp3_play(5);
   delay(3000);
   break;
   case 4:
   mp3_play(6);
   delay(3000);
   break;
   case 5:
   mp3_play(7);
   delay(3000);
   break;
   case 6:
   mp3_play(8);
   delay(3000);
   break;
   case 7:
   mp3_play(9);
   delay(3000);
   break;
   case 8:
   mp3_play(10);
   delay(3000);
   break;
   case 9:
   mp3_play(11);
   delay(3000);
   break;  
 }
}

//diastole
 mp3_play(2);
 delay(3000);

switch(puluhandia){
   case 1:
   mp3_play(3);
   delay(3000);
   break;
   case 2:
   mp3_play(4);
   delay(3000);
   break;
   case 3:
   mp3_play(5);
   delay(3000);
   break;
   case 4:
   mp3_play(6);
   delay(3000);
   break;
   case 5:
   mp3_play(7);
   delay(3000);
   break;
   case 6:
   mp3_play(8);
   delay(3000);
   break;
   case 7:
   mp3_play(9);
   delay(3000);
   break;
   mp3_play(10);
   delay(3000);
   break;
   case 9:
   mp3_play(11);
   delay(3000);
   break;  
 }

//puluh
 mp3_play(12);
 delay(3000);

switch(satuandia){
   case 1:
   mp3_play(3);
   delay(3000);
   break;
   case 2:
   mp3_play(4);
   delay(3000);
   break;
   case 3:
   mp3_play(5);
   delay(3000);
   break;
   case 4:
   mp3_play(6);
   delay(3000);
   break;
   case 5:
   mp3_play(7);
   delay(3000);
   break;
   case 6:
   mp3_play(8);
   delay(3000);
   break;
   case 7:
   mp3_play(9);
   delay(3000);
   break;
   case 8:
   mp3_play(10);
   delay(3000);
   break;
   case 9:
   mp3_play(11);
   delay(3000);
   break;  
 }

 }  
  


3. VIDEO HASILNYA





No comments:

Post a Comment