Translate

Monitor Jarak dan Suhu HY-SRF05 dan DS18B20 Serta Kendali ON OFF Relay IOT BLYNK 2.0 NODEMCU ESP8266

Monitor Jarak dan Suhu HY-SRF05 dan DS18B20 Serta Kendali ON OFF Relay IOT BLYNK 2.0 NODEMCU ESP8266


       Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor suhu air dan jarak ketinggian air (water level) dengan menggunakan IOT Blynk 2.0 yang mana dapat memonitor dan mengendalikan dengan jarak jauh dengan menggunakan internet. untuk lebih jelasnya berikut adalah komponen dan kodingnya. 



a. Komponen




b. Program Arduino IDE

#define BLYNK_TEMPLATE_ID "TMXL6mWi-XXXX"
#define BLYNK_TEMPLATE_NAME "monitor suhu jarak iot"
#define BLYNK_AUTH_TOKEN "APJjyV28gzQqQTjYaeEj-KXxxXxxXxxx"
#define BLYNK_PRINT Serial  

#include <Wire.h>
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#include <LiquidCrystal_I2C.h>  //i2C LCD Library

#define ONE_WIRE_BUS 13 //D7 pin of nodemcu
//define sound speed in cm/uS
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

LiquidCrystal_I2C lcd(0x27, 16, 2); 

BlynkTimer timer;

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

float suhu;
int jarak;
int relay = D6;
int pinValue;
const int trigPin = D3;
const int echoPin = D8;

long duration;
float distanceCm;
float distanceInch;

BLYNK_WRITE(V2)
{
  pinValue = param.asInt();   

  if(pinValue == 1){    
  digitalWrite(relay,LOW);
  }
  
  if(pinValue == 0) {
  digitalWrite(relay,HIGH);
  }
  
}

void sendSensor()
{
Blynk.virtualWrite(V0, suhu);
Blynk.virtualWrite(V1, distanceCm);
}

void setup()
{
  Serial.begin(9600);  
  sensors.begin();
  pinMode(relay,OUTPUT);
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  timer.setInterval(1L, sendSensor);
  lcd.begin();
  lcd.clear();
  lcd.noCursor();
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
}

void loop()
{
sensors.requestTemperatures();
suhu = sensors.getTempCByIndex(0);

  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);
  
  // Calculate the distance
  distanceCm = duration * SOUND_SPEED/2;  

  lcd.setCursor(0,0);
  lcd.print("Suhu: ");
  lcd.print(suhu,1);
  lcd.print(" C  ");
      
  lcd.setCursor(0,1);
  lcd.print("S: "); 
  lcd.print(distanceCm);
  lcd.print(" cm   ");

  delay(1);
  
  Blynk.run(); 
  timer.run();



c. VIDEO HASILNYA




No comments:

Post a Comment