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