Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat dengan menggunakan sensor suhu dan bpm kemudian di tampilkan ke handphone menggunakan jaringan internet yaitu aplikasi Blynk yang mana jaraknya bisa jauh yang penting terdapat koneksi internet antara handphone user dan alat tersebut. untuk lebih jelasnya berikut adalah komponen dan programnya.
a. Nodemcu ESP8266
b. Sensor Suhu Ds18b20
c. Sensor Pulse BPM
d. Program Arduino IDE
#include "Wire.h"
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#include <LiquidCrystal_I2C.h>
#include <SimpleTimer.h>
#include <SPI.h>
#define ONE_WIRE_BUS 0 //D3 pin of nodemcu
LiquidCrystal_I2C lcd(0x27, 16, 2);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float suhu;
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "AAAHGJhgfhghghgJHGJHVJMNBmnbmhF";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "My Hotspotx";
char pass[] = "1234567";
SimpleTimer timer;
int dataadc;
int n = 0;
int bpm = 0;
int x = 0;
int ok;
void sendSensor()
{
sensors.requestTemperatures();
suhu = sensors.getTempCByIndex(0);
Blynk.virtualWrite(V5, suhu);
Blynk.virtualWrite(V6, bpm);
}
void setup()
{
lcd.begin();
lcd.clear();
lcd.noCursor();
Serial.begin(9600);
sensors.begin();
lcd.setCursor(0,0);
lcd.print(" MONITORING");
lcd.setCursor(0,1);
lcd.print(" SUHU & BPM BAYI");
delay(3000);
lcd.clear();
pinMode(D6,INPUT_PULLUP);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
}
void loop()
{
ok = digitalRead(D6);
if(ok == 0){
n = 0;
bpm = 0;
lcd.clear();
bpmxx();
}
lcd.setCursor(0,0);
lcd.print("Temp= ");
lcd.print(suhu, 1);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Bpm= ");
lcd.print(bpm);
lcd.print(" ");
Blynk.run();
timer.run();
}
void bpmxx(){
n++;
int dataadc1 = analogRead(A0);
lcd.setCursor(0, 0);
lcd.print("n = ");
lcd.print(n);
lcd.setCursor(0, 1);
lcd.print("BPM = ");
lcd.print(bpm);
lcd.print(" / ");
lcd.print(dataadc1);
lcd.print(" ");
if ((dataadc1 > 820) && (x > 1)) {
x = 0;
bpm = bpm + 1;
}
else if ((dataadc1 < 820) && (x < 1)) {
x = 2;
}
delay(200);
if ( n > 50 ) {
lcd.clear();
bpm = bpm * 6;
return;
}
bpmxx();
}
e. VIDEO HASILNYA
No comments:
Post a Comment