Translate

Membuat alat Monitor PH dan Suhu ds18b20 via Android dengan ARDUINO

Membuat alat Monitor PH dan Suhu ds18b20 via Android dengan ARDUINO


          Pada kesempatan kali ini saya akan menjelaskan mnengenai bagaimana cara membuat sebuah alat yang berfungsi untuk monitoring suhu dan ph via android. alat ini dilengkapi dengan bluetooth hc-05 dan sensor suhu ds18b20. untuk lebih jelasnya berikut adalah program dan daftar komponennya. 




a. Arduino Uno




b. Sensor PH




c. Sensor suhu ds18b20




d. Bluetooth HC-05






e. Program Arduino IDE

#include <OneWire.h>
#include <Wire.h>

OneWire  ds(8);  // on pin 10 (a 4.7K resistor is necessary)

int suhu;
int dataadc;
int ph;

void setup() {
  Serial.begin(9600);
  //Serial.println("test");

}

void loop(void) {
  byte i;
  byte present = 0;
  byte type_s;
  byte data[12];
  byte addr[8];
  float celsius, fahrenheit;

  if ( !ds.search(addr)) {
    ds.reset_search();
    delay(250);
    return;
  }

  for( i = 0; i < 8; i++) {

  }

  if (OneWire::crc8(addr, 7) != addr[7]) {
      return;
  }

  switch (addr[0]) {
    case 0x10:
      type_s = 1;
      break;
    case 0x28:
      type_s = 0;
      break;
    case 0x22:
      type_s = 0;
      break;
    default:
      return;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44, 1);        // start conversion, with parasite power on at the end

  delay(1000);     // maybe 750ms is enough, maybe not

  present = ds.reset();
  ds.select(addr);  
  ds.write(0xBE);         // Read Scratchpad

  for ( i = 0; i < 9; i++) {           // we need 9 bytes
    data[i] = ds.read();
  }

  int16_t raw = (data[1] << 8) | data[0];
  if (type_s) {
    raw = raw << 3; // 9 bit resolution default
    if (data[7] == 0x10) {
      raw = (raw & 0xFFF0) + 12 - data[6];
    }
  } else {
    byte cfg = (data[4] & 0x60);
    if (cfg == 0x00) raw = raw & ~7;  // 9 bit resolution, 93.75 ms
    else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
    else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms

  }
  celsius = (float)raw / 16.0;
  fahrenheit = celsius * 1.8 + 32.0;
  suhu = celsius;

  dataadc = analogRead(A0);
  ph = -0.021 * dataadc;
  ph = ph + 19.92;

    Serial.print("Hasil|");       
    Serial.print(suhu);
    Serial.print("|");
    Serial.println(ph);
    
    delay(300);
   

}





f. Program Interface Android








g. VIDEO HASILNYA







No comments:

Post a Comment