Translate

Monitor 6 Telur Bagus atau Jelek IOT BLYNK 2.0 Output Suara

Monitor 6 Telur Bagus atau Jelek IOT BLYNK 2.0 Output Suara


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor 6 buahtelur bagus atau jelek dengan fitur yaitu IOT Blynk sehingga bisa dimonitor secara jaak jauh dan juga terdapat fitur suara sehingga output dari 6 buah telut yang dicek akan di outputkan menggunakan suara. untuk lebih jelasnya berikut adalah kodingnya.



a. Komponen




b. Program Arduino IDE

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

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

int x;
int telur1;
int telur2;
int telur3;
int telur4;
int telur5;
int telur6;
int tombol = 4;
int tombolx;
int batastelur = 960;

void setup() {

  Serial.begin(9600);
  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.begin();
  lcd.clear();
  lcd.noCursor();
  pinMode(tombol,INPUT_PULLUP);
}

void loop() {
  
  //jika telur jelek adc 1023
  //jika telur bagus adc kurang dari 1023
  
  telur1 = analogRead(A0);
  telur2 = analogRead(A1);
  telur3 = analogRead(A2);
  telur4 = analogRead(A3);
  telur5 = analogRead(A6);
  telur6 = analogRead(A7);
 
   lcd.setCursor(0,0);
   lcd.print(telur1);
   lcd.print(" ");
   lcd.print(telur2);
   lcd.print(" ");
   lcd.print(telur3);
   lcd.print(" ");

   lcd.setCursor(0,1);
   lcd.print(telur4);
   lcd.print(" ");
   lcd.print(telur5);
   lcd.print(" ");
   lcd.print(telur6);
   lcd.print("    ");

tombolx = digitalRead(tombol);

if(tombolx == 0){
  
if((telur2 < batastelur)&&(telur3 < batastelur)&&(telur4 < batastelur)&&(telur5 < batastelur)&&(telur6 < batastelur)){
mp3_play(7);  //play music file 0007.mp3
delay(10000);
mp3_stop();
}

if((telur1 > batastelur)||(telur2 > batastelur)||(telur3 > batastelur)||(telur4 > batastelur)||(telur5 > batastelur)||(telur6 > batastelur)){
mp3_play(8);  
delay(5000);

if(telur1 > batastelur){
mp3_play(1);
delay(5000);
}

if(telur2 > batastelur){
mp3_play(2);
delay(5000);
}

if(telur3 > batastelur){
mp3_play(3);
delay(5000);
}

if(telur4 > batastelur){
mp3_play(4);
delay(5000);
}

if(telur5 > batastelur){
mp3_play(5);
delay(5000);
}

if(telur6 > batastelur){
mp3_play(6);
delay(5000);
}

}

}

Serial.print("*");
Serial.print(telur1);
Serial.print(",");
Serial.print(telur2);
Serial.print(",");
Serial.print(telur3);
Serial.print(",");
Serial.print(telur4);
Serial.print(",");
Serial.print(telur5);
Serial.print(",");
Serial.print(telur6);
Serial.println("#");
                                                                         
delay(1000);
}



c. Program Nodemcu ESP8266

#define BLYNK_TEMPLATE_ID "TMPL6CsQfbxxx"
#define BLYNK_TEMPLATE_NAME "monitor flow presure"
#define BLYNK_AUTH_TOKEN "aSUiRpTncCpKkoXfLqIM4Gq2ISlxxxxx"
#define BLYNK_PRINT Serial  

#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

int temp;
int x = 5;
int y;

int value1;
int value2;
int value3;
int value4;
int value5;
int value6;
int berat;

int telur1;
int telur2;
int telur3;
int telur4;
int telur5;
int telur6;

int datain1;
int datain2;
int datain3;
int datain4;
int datain5;
int datain6;
int datain7;

String dataIn;
String dt[10];
int i;
boolean parsing = false;

BlynkTimer timer;
char ssid[] = "hotspothpku";
char pass[] = "123456789";

void sendSensor()
{
 Blynk.virtualWrite(V0, telur1);
 Blynk.virtualWrite(V1, telur2);
 Blynk.virtualWrite(V2, telur3);
 Blynk.virtualWrite(V3, telur4);
 Blynk.virtualWrite(V4, telur5);
 Blynk.virtualWrite(V5, telur6);
 delay(1000);
}


void setup()
{
 
  dataIn="";
  Serial.begin(9600);
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  timer.setInterval(1000L, sendSensor);

}

void loop()
{

while(Serial.available()>0) {
//   dataIn="";
    char inChar = (char)Serial.read();
    dataIn += inChar;
    if (inChar == '\n') {
    parsing = true;
  }
}

if(parsing){
   parsingData();
   Blynk.run();
   timer.run();
}
}

void parsingData(){
int j=0;

//kirim data yang telah diterima sebelumnya
//Serial.print("data masuk : ");
//Serial.print(dataIn);
//Serial.print("\n");

//inisialisasi variabel, (reset isi variabel)
dt[j]="";
//proses parsing data
for(i=1;i<dataIn.length();i++){
//pengecekan tiap karakter dengan karakter (#) dan (,)
if ((dataIn[i] == '#') || (dataIn[i] == ','))
{
//increment variabel j, digunakan untuk merubah index array penampung
j++;
dt[j]="";       //inisialisasi variabel array dt[j]
}
else
{
//proses tampung data saat pengecekan karakter selesai.
dt[j] = dt[j] + dataIn[i];
}
}

 datain1 = dt[0].toInt();
 datain2 = dt[1].toInt();
 datain3 = dt[2].toInt();
 datain4 = dt[3].toInt();
 datain5 = dt[3].toInt();
 datain6 = dt[3].toInt();

 telur1 = datain1 / 1;
 telur2 = datain2 / 1;
 telur3 = datain3 / 1;
 telur4 = datain4 / 1;
 telur5 = datain5 / 1;
 telur6 = datain6 / 1;
 
}



d. VIDEO HASILNYA




No comments:

Post a Comment